Разобрался!
Надо записывать данные в файл, как в ресурс. Например с помощью модуля "Список В Ресурс". А я записывал как в файл. Через "Записать в файл".
Всем спасибо за помошь.
От чего зависит скорость в скрипте на запросах?
-
Добрый вечер, имею такую конфигурацию на своём пк:
Windows 10
AMD Ryzen 5 2600
Samsung SSD 870 EVO 1 TB
RAM 16 GB Kingston DDR4 2666C скриптом справляется за 1.92 минуты.
Windows Server 2016
VPS:
Intel Xeon E5-2670 v2 2.5GHz(20 ядер)
RAM 12 GB ???
NvmeСправляется с той же задачей уже за 6+ минут.
Вся задача это вызов потока через bas-remote-node, в потоке вызывается 25 асинхронных функций и ожидается их выполнение. В каждой такой функции происходит около 70 запросов, просто обработка информации ничего больше. Но почему настолько существенная разница?
Пробовал этот же скрипт на физическом сервере на:
Windows Server 2019
AMD Ryzen 7 3800X
RAM 16 GB DDR4 2666
SSD 240 GBВремя здесь было среднем 3 минуты, не смотря на то что это чистый Windows Server 2019, который мощнее моего Ryzen 5 2600, но скорость выходит меньше.
Возможно вы скажете что это проблема интернета?
На VPS скорость: 43 мбпс скачать/45 мбпс загрузка.
На моём ПК: 39 мбпс скачать/38 мбпс загрузка.
Скорость на физ.сервере: 250 мбпс скачать/600+ мбпс загрузка.Но напомню, это только при одном таком запуске. Если запустить таких потоков 10 тогда мы видим следующее:
Скорость на физ.сервере улетает в космос 30-34 минуты на обработку одного потока при том что по железу он не капли не упирается в потолок, 4% нагрузки ЦПУ, 40-45% нагрузки ОЗУ.
На моём ПК скорость так же улетает в космос 22-24 минуты. При том что все потоки должны обрабатываться одновременно, не должно быть такой разницы.
По логике баса если на обработку 1 функции(в потоке) ходит 95 секунд, то 25 потоков одновременно должно так обработать ну допустим за 110 секунд, что и есть правдой при условии что у нас такой поток 1, но если у нас к примеру потоков больше то и скорость общая падает так же.
Так же использовал вот это на физическом сервере перед тестами: https://community.bablosoft.com/topic/17458/оптимизация-ос-под-многопоточность
Вызов самих функций происходит через .runFunction .
Возможно это проблема bas-remote-node я подумал. Поэтому скомпилировал свой скрипт в обычное приложение. Время обработки 1 потока:
Физ.Сервер: 2:46
Мой пк: 2:04
Разница существенная как мы видим.Я попробую удалить полностью всё логирование, возможно слишком много логов - результата нету. Мы выиграли только 5 секунд на физ.сервере. Заранее хочу сказать что скрипт практически не обращается к диску, нагрузка 0.1/mbs с логами.
В общем уже не знаю в какую сторону смотреть и почему моя пекарня обгоняет по скоростям чистый физ.сервер который по процессору гораздо лучше.
И ещё вопрос, чем бас ограничивается в скорости в таких случаях? Как это фиксить?