Почему падает производительность скрипта?

Здравствуйте.
С помощью скрипта на python (с использование asyncio и aiohttp) выполняю парсинг сайтов для сбора статистики. После запуска парсинга, примерно 1к-1,5к сайтов парсятся очень быстро, а далее начинаются тормоза. Причем ресурсы сервера почти не используются, сеть также не загружена. Тормозит метод loop.create_connection. Если паралельно с парсингом загружать какой-либо сайт, он тоже тупит. Предполагаю, что проблема с ОС (debian 7.8) но уже не знаю, в каком направлении копать.
  • Вопрос задан
  • 584 просмотра
Пригласить эксперта
Ответы на вопрос 2
@MechanID
Админ хостинг провайдера
возможно заканчиваются буфера или еще чтонибуть - надо смотреть dmesg

еще попробуйте добавить в /etc/sysctl.conf
net.core.wmem_default = 2097152
net.core.wmem_max = 16777216
net.core.rmem_max = 16777216
net.ipv4.tcp_mem = 8388608 8388608 8388608
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 250000
net.ipv4.tcp_max_syn_backlog = 65536
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_tw_buckets = 1440000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_abort_on_overflow = 1
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.netfilter.ip_conntrack_max = 262144
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0

потом
# sysctl -p

для отката изменений - убрать параметры из /etc/sysctl.conf
и перезагрузится.
Ответ написан
Комментировать
TheCreator
@TheCreator
Бездельник
Вы, судя по всему, на своей машине запускаете, может быть вас провайдер ограничивает, видя такое количество соединений? Попробуйте тот же скрипт завести на сервере/vps.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы