сервер, CPU - 2 GHz, MEM - 1 Gb, Linux OS
Apache 1.34, mod_perl - 1.29
KeepAlive Off, MaxClients 60, MaxRequestsPerChild 100динамический контент генерится perl скриптом
приличный обьем трафика
около 600 запросов в минутуtop - 20:54:23 up 15:50, 1 user, load average: 11.15, 5.95, 3.85
Tasks: 110 total, 11 running, 99 sleeping, 0 stopped, 0 zombie
Cpu(s): 96.7% us, 3.3% sy, 0.0% ni, 0.0% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 1026060k total, 586968k used, 439092k free, 37628k buffers
Swap: 2096472k total, 0k used, 2096472k free, 259628k cachedPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14863 nobody 15 0 12712 8320 2988 S 16.5 0.8 0:04.84 httpd
14856 nobody 15 0 12696 8288 2988 S 14.2 0.8 0:04.35 httpd
14897 nobody 15 0 12372 7952 2964 S 14.2 0.8 0:00.56 httpd
14892 nobody 15 0 12372 7952 2964 S 13.5 0.8 0:00.52 httpd
14859 nobody 15 0 12680 8276 2988 S 12.5 0.8 0:04.74 httpd
14842 nobody 16 0 12716 8312 2988 S 12.2 0.8 0:08.09 httpd
14864 nobody 16 0 12668 8276 2988 R 6.3 0.8 0:04.26 httpd
14882 nobody 15 0 12612 8184 2972 S 3.6 0.8 0:01.21 httpd
14913 nobody 22 0 11564 6780 2600 R 2.6 0.7 0:00.12 httpd
14900 nobody 15 0 11840 7064 2620 S 2.0 0.7 0:00.32 httpd
14874 nobody 15 0 12676 8252 2972 S 1.6 0.8 0:02.36 httpd
14910 nobody 21 0 11228 6292 2512 R 0.7 0.6 0:00.09 httpdвопрос 1
смущает немного CPU спящих процессов, неужели в режиме i/o столько нужно им?
нормально ли это для такого обьема трафика или же дело в конфигурации системы, сервера?вопрос 2
вопрос по уменьшению MEM и CPU для httpd, кто как делал
например насколько модуль fastcgi может увеличить производительность?
какае лишние модули Apache можно убрать?
Cpu(s): 96.7%
При 600 запросов в минуту это ненормально, оптимизируй скрипты, пхп и перл.У меня поболее запросов, процессор почти такойже и тратится 50%CPU
Да вот и хотелось бы узнать о методах оптимизации -)
Где копать то.
Мой скрипт работает с файловой базой данных dbm.
Причем поочередно, через блокировку(flock использует дополнительный файл).
Обьект CGI очищается по выходе методом delete_all.
В конце скрипта даже пробовал очищать undef -м все переменные.
По моему в Perl все это автоматом делается, чтоб утечку памяти сделать
надо постараться, у меня бесконечных циклов нет, ссылки не использую,
если открываю базу с tie, то и закрываю с помощью untie.Может быть есть какие то ограничения в ядре системы?
На кол-во открытых дескрипторов, сокетов и т.д.
Где такой в Red Hat -е может быть?
Никак не могу понять почему некоторые процессы висят по 2,5 минуты
сжирая по 15 % CPU
скажите есть ли способы мониторинга таких процессов
как узнать какая системная функция вызвана им в данный момент времени
и т.д. ?
perl-скрипты вызываются как обычные CGI-приложения? если да, то попробуй fastcgi или mod_perl
>сервер, CPU - 2 GHz, MEM - 1 Gb, Linux OS
>Apache 1.34, mod_perl - 1.29Для начала выключи KeepAlive.
Потом смотри в сторону использования фронтенда с nginx или apache+mod_accel, первый если кешировать нечего, а второй если что-то можно.
Если fastcgi или другой перл-мод на апаче не установлен то это и ответ почему процессор перегружен:) А незнаю зачем ты ищешь утечку памяти, с памятью всё ок!Tasks: 110 total, 11 running, 99 sleeping, 0 stopped, 0 zombie
Cpu(s): 96.7% us, 3.3% sy, 0.0% ni, 0.0% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 1026060k total, 586968k used, 439092k free, 37628k buffers
Swap: 2096472k total, 0k used, 2096472k free, 259628k cached
Отсюдова также видно что 110 процессов запущенно , это говорит о том что кепалайв трогать не надо.. скорее всего он вырублен и можно поставить на одну секунду для скорости загрузки вебстраниц и облегчении тогоже самого процессорного времени.(у меня нормальный режим 200-250 процессов из них 150 апачь)
load average: 11.15, 5.95, 3.85 - для такой процессорной загрузки очень даже хороший ;)И ещё, ты говоришь некоторые процессы висят долго и потребляют постоянно процессор, а другие выполняются быстрее??
У меня такое же было когда в пхп написал
for($i=0;$i<100;$i+=$step) {...}
Но степ не прописал :))) это бесконечный цикл
Ищи скрипт который тебе портит жизнь.. например это те которые долго открываются..
мод работал под Run(скрипт не было времени переделывать)
подправил скрипт, запустил под Registry
щас все нормально работает, нагрузка на проц существенно уменьшилась