Скорость парсинга | win server | zennoposter

strf

Client
Регистрация
21.09.2020
Сообщения
5
Благодарностей
0
Баллы
1
Доброго

Имеется:
- мощный выделенны сервер AMD EPYC 7402P 24x2.8Ghz 128GB RAM 2TB NVME 5Gbps
- OS windows server 2022 datacenter
- zennoposter 7.7.21.0
- простейший шаблон-парсер на GET запросах, в будущем - zenno
- такой же парсер, только на питоне, в будущем - python

Логика парсера:

- парсер берет урл из текстового файла
- делает get запрос, получает тело страницы
- в полученном коде регуляркой ищет совпадение "rs-test"
- если нашел - кладет в result.txt, если нет - переходит к следующему урлу

Запуск:
- запуск на зенке в 200 потоков в безбраузерном режиме
- позже запуск на питоне в 1000 корутинов асинхронно (для сравнения)

Результат скорости:
- zenno |
50 урлов \ сек, база в 50к строк обрабатывается за 17 минут, нагрузки на CPU и RAM минимальна, канал забит 20-30 Mbps
- python | 190 урлов \ сек, база в 50к строк обрабатывается за 4 минуты, нагрузки на CPU и RAM нет вообще, канал забит 40-50 Mbps
- количество результатов + - одинаковое

Вопрос:
Сколько бы я не пытался выжать по скорости больше не получается.
Не увеличение потоков. Не увеличение корутинов.
Расширение списка динамических портов до 65534. Уменьшение таймаутов и т.д.

Что я делаю не так?
Не уже ли софт упирается в стандартные возможности стека TCP и не может больше выжать по потокам и подключениям?
Проще запускать на Linux сервере и не парить себе мозг в виндой?

Заранее благодарен за советы!
 
Последнее редактирование:

i.stasik

Client
Регистрация
25.09.2023
Сообщения
387
Благодарностей
89
Баллы
28
используемый провайдер 5G точно может вытянуть больше?
 

strf

Client
Регистрация
21.09.2020
Сообщения
5
Благодарностей
0
Баллы
1
5G имелось ввиду - канал 5 Гигабит выделенных
 

cooki

Client
Регистрация
05.10.2014
Сообщения
280
Благодарностей
68
Баллы
28
у меня софт на делфи лупил в 1000 потоков на сервере за 30$, когда зенка могла выдать только 100 на пост/гет не уронив канал/загрузить проц/озу
 

i.stasik

Client
Регистрация
25.09.2023
Сообщения
387
Благодарностей
89
Баллы
28
5G имелось ввиду - канал 5 Гигабит выделенных
про это я не подумал, парсер у меня ассоциируется с мобильным интернетом с ротацией ip

по опыту дешманский виртуалок всегда упираешься в производительность оперативы. проц особо не нагружен, оперативы в избытке, но сколько не добавляй потоков, производительность в минуту/час/сутки остается почти постоянной
купишь у того же хостера виртуалку с удвоенными ресурсами (ядра и оперативы), то производительность подымается в 1.5-2раза, при том что проц и оператива нагружены немного больше, но не в 1.5-2раза

здесь на форуме много раз давали совет, что лучше держать несколько более-менее производительных серверов/пк, чем всё выполнять на мега дорогом нафаршированном.

на опыте старенького ноута, таже ситуация, диск ssd тоже не нагружен.
в обоих случаях используется похожий парсер шаблон (get запрос, regex, удаление дублей и другого в немаленьких списках, которые не привязаны к файлам), там где оперативе нужно поработать
на том же стареньком ноуте при работе парсера шаблона в потоков 50, чувствуется подтормаживание при открытии программ, при открытии текстовых файлов, при этом в диспетчере проц, оператива и диск не нагружены
во всех случаях при работающем парсере при копировании больших файлов (диск ssd NVMe) скорость может быть и 20мб/с, вместо 500мб/с, когда парс не работает. как ранее здесь на форуме писали "шинка слабовата"

если сервер вы сами собирали и отдали на коло в ДЦ, то даже не знаю что может случиться ... драйвера, совместимость или само железо
если это выделенный арендованный или это вообще виртуалка (и такое встречал, продают на небольшие деньги))), то я бы перепроверил, так ли это (много примеров встречал на других форумах)

5 Гигабит выделенных я бы тоже потестил на количество одновременных подключений (провайдер или винда). Если винда, то в интернете есть много способов попытаться их снять.
 

strf

Client
Регистрация
21.09.2020
Сообщения
5
Благодарностей
0
Баллы
1
сервер выделенный (не виртуальный), в датацентре с прямым подключением
зенка в сетевом мониторе при тесте отдает 6411 потоков
асинхронным скриптом питона все эти потоки в целом и забиваются при 1000 карутинах

уже GPT | Grok | DeepSeek | Gemini второй день гоняю - один и тот же "совет":
"вы уперлись в возможности сетевого стека винды по портам"
- либо добавляйте IPшники
- либо переезжайте на linux серв, там стек более оптимизирован под такие задачи

но в голове не укладывается, что реальные возможности такого простого чекера на таком серваке с таким каналом - всего лишь 190 ссылок в секунду...
 

i.stasik

Client
Регистрация
25.09.2023
Сообщения
387
Благодарностей
89
Баллы
28
- либо добавляйте IPшники
- либо переезжайте на linux серв, там стек более оптимизирован под такие задачи
- либо разбивайте выполнение на несколько windows устройств

кстати, поднятие виртуалок на этом же серваке не спасает ситуацию?
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)