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

Исходное сообщение
"Как узнать что грузит сервер"

Отправлено evger , 17-Окт-08 15:07 
используется Fedora 5
стоит Apache порядка 10 виртуал хостов
в некоторое время сервер стал жутко тормозить
LA 15-20
Стал разбираться что тормозит, определил основных кандидатов
Apache, Sendmail, Mysql
написал демона который раз в минуту чекает процессы и записывает и ttime
также чекает LA

Построил графики sum(ttime) от hour(time) и avg(LA) от hour(time) - они совершенно разные,
топ avg(LA) описывает реальную картинку, LA максимально в пик загрузки сервера, а пик sum(ttime) попадает на ночь, при этом днем все ништяк.
Решил оптимизировать все.
Дал больше памяти mysql, поставил nginx фронтендом к апач
Все равно жуткие тормоза.

Решил что это все же Apache, написал скрипт воссоздания нагрузки.
Он берет инфу из лога nginx и в 20 процессов с локалхоста грузит эти urlы.
Запустил его ночью
При этом LA вырос до таких же значений что и в пик днем, но при это сайты грузились нормально, службы работали, в то время как днем при таком же LA бвл просто ПЦ.

Как еще можно диагнозтировать - что же создает такой ПЦ, где я лажаю в своих рассуждениях.


Содержание

Сообщения в этом обсуждении
"Как узнать что грузит сервер"
Отправлено smile , 17-Окт-08 16:44 
>[оверквотинг удален]
>Решил что это все же Apache, написал скрипт воссоздания нагрузки.
>Он берет инфу из лога nginx и в 20 процессов с локалхоста
>грузит эти urlы.
>Запустил его ночью
>При этом LA вырос до таких же значений что и в пик
>днем, но при это сайты грузились нормально, службы работали, в то
>время как днем при таком же LA бвл просто ПЦ.
>
>Как еще можно диагнозтировать - что же создает такой ПЦ, где я
>лажаю в своих рассуждениях.

в момент пиковой загрузки попробуйте mytop'ом посмотреть - может особо зловонный запрос залочил собой какую-нить таблицу и его собратья стоят за ним в очереди? а причин к описанным симптомам может быть очень много, в частности - ошибки релизации работы с кешем при одновременном доступе...


"Как узнать что грузит сервер"
Отправлено evger , 17-Окт-08 17:22 
>в момент пиковой загрузки попробуйте mytop'ом посмотреть - может особо зловонный запрос
>залочил собой какую-нить таблицу и его собратья стоят за ним в
>очереди?

а что я должен наблюдать? стандартная картина 10 висящих httpd, и пара perl скриптов, переодически скачет.
>а причин к описанным симптомам может быть очень много, в
>частности - ошибки релизации работы с кешем при одновременном доступе...

кэш имеется ввиду кэш apache и nginx? или кэш реализованный в движке сайтов?

у меня есть некоторые идеи которые я не знаю как проверить,
1) ограничение на количество сокетов, - может просто процессы стоят в ожидании свободного сокета
2) ограничение на колличество открытых файлов
3) какие-то ограничения mysql на число коннектов
Вот статы, может Вы что-то увидите
==================
mysqladmin status
Uptime: 60970  Threads: 2  Questions: 322707  Slow queries: 303  Opens: 637  Flush tables: 1  Open tables: 256  Queries per second avg: 5.293
====================
top - 17:19:58 up 1 day,  1:59,  1 user,  load average: 22.77, 26.79, 27.17
Tasks:  69 total,   1 running,  68 sleeping,   0 stopped,   0 zombie
Cpu(s):  3.2% us,  1.5% sy,  0.0% ni, 34.0% id, 61.2% wa,  0.0% hi,  0.0% si,  0.0% st
Mem:   8235292k total,   197936k used,  8037356k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached
user apache
7968 apache    18   0  5064 3368 1548 D    2  0.0   0:00.09 index.cgi
26438 apache    15   0 96820  35m 8136 S    2  0.4   0:01.37 httpd
26210 apache    16   0 72956  15m 6040 S    0  0.2   0:02.60 httpd
5896 apache    17   0 69368   9m 1948 S    0  0.1   0:00.00 httpd
20348 apache    15   0 72980  17m 8504 S    0  0.2   0:01.14 httpd
20446 apache    16   0 72952  15m 5972 S    0  0.2   0:02.20 httpd
23600 apache    15   0 72968  15m 6000 S    0  0.2   0:01.24 httpd
23609 apache    15   0 72976  15m 5992 S    0  0.2   0:02.37 httpd
24392 apache    15   0 72968  17m 8140 S    0  0.2   0:02.27 httpd
24404 apache    15   0 72916  17m 8292 S    0  0.2   0:01.26 httpd
28656 apache    15   0 72972  17m 8200 S    0  0.2   0:01.38 httpd
user root
1624 root      16   0 39340  33m 2380 S    2  0.4   0:38.27 spamd
1858 root      15   0 37000  31m 2384 S    1  0.4   0:26.72 spamd
9320 root      21   5  8572 3796 2556 D    1  0.0   0:00.04 sendmail
6106 root      21   5  8696 3868 2616 D    1  0.0   0:00.08 sendmail
9288 root      20   5  8568 3796 2560 S    1  0.0   0:00.04 sendmail
5511 root      18   0  8116 2468  804 D    0  0.0   0:02.48 sendmail
5668 root      18   0  7500 1656  704 D    0  0.0   0:00.80 sendmail
5835 root      15   0  2060 1028  796 R    0  0.0   0:00.25 top
7520 root      21   5  8692 3860 2616 D    0  0.0   0:00.05 sendmail
7591 root      22   5  8688 3868 2620 D    0  0.0   0:00.05 sendmail
14260 root      18   0  7644 1916  804 D    0  0.0   0:07.07 sendmail
20127 root      17   0  7916 2172  804 D    0  0.0   0:14.12 sendmail
    1 root      15   0  1932  672  576 S    0  0.0   0:02.20 init
