Apache swapping
Проблема такая: апач где-то после 50 процессов начинает активно свопить, как результат - тормоза.
Что делать или в каком направлении копать?
Параметры:
Apache 2.2.19, OS Solaris 10
Апач установлен в зоне
Оперативной памяти 4.5Гб
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
Причем самое интересное операционка показывает что использовано меньше 30% оперативы
Apache свопить не может по определению. Свопит система. Поэтому для начала стоит определится, что понимает под "свопит" и, главное, каким это образом было остановлено, что данный процесс наступил?
Что работает под Apache? PHP, Perl, CGI и т.п. ? Нужно смотреть каждую конкретную программу/скрипт. Сам Apache при 50 процессах систему не кушает много памяти.
Сам точно не пойму куда копать, то ли из-за количества клиентов, то ли субд(оракл) весит всё дело каким-то запросами
Цитата: josh1986
PHP установлен как модуль.
Сам точно не пойму куда копать, то ли из-за количества клиентов, то ли субд(оракл) весит всё дело каким-то запросами
Сам точно не пойму куда копать, то ли из-за количества клиентов, то ли субд(оракл) весит всё дело каким-то запросами
Я бы сделал свою систему логов, в которых бы анализировал количество использованной памяти (благо в PHP есть такие функции), запросы к БД, время выполнения и т.п.)
Еще имеет смысл посмотреть server-status Apache, может там будет ответ.
Мониторить память из пхп в принципе мысль, но покажет ли он объективную картину, не факт.
Еще я смотрю процессы prstat`ом все процессы кушают по 50-70мег памяти, мало кто выделяется из общей массы.
Вопрос номер раз: как с этим бороться?
Вопрос номер два: объясните пожалуйста почему при блокировках забивается своп?