|
apache 2.4 ускорить | ☑ | ||
---|---|---|---|---|
0
Noxvil
30.04.24
✎
15:03
|
Коллеги, добрый день.
Есть выделенный сервер: Xeon E3-1270v6 (4 ядра, 3.8-4.2 ГГц), 32 GB RAM, 2 х 480 Гб SSD Установлено: Windows Server 2022 Standard 1С 8.3.24.1467 Apache 2.4 - Питание настроил на высокую производительность - Apache настроил на использование сертификата ssl Время загрузки пустой страницы 65 мс Время загрузки пустой функции http сервиса пустой базы 1с 300 мс (время исполнения в модуле http сервиса 1 мс) Разница 234 мс Как можно ускорить загрузку? |
|||
1
Philix
02.05.24
✎
11:38
|
(0) Из 0,3 секунды 90 процентов времени потрачено на установку апач соединения с базой. Можно играться с параметрами времени жизни сеанса (вот тут расписано https://wonderland.v8.1c.ru/blog/povyshenie-proizvoditelnosti-veb-servisov/ ), либо рядом поднять какой-нибудь микро-http-сервис и опрашивать его по расписанию с интервалами меньше времени жизни сеанса для поддержания этого сеанса апач - 1С в активном состоянии.
|
|||
2
Noxvil
01.05.24
✎
12:36
|
(1) Дополню, что был сделан тест через postman (50 запросов на пустой конфигурации).
Отладка (среднее время за 50 запросов): вкл = 547 мс выкл = 329 мс Первое соединение в обоих случаях > 1 сек |
|||
3
Noxvil
01.05.24
✎
12:52
|
Установил количество сеансов 15, время ожидания 1200
Результат 311мс Всё равно большая разница. в первом посте написал 300 мс - округлил |
|||
4
alexela
01.05.24
✎
15:03
|
(1) либо ждите когда появятся веб сокеты в 1с
|
|||
5
Garykom
01.05.24
✎
15:31
|
(0) Не понимаю что не нравится
Они и так в платформе 1С умудрились по максимуму сократить время запуска Сравните со временем запуска например в режиме предприятия Или точнее ближе будет внешнее COM-соединение |
|||
6
Noxvil
01.05.24
✎
15:31
|
(4) День? Больше?
|
|||
7
Garykom
01.05.24
✎
15:32
|
(5)+ Если не нравится - написать свою ВК аля http-сервер
И использовать ее внутри длительного фонового задания на сервере |
|||
8
Noxvil
01.05.24
✎
15:32
|
(5) хочется уменьшить скорость подключения к базе до 100-150 мм
|
|||
9
Noxvil
01.05.24
✎
15:33
|
Как понять, на что именно уходит время?
Какое-то легирование включить? |
|||
10
Garykom
01.05.24
✎
15:34
|
(8) Как ты ее уменьшишь?
Там внешний веб-сервер (apache или iis) вызывает dll, которая подключается к 1С Особенность работы веб-сервера не позволяет держать постоянно активное подключение к 1С из него |
|||
11
Garykom
01.05.24
✎
15:36
|
Для одного клиента нет смысла ускорять
Есть смысл для множества клиентов одновременно - но это решается множеством веб-серверов на один или множество серверов 1С |
|||
12
Garykom
01.05.24
✎
15:38
|
(7)+ В цикле опрашивая ВК "нет ли внешних обращений" и если есть, то уже имея запущенный процесс мгновенно выполнять код 1С формируя ответ
|
|||
13
arsik
02.05.24
✎
08:41
|
(10) Как раз позволяет. В (1) приведено, как это настраивается, только ссылка там кривая
https://wonderland.v8.1c.ru/blog/povyshenie-proizvoditelnosti-veb-servisov/ |
|||
14
Garykom
02.05.24
✎
09:53
|
(13) И в чем я не прав?
Для нулевого первого обращения либо после длительного простоя один хрен будет долгий запуск с нуля Ибо пула соединений еще нет |
|||
15
Garykom
02.05.24
✎
09:54
|
(14)+ Да конечно можно
"рядом поднять какой-нибудь микро-http-сервис и опрашивать его по расписанию с интервалами меньше времени жизни сеанса" Но это тот еще изврат |
|||
16
DrZombi
02.05.24
✎
10:56
|
(0) Для чего вам скорость?
Почему пользователь не желает ожидать секунду? Выполните все шаманство в фоновом задании, пользователь будет бдить фоновое окошечко "Подождите идет обработка результата"... Можно еще и таймер приписать (для завуалировать заморозки времени, обмануть мозг ожидавшего) :) |
|||
17
Philix
02.05.24
✎
11:50
|
(13) Спасибо, поправил ссылку в своем сообщении.
(16) У меня от смежной системы поступили похожие требования по времени отклика моей системы. Есть ощущение, что там заложен хороший "сержантский запас" времени, чтобы цепочка систем успела прогнать данные в одну сторону и ответ обратно в какое-то сильно ограниченное время. |
|||
18
Garykom
02.05.24
✎
12:03
|
Если надо реально быстро отвечать - не вижу иного способа кроме "кэширования" данных из 1С во внешнюю систему
В кавычках потому что может потребоваться фактически наладить РИБ с чем то внешним 1С выгружает постоянно требуемые данные во внешнюю систему, а уже эта внешняя отвечает на запросы http |
|||
19
Garykom
02.05.24
✎
12:04
|
Ну или ВК в длительном фоновом 1С - но это тот еще изврат и сократить время выполнения кода 1С не выйдет
|
|||
20
sikuda
02.05.24
✎
12:05
|
(1) "Из 0,3 секунды 90 процентов времени потрачено на установку апач соединения с базой."
- Подключение к базе 1С, установка параметров сеанса, долго тяжело и больно... Если у тебя эти данные не меняются каждую секунду - Подумай как тебе реализовать кеширование этих данных без 1С. |
|||
21
timurhv
02.05.24
✎
12:42
|
(16) Потому что бывает такие требования прописывают в контрактах на крупных проектах.
(0) Потестируйте платформу 8.3.25. Сейчас протестировал клиент-сервер (правда Apache, сервер 1С, PostgreSQL - все на локальной машине). Первый вызов из расширения Chrome "Boomerang", 0 пользователей в БД, даже если в базу зайти и выйти, то все-равно (видимо, кэш отдельный под http-соединения): 830мс Повторный вызов http через 3 мин: 11-17 мс У http в метаданных конфигурации повторное использование не ставил. |
|||
22
Chai Nic
02.05.24
✎
13:00
|
А если без ssl, на голом http?
|
|||
23
Noxvil
03.05.24
✎
09:03
|
(21) Спасибо, попробую
|
|||
24
DrZombi
03.05.24
✎
09:07
|
(21) И, как вы сможете выкрутиться при такой закорючке (Подставе), если при определённой нагрузке, любая система провиснет :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |