Сервер становится слишком медленным из-за большого количества запросов http для отслеживания загрузки страниц нескольких сайтов.

У нас есть следующие ресурсы сервера:

16GB RAM Memory
Intel Xeon E5-2650 v2 @ 2.60GHz (8 Core)
240GB SSD (RAID 10)
1 IP Address (2 extra)
Unmetered Traffic / 1Gbit Port / 100Mbps guaranteed

Мы используем фрагмент JavaScript примерно на 30 веб-сайтах до тех пор, пока теперь не отправляем HTTP-запросы в PHP-скрипт, расположенный на нашем сервере, для отслеживания загрузки страниц и сохранения информации о веб-сайте в нашей базе данных MySQL.

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

Из журнала ошибок apache я обнаружил следующую ошибку:

[core:notice] [pid 4918:tid 139902294153344] AH00094: Command line: '/usr/sbin/httpd'
[mpm_worker:error] [pid 4918:tid 139902294153344] AH00287: server is within MinSpareThreads of MaxRequestWorkers, consider raising the MaxRequestWorkers setting
[mpm_worker:error] [pid 4918:tid 139902294153344] AH00286: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting

Также:

[mpm_event:error] [pid 22565:tid 140163371042688] AH00485: scoreboard is full, not at MaxRequestWorkers

Изучив эту проблему, я нашел статью, чтобы установить оптимальную конфигурацию для Apache httpd.conf для таких проблем:

StartServers 5
<IfModule prefork.c>
    MinSpareServers 25
    MaxSpareServers 50
</IfModule>

ServerLimit 256
MaxRequestWorkers 1000
MaxConnectionsPerChild 10000
KeepAlive On
KeepAliveTimeout 100
MaxKeepAliveRequests Unlimited
Timeout 300

Все еще получая то же самое, я думал, что это может быть проблема со многими транзакциями для db в одно и то же время, поэтому я остановил сохранение части db в скрипте и получил ту же проблему.

Какие-либо предложения относительно вышеупомянутой проблемы?

Предположим, мы перешли на облачный хостинг с большим количеством ресурсов, все еще нормально сохранять такие запросы в БД немедленно? Я думал о сохранении в файл и сбросить его каждые 4 часа, например.

0 ответов

Другие вопросы по тегам