3544 root      18   0  8116 2476  804 D    0  0.0   0:04.49 sendmail
5518 root      18   0  8112 2464  804 D    0  0.0   0:02.66 sendmail
5753 root      21   5  8568 3788 2556 S    0  0.0   0:00.04 sendmail
6075 root      15   0  1584  564  472 S    0  0.0   0:33.88 syslogd
7214 root      18   0  4920 1116  796 S    0  0.0   0:00.01 sshd
7699 root      21   5  8692 3832 2584 D    0  0.0   0:00.05 sendmail
7755 root      15   0 31396  25m 2352 S    0  0.3   0:21.55 spamd
8033 root      15   0  5464 1124  572 S    0  0.0   0:00.20 crond
8059 root      18   0  6416  908  548 S    0  0.0   0:00.00 squid
8064 root      19   0  1936  488  380 S    0  0.0   0:00.00 ncsa_auth
8067 root      20   0  1928  484  380 S    0  0.0   0:00.00 ncsa_auth
8068 root      19   0  1932  488  380 S    0  0.0   0:00.00 ncsa_auth
8069 root      19   0  1932  484  380 S    0  0.0   0:00.00 ncsa_auth
8070 root      19   0  1932  488  380 S    0  0.0   0:00.00 ncsa_auth
8114 root      15   0  5168 1280  976 S    0  0.0   0:00.00 saslauthd
9297 root      21   5  8704 2440 1160 D    0  0.0   0:00.00 sendmail
9901 root      18   0  7504 1844  804 D    0  0.0   0:03.28 sendmail
19672 root      15   0  2152  844  700 S    0  0.0   0:00.93 xinetd
19820 root      18   0  4620 1284 1108 S    0  0.0   0:00.01 mysqld_safe
20174 root      15   0 69228  15m 7968 S    0  0.2   0:00.55 httpd
21658 root      21   5  8688 3804 2560 S    0  0.0   0:00.04 sendmail
24127 root      15   0  7928 2404 1944 S    0  0.0   0:00.07 sshd
25762 root      20   5  8700 3860 2604 S    0  0.0   0:00.06 sendmail
27912 root      18   0  4772 1524 1228 S    0  0.0   0:00.04 bash
27961 root      18   0  7068 1488  540 S    0  0.0   0:00.00 nginx
32371 root      21   5  8680 3860 2620 S    0  0.0   0:00.07 sendmail


"Как узнать что грузит сервер"
Отправлено evger , 17-Окт-08 17:32 
netstat -s
Tcp:
    49996 active connections openings
    75719 passive connection openings
    787 failed connection attempts
    7917 connection resets received
    29 connections established
    2181883 segments received
    2146656 segments send out
    30663 segments retransmited
    9 bad segments received.
    21484 resets sent
нет ли тут чего нить подозрительного?

"Как узнать что грузит сервер"
Отправлено evger , 20-Окт-08 14:33 
ответ кроется в wa 80-90%
как я понимаю это iowait, т.е куча процессов ждет завершение I/O операции.
вопрос как узнать - какие процессы, и почему не могут прочитать или записать.

"Как узнать что грузит сервер"
Отправлено evger , 20-Окт-08 19:38 
проблема решена.

"Как узнать что грузит сервер"
Отправлено славик , 08-Фев-09 18:10 
>проблема решена.

что же там было, и как решил?


"Как узнать что грузит сервер"
Отправлено evger , 08-Фев-09 18:39 
>>проблема решена.
>
>что же там было, и как решил?

верхняя строчка top
61% WA
это Wait input output operation

разрослись почтовые ящики, при получении письма sendmail дописывал в огромные файлы жрал весь ресурс винта, из за этого вставали все процессы - ждали запись или чтение файла.