URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 3760
[ Назад ]

Исходное сообщение
"httpd и CPU"

Отправлено Diviner , 09-Дек-05 20:56 
сервер, 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 cached

  PID 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 можно убрать?


Содержание

Сообщения в этом обсуждении
"httpd и CPU"
Отправлено Dimitry , 09-Дек-05 22:32 
Cpu(s): 96.7%
При 600 запросов в минуту это ненормально, оптимизируй скрипты, пхп и перл.

У меня поболее запросов, процессор почти такойже и тратится 50%CPU


"httpd и CPU"
Отправлено Diviner , 10-Дек-05 17:55 
Да вот и хотелось бы узнать о методах оптимизации -)
Где копать то.
Мой скрипт работает с файловой базой данных dbm.
Причем поочередно, через блокировку(flock использует дополнительный файл).
Обьект CGI очищается по выходе методом delete_all.
В конце скрипта даже пробовал очищать undef -м все переменные.
По моему в Perl все это автоматом делается, чтоб утечку памяти сделать
надо постараться, у меня бесконечных циклов нет, ссылки не использую,
если открываю базу с tie, то и закрываю с помощью untie.

Может быть есть какие то ограничения в ядре системы?
На кол-во открытых дескрипторов, сокетов и т.д.
Где такой в Red Hat -е может быть?


"httpd и CPU"
Отправлено Diviner , 10-Дек-05 20:10 
Никак не могу понять почему некоторые процессы висят по 2,5 минуты
сжирая по 15 % CPU
скажите есть ли способы мониторинга таких процессов
как узнать какая системная функция вызвана им в данный момент времени
и т.д. ?

"httpd и CPU"
Отправлено rWizard , 11-Дек-05 16:13 
perl-скрипты вызываются как обычные CGI-приложения? если да, то попробуй fastcgi или mod_perl  

"httpd и CPU"
Отправлено uldus , 10-Дек-05 23:14 
>сервер, CPU - 2 GHz, MEM - 1 Gb, Linux OS
>Apache 1.34, mod_perl - 1.29

Для начала выключи KeepAlive.

Потом смотри в сторону использования фронтенда с nginx или apache+mod_accel, первый если кешировать нечего, а второй если что-то можно.


"httpd и CPU"
Отправлено Dimitry , 13-Дек-05 17:02 
Если 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) {...}
Но степ не прописал :))) это бесконечный цикл
Ищи скрипт который тебе портит жизнь.. например это те которые долго открываются..



"httpd и CPU"
Отправлено Diviner , 18-Дек-05 00:52 
мод работал под Run(скрипт не было времени переделывать)
подправил скрипт, запустил под Registry
щас все нормально работает, нагрузка на проц существенно уменьшилась