Я активировал Apache Worker на своем VPS, и у меня возникли проблемы, потому что веб-сайт вылетает, когда к нему обращаются 3000 пользователей. я использую http://whos.amung.us/stats/2jzwlvbhvpft/ как счетчик.
Конфигурация My Apache Worker:
KeepAlive On
MaxKeepAliveRequests 0
KeepAliveTimeout 1
<IfModule mpm_worker_module>
ServerLimit 20000
StartServer 8000
MinSpareThreads 10400
MaxSpareThreads 14200
ThreadLimit 5
ThreadsPerChild 5
MaxClients 20000
MaxRequestsPerChild 0
</IfModule>
VPS имеет SO: Debian 64 LAMP, память: 14 ГБ и процессор: 24 ГГц
Что я мог сделать, чтобы добиться наилучшего результата?
Похоже, у вас заканчивается память, а apache дает сбой, потому что использует больше доступной памяти.
Я не очень хорошо знаком с рабочим mpm, но думаю, что ваша конфигурация намного превышает доступную вам память.
Например, у вас есть 5 потоков на процесс и 20000 MaxClient. Это означает, что для обслуживания клиентов Max вам потребуется 20000/5=4000
параллельные процессы Apache. С учетом 13 ГБ памяти (1 ГБ для системы) и в среднем 15 МБ для размера процесса apache вы можете обслуживать только около 4300 клиентов.
Я предполагаю, что у вас тоже есть база данных. Это приводит к тому, что apache умирает примерно на 3000 клиентов.
Вы должны уменьшить количество MaxClients и MinSpareThreads, как предложил @David Schwartz.
Попробуйте эту конфигурацию для начала (довольно много для VPS-сервера):
MaxClients 2000
ThreadsPerChild 50
ServerLimit 40
Это дает вам 2000 потоков и 40 процессов (50 потоков на процесс) для одновременной обработки не более 2000 клиентов. Если вы хотите увеличить ThreadsPerChild до значения больше 64, не забудьте также изменить ThreadLimit.