Сервер становится слишком медленным из-за большого количества запросов 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 часа, например.