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

Исходное сообщение
"Apache: дико растет load average и потребление памяти"

Отправлено Dmitryzdzd , 07-Окт-09 18:37 
Привет!

Конфигурация сервера: i920 (8 cores), 8Gb ram, стал виснуть чуть ли не каждый день.

Симптомы:
Очень быстро растет load average (до страшных величин):
top - 15:54:09 up 19:26,  0 users,  load average: 511.12, 256.54, 104.97
переполняется память и своп:
Mem:   8166732k total,  7574492k used,   592240k free,     4100k buffers                                                          
Swap:  4200888k total,  4166296k used,    34592k free,    41140k cached
После чего сервер разве что пингуется, но больше никак его растолкать не получается.

Если поймать момент и выключить httpd в момент роста load average - все становится ОК, стало быть дело в httpd и смежных процессах.
Сделал скриптик, который раз в минуту пишет статистику
#!/bin/sh                                                                                                                          
NOW=$(date +%Y%m%d_%H_%M)                                                                                                          
lynx -dump http://localhost/server-stz > /root/visla/s-stz_$NOW                                                                    
lynx -dump http://localhost/stz > /root/visla/stz_$NOW                                                                            
netstat -plan|grep :80|awk {'print $5'}|grep -v :80|cut -d: -f 1|sort|uniq -c|sort -nk 1 > /root/visla/netstat_$NOW                
ps -ylC httpd --sort:rss > /root/visla/ps_$NOW                                                                                    
top -bcn1 > /root/visla/top_$NOW

Сейчас вот сервер опять словил висяк, но по крайней мере есть файлы со статистикой. Но вот понять, что так сильно отожрало CPU и память затруднительно....

По статусу апача в момент самого висяка:

   Server Version: Apache/2.2.3 (CentOS)                                                                                          
   Server Built: May 28 2009 12:49:04                                                                                              
     _________________________________________________________________                                                            
                                                                                                                                  
   Current Time: Wednesday, 07-Oct-2009 15:56:42 CEST                                                                              
   Restart Time: Wednesday, 07-Oct-2009 14:10:23 CEST                                                                              
   Parent Server Generation: 0                                                                                                    
   Server uptime: 1 hour 46 minutes 19 seconds                                                                                    
   Total accesses: 540995 - Total Traffic: 4.2 GB                                                                                  
   CPU Usage: u1227.23 s1179.73 cu0 cs0 - 37.7% CPU load                                                                          
   84.8 requests/sec - 0.7 MB/second - 8.1 kB/request                                                                              
   879 requests currently being processed, 56 idle workers                                                                        
                                                                                                                                  
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW_WWWWWWWWWWWWWWWWWWWW.WWWW.WWWWWW                                                                  
WWW_WWWWWWWWWWWW.W.WWWWWWWWWWWWWWWWWW_WWWWWWWWWWWWWWWWWWWWWWWW.W                                                                  
WWWWWWWWWWCWWWW.WWWWWWWWWWWWWWWWWWWWWWWW.W_WWWW_WWWWWW.WWWWWWWWW                                                                  
WWWWWWWWWWWW.WWWWWWWWWW.CW_WWCWWWWW_...WWWW_W_WWWWWWWWWWW.WWWWWW                                                                  
WWWWWWWW.WWWWWWWWWWWWWWW._W._WWWWW..WWW_WWWWWWWWWWWWWWWWWWWWWWWW                                                                  
WWWWW.WWWWWWWW_WWWWWWWWWWWWWWW_WWWWWWWWWWWWWW__WWWWWWWWWWWWWW_WW                                                                  
WWWWWCWWWWWWWWWW_W_.WWWWWWWWW_CWWWWC_W.WWWW_.WWWWWWWWWWWWWWWWWWW                                                                  
WWWWWWWWWWWWWWWWWW.W.WWWWWWWWWWWWWWWWWWWW.WWWWWWWW.WWWWWWWWWWWWW                                                                  
WWWWWWWWWW..WWWWW_WWWWWW.WWWW.WWWWWWWW_W._WWWWWWW.WWWWW.WWWWWWWW                                                                  
WWW.WWCWWW.WWWWWW_WWWWWWWWWWWW__.WW.W.WW_W_W.WWWWW.WW_WWW_WWW.WW                                                                  
WW.WWW__W.WWWWWCWWWWWWW..WW.W_WWWW_WWW_WWW_W.WW_.W_WWWW.WWW.WWW.                                                                  
WRWWW.WWW_WWWWWWWW.W_.WWWW_W_WWRWWWWWW_.WWWWWWWWWWWWWWWWWWWWWWWW                                                                  
_WWWWWWWWWWW.WW.W_WWWWWWWWWW_WWWWWWWWW_WWWWW.WWW_WWWWWWWWWW_WWWW                                                                  
.WWWW.WW_WWWWWC_WWWWW.WWWWWWWWWW.WWWWWWWCWWWWWWWWWWW.W.WWWWW.W.W                                                                  
W.WWWWWW..WWWWWWWWWW.WWWWWWW_WW...WWWW.WWWWW..WWWWWW.WWWW.CWW.W.                                                                  
WWW.WW.WWWWWWWWWWWWWW_WWWWWWWWWWWWW.WWW..W.WWW.WWWWW.WWWCW_WWWWR


