ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[apache-talk] Отцы, выручайте !



Здравствуйте

Жил да был WEB-сервер (Server Version: Apache/1.3.12 (Unix) PHP/4.0.6
PHP/3.0.18 mod_ssl/2.6.6 OpenSSL/0.9.5a rus/PL29.7) под FreeBSD
(периодически до -STABLE доводится, сейчас вот уже 4.5) на 2xPiii-500,
1G ram. Уже несколько лет жил, и причем неплохо жил. Крутятся там
несколько проектов, в основном на php + mysql (3.23.42, тоже иногда
обновляется). Подключен хоть и к хорошему каналу, но через 10Мбитный
сосок, причем на сегменте еще штук 5 машинок сидят.

И вот некоторые ресурсы стали приобретать кое-какую популярность,
пошла вроде как нагрузка. Причем стандартная нагрузка то вроде как не
сильная, все живет, даже можно сказать "летает". mysql processlist ~100
штук показывает. Процессов около 100 спят. нагрузка 0.87 (при том что
у двухпроцессорной тачки 100% = 2.00) Память есть свободная, в свопе -
копейки. Но вот в последнее время стали происходить "затыки". Вначале
реденько, а сейчас раза 3-4 в неделю, причем запросто может 2 раза в
день произойти.

Например живет там чат (не рефрешевый, а такой который постоянно
что-то шлет, и соответственно демона поднятого держит. Но много народу
не бывает - обычно человек 30-50). Сидишь, значит, болтаешь и тут
дынсь! Стопор. Лезешь на остальные ресурсы - тишина... молчание...
Пинг ходит прекрасно. ssh -C хоть и с трудом, но пробивается. Но как
зашел - тормоза ! По букве в минуту успеваешь набрать. Смотрю топ:
1мин average под 10, хотя 15минутный еще чистенький.
Висят 600 процессов, штук 50 зомбей, в свопе 200 метров лежит (хотя и
свободная память есть). mysql processlist около 600 строк кажет,
многие в lock state. Труба короче полная. Приходится делать:
# apachectl stop; apachectl start_off;  # последний говорит ЖДИТЕ! :)
# mysqladmin shutdown; /usr/local/etc/rc.d/mysql-server.start
  при загрузке mysqlя базы на всякий случай чекаются myisamcheck
# apachectl stop; apachectl startssl
и все опять здорово и замечательно до поры до времени...

предполагаю что дело в локах и пконнектах, но почему тогда это не
постоянно так ? ЧТо делать, ума не париложу. Увеличение мощьности
компутера, думаю проблему не решит, ибо в принципе ее хватает.

Вот привожу всякие логи и конфиги, в надежде что мне помогут :)

/server-status (через 5 часов после последнего затыка:)

Current Time: Thursday, 31-Jan-2002 22:07:42 NOVT
Restart Time: Thursday, 31-Jan-2002 16:49:21 NOVT
Parent Server Generation: 1 
Server uptime: 5 hours 18 minutes 21 seconds
Total accesses: 239432 - Total Traffic: 391.9 MB
CPU Usage: u499.141 s175.117 cu117.523 cs251.148 - 5.46% CPU load
12.5 requests/sec - 21.0 kB/second - 1716 B/request
50 requests currently being processed, 4 idle servers 
-------------------------------
# mysqladmin status (через 5 часов после последнего затыка:)
Uptime: 22013  Threads: 66  Questions: 1483988  Slow queries: 531  Opens: 1180 
Flush tables: 1  Open tables: 1174 Queries per second avg: 67.414              
--------------------------------
# mysqladmin processlist|wc -l
      81                                                                       
--------------------------------
# top (через 5 часов после последнего затыка:)
last pid: 76031;  load averages:  0.84,  0.87,  0.95    up 1+03:14:07  22:14:02
124 processes: 5 running, 118 sleeping, 1 zombie                               
CPU states: 44.5% user,  0.0% nice, 28.1% system,  0.2% interrupt, 27.1% idle  
Mem: 283M Active, 512M Inact, 171M Wired, 35M Cache, 112M Buf, 3428K Free      
Swap: 2048M Total, 43M Used, 2005M Free, 2% Inuse                              
                                                                               
  PID USERNAME    PRI NICE  SIZE    RES STATE  C   TIME   WCPU    CPU COMMAND  
84905 mysql        49   0   466M 56288K CPU0   0 116:34 35.60% 35.60% mysqld   
  231 root          4   0  3660K  2260K bpf    1  97:37  8.84%  8.84% trafd    
75926 root         28   0  2072K  1140K CPU1   0   0:01  2.39%  1.37% top      
70630 apache        2   0 19592K 12944K sbwait 1   0:11  1.22%  1.22% httpd    
64611 apache        2   0 19936K 13308K sbwait 1   0:20  0.93%  0.93% httpd    
---------------------------------
MRTG за неделю (раза 4 были затыки :( Тут это видать :)

CPU Weekly:
Макс.Вх:1993.0 CPU/sec(996.5%) Ср.Вх:121.0 CPU/sec(60.5%) Тек.Вх:112.0 
CPU/sec(56.0%)
Макс.Исх:  0.0 CPU/sec  (0.0%) Ср.Исх: 0.0 CPU/sec (0.0%) Тек.Исх: 0.0 CPU/sec 
(0.0%)

MySQL Weekly
Макс. Questions/5m: 35845  Ср.Questions/5m: 15197   Текущий Q/5m: 13703
Макс.      Threads: 768         Ср.Threads: 85  Текущий  Threads: 77
  
трафик на fxp0 Weekly
Макс.Вх:  180.9 kb/s(1.8%) Ср.Вх:   45.9 kb/s(0.5%)   Тек.Вх:   49.0 kb/s(0.5%)
Макс.Исх: 740.0 kb/s(7.4%) Ср.Исх: 179.4 kb/s(1.8%)   Тек.Исх: 169.9 kb/s(1.7%)
-----------------------------------
httpd.conf

Timeout                 300
KeepAlive               On   
MaxKeepAliveRequests    250  
KeepAliveTimeout        15   
MinSpareServers         5    
MaxSpareServers         10   
StartServers            5    
MaxClients              500  
MaxRequestsPerChild     0
--------------------------------
php.ini

[MySQL]
mysql.allow_persistent  =       On
mysql.max_persistent    =       300
mysql.max_links         =       600
-------------------------------------
my.cnf

[mysqld]
skip-locking
set-variable    = key_buffer=384M
set-variable    = max_allowed_packet=1M                 
set-variable    = max_connections=700
set-variable    = table_cache=512                       
set-variable    = wait_timeout=60                       
set-variable    = sort_buffer=2M                        
set-variable    = record_buffer=2M                      
set-variable    = thread_cache=8                        
set-variable    = thread_concurrency=4
set-variable    = myisam_sort_buffer_size=64M           



С уважением, Алексей Русанов

=============================================================================
=               Apache-Talk@lists.lexa.ru mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =



 




Copyright © Lexa Software, 1996-2009.