вывод top:

top - 15:54:09 up 19:26,  0 users,  load average: 511.12, 256.54, 104.97                                                          
Tasks: 1141 total,   1 running, 1139 sleeping,   0 stopped,   1 zombie                                                            
Cpu(s): 14.2%us,  0.6%sy,  0.0%ni, 84.4%id,  0.4%wa,  0.1%hi,  0.4%si,  0.0%st                                                    
Mem:   8166732k total,  7574492k used,   592240k free,     4100k buffers                                                          
Swap:  4200888k total,  4166296k used,    34592k free,    41140k cached                                                            
                                                                                                                                  
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                              
3187 mysql     15   0  408m  19m 3404 S 16.6  0.2  29:35.22 /usr/libexec/mysqld                                                  
23513 apache    15   0  356m  11m 4680 S 11.1  0.1   0:00.22 /usr/sbin/httpd                                                      
25844 root      15   0 13548 1796  704 R  5.5  0.0   0:00.06 top -bcn1                                                            
21312 apache    16   0  357m  15m 6380 D  3.7  0.2   0:02.96 /usr/sbin/httpd                                                      
23751 apache    16   0  358m  14m 6328 D  3.7  0.2   0:01.05 /usr/sbin/httpd                                                      
24504 apache    15   0  356m  13m 5660 D  3.7  0.2   0:00.34 /usr/sbin/httpd                                                      
25621 apache    15   0  354m  10m 4208 D  3.7  0.1   0:00.04 /usr/sbin/httpd                                                      
20386 apache    16   0  358m  14m 6424 D  1.8  0.2   0:01.67 /usr/sbin/httpd                                                      
25611 apache    15   0  355m  12m 5224 S  1.8  0.2   0:00.72 /usr/sbin/httpd
...
и очень много процессов типа
25617 apache    18   0  351m 9100 2708 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25618 apache    15   0  354m  12m 4244 D  0.0  0.2   0:00.10 /usr/sbin/httpd                                                      
25622 apache    15   0  355m  11m 4704 D  0.0  0.1   0:01.39 /usr/sbin/httpd                                                      
25623 apache    15   0  358m  15m 5320 S  0.0  0.2   0:00.12 /usr/sbin/httpd                                                      
25624 apache    15   0  356m  12m 4696 D  0.0  0.2   0:00.07 /usr/sbin/httpd                                                      
25625 apache    15   0  353m  11m 3824 S  0.0  0.2   0:00.06 /usr/sbin/httpd                                                      
25626 apache    18   0  353m  11m 3916 D  0.0  0.2   0:09.31 /usr/sbin/httpd                                                      
25627 apache    15   0  350m 6904 1540 S  0.0  0.1   0:01.05 /usr/sbin/httpd                                                      
25628 apache    15   0  351m 9204 3412 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25629 apache    16   0  351m 9140 2712 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25630 apache    17   0  351m 8880 2476 D  0.0  0.1   0:00.11 /usr/sbin/httpd                                                      
25631 apache    15   0  354m  10m 4056 S  0.0  0.1   0:00.07 /usr/sbin/httpd                                                      
25633 apache    18   0  351m 8796 2412 D  0.0  0.1   0:00.07 /usr/sbin/httpd                                                      
25636 apache    18   0  351m 8808 2408 D  0.0  0.1   0:00.18 /usr/sbin/httpd                                                      
25637 apache    15   0  355m  11m 4904 S  0.0  0.2   0:00.08 /usr/sbin/httpd                                                      
25638 apache    18   0  351m 8812 2408 D  0.0  0.1   0:00.45 /usr/sbin/httpd                                                      
25642 apache    18   0  351m 8768 2380 D  0.0  0.1   0:00.41 /usr/sbin/httpd                                                      
25643 apache    16   0  351m 9700 3280 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25644 apache    18   0  351m 8796 2408 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25645 apache    18   0  351m 9368 2980 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25646 apache    15   0  352m  10m 3392 D  0.0  0.1   0:00.11 /usr/sbin/httpd                                                      
25647 apache    16   0  351m 8804 2408 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25652 apache    16   0  351m 8804 2408 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25653 apache    17   0  351m 9012 2640 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25654 apache    18   0  351m 8804 2400 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25655 apache    15   0  352m  10m 3520 S  0.0  0.1   0:00.02 /usr/sbin/httpd                                                      
25656 apache    18   0  351m 9672 3280 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25658 apache    15   0  351m 9380 2980 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25659 apache    18   0  351m 9288 2968 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25660 apache    15   0  350m 8400 2872 S  0.0  0.1   0:00.00 /usr/sbin/httpd                                                      
25661 apache    15   0  350m 6208 1296 S  0.0  0.1   0:00.00 /usr/sbin/httpd                                                      
25662 apache    18   0  351m 9024 2664 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25705 apache    15   0  352m  10m 3524 S  0.0  0.1   0:00.02 /usr/sbin/httpd                                                      
25706 apache    18   0  351m 9028 2668 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25707 apache    18   0  351m 9596 3236 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25708 apache    18   0  351m 9316 3264 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25712 apache    18   0  351m 9024 2664 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25713 apache    18   0  351m 9104 2716 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25714 apache    18   0  351m 8756 2700 D  0.0  0.1   0:00.01 /usr/sbin/httpd                                                      
25715 apache    18   0  351m 9336 2952 D  0.0  0.1   0:00.01 /usr/sbin/httpd

Может быть, просто дело в тюнинге апача (уменьшить maxclients, еще что-то?), но как мне кажется, что так страшно он все-таки падать не должен.

Какие будут идеи? или как еще можно продиагностировать где дрянь прячется?

Конфиг апача:

<IfModule prefork.c>
StartServers  5
MinSpareServers    5
MaxSpareServers   10
ServerLimit 1024
MaxClients  1024
MaxRequestsPerChild  1024
</IfModule>
  
<IfModule worker.c>  
StartServers    2    
MaxClients    150    
MinSpareThreads25    
MaxSpareThreads75    
ThreadsPerChild25    
MaxRequestsPerChild  1024
</IfModule>

Спасибо!


Содержание

Сообщения в этом обсуждении
"Apache: дико растет load average и потребление памяти"
Отправлено TeXHaPb , 07-Окт-09 19:48 
>[оверквотинг удален]
>Swap:  4200888k total,  4166296k used,    34592k free,
>   41140k cached
>
>  PID USER      PR  NI
> VIRT  RES  SHR S %CPU %MEM  
> TIME+  COMMAND
> 3187 mysql     15   0  
>408m  19m 3404 S 16.6  0.2  29:35.22 /usr/libexec/mysqld
>
> много-много httpd

Мне кажется, что в какой-то момент mysql не справляется с потоком запросов и новые http-запросы растут быстрее обработки. Короче, узкое место - mysql. Может иметь смысл написать скрипт, обрубающий все долго висящие соединения с mysql.


"Apache: дико растет load average и потребление памяти"
Отправлено xyz , 07-Окт-09 19:58 
нужно выяснить почему столько процессов со статусом sending reply, включите ExtendedStatus в server-status, может выкачивают какой проект, или флудят, тем самым парализуют работу.

>[оверквотинг удален]
><IfModule worker.c>  
>StartServers    2
>MaxClients    150
>MinSpareThreads25
>MaxSpareThreads75
>ThreadsPerChild25
>MaxRequestsPerChild  1024
></IfModule>
>
>Спасибо!


"Apache: дико растет load average и потребление памяти"
Отправлено Dmitryzdzd , 07-Окт-09 23:09 
Что меня вот еще смутило:

top:
15532 apache    16   0 4168m 2.2g 6596 D  0.0 28.7   0:25.27 /usr/sbin/httpd

ps:
D    48 15532 24752  3  76   0 2345616 1067170 -  ?        00:00:25 httpd

Может из-за этого процесса бардак пошел?



"Apache: дико растет load average и потребление памяти"
Отправлено Mortalis , 16-Окт-09 22:18 
Попробуй gstat в момент нагрузки =)
Была похожая такая проблема, оказалось что не хватает ИО веника, разнесли мускул и хомяки юзеров на разные винты - как рукой сняло.

"Apache: дико растет load average и потребление памяти"
Отправлено sHaggY_caT , 17-Окт-09 20:58 
>Попробуй gstat в момент нагрузки =)
>Была похожая такая проблема, оказалось что не хватает ИО веника, разнесли мускул
>и хомяки юзеров на разные винты - как рукой сняло.

gstat это фря. В Linux это, например, iostat. В той же фре top с сортировкой по дерганию диска гораздо удобнее

2 топикстартер:

Cpu(s): 14.2%us,  0.6%sy,  0.0%ni, 84.4%id,  0.4%wa,  0.1%hi,  0.4%si,  0.0%st  

Вообще-то у Вас все колом в D стоит. Скорее всего, да, диск. А вот первопричину нужно найти, и найти средствами того же Апача.

Для начала, что бы понять, как вообще ищутся лоэды, хватит этой доки:

http://rhd.ru/docs/manuals/enterprise/RHEL-4-Manual/admin-gu...

А дальше, как уже подсказали, server-status - лучшее из открытых решений.