mysqld и loadaverages

12
root
На сайте с 04.07.2006
Offline
196
1536

Добрый день!

на сервере возникла проблема:

за последние 2 дня load averages стал зашкаливать за 15-20,

хотя до этого никогда всегда был 1-2!

это приводит к выключению системы, приходится перегружать

ничего не менялось, в логах ничего подозрительного нет,

только потихоньку обновлялась база работниками,

починил все таблицы, оптимизировал, все равно 0 результата,

в чем может быть проблема?

P.S. отключаю mysqld - load averages сразу становятся 0.8-1.2

top показывает 15-25 активных процессов, около 500 sleeping

(т.к. используется pconnect)

может, руткит какой забрался?

как это проверить?

Roxis
На сайте с 19.11.2006
Offline
40
#1

руткиты хорошо ищет rkhunter

Andreyka
На сайте с 19.02.2005
Offline
822
#2
root:

P.S. отключаю mysqld - load averages сразу становятся 0.8-1.2
top показывает 15-25 активных процессов, около 500 sleeping
(т.к. используется pconnect)

может, руткит какой забрался?
как это проверить?

Да не, скорее тут все же в mysql дело. Попробуйте долгие запросы пологировать

Не стоит плодить сущности без необходимости
Free_head
На сайте с 06.03.2007
Offline
123
#3

проверить три весчи

1. объём базы какой ? может там уже сотни тысяч записей в табличках

2. Закрываются ли транзакции ?

3. а зачем вообще тама постоянный коннект . :)

Вобщем на самом деле потрясите программеров .. что они ещё раз прошли по коду ..

Не верю, не боюсь, не прошу.
M
На сайте с 09.03.2007
Offline
1
#4

show full processlist в студию.

B
На сайте с 06.04.2006
Offline
24
#5
root:
это приводит к выключению системы, приходится перегружать

Достаточно перезапустить mysql.

root:
ничего не менялось, в логах ничего подозрительного нет, только потихоньку обновлялась база работниками, починил все таблицы, оптимизировал, все равно 0 результата,
в чем может быть проблема?

mytop поможет увидеть запросы в реальном времени.

Проблема мб в pconnect-ах или большом притоке пользователей.

root:
P.S. отключаю mysqld - load averages сразу становятся 0.8-1.2
top показывает 15-25 активных процессов, около 500 sleeping
(т.к. используется pconnect)

Уберите pconnect-ы и посмотрите что изменится.

Бывает, что из-за их использования число соединений растёт. А каждое, даже спящее, соединение требует для себя выделения буферов. При sleeping соединениях скорее всего была съедена вся память и mysql ушла в своп. Из него она может и не вернуться без перезапуска (так как запросы продолжают поступать).

Как вариант, можно уменьшить количество соединений на пользователя или на всю базу вцелом. Но если проблема в pconnect-ах, то от этого она только рашьше отрубится.

Ещё вариант - написать скриптик, который будет анализировать show process list и убивать долго спящие процессы. Так сделал один мой знакомый, у него работает. Хотя можно и через my.cnf это решить.

Мониторинг сайтов (http://hostpulse.ru/), серверов, проверка содержимого страниц.
root
На сайте с 04.07.2006
Offline
196
#6

базы в сумме около 100 Мб,

самое большое кол-во рядов 33000, остальные по 5000-10000...

свободной памяти около 1 Гб,

своп свободен всегда, судя по top

"show full processlist в студию."

состоит из слипов в основном :( длительностью от 0 до 20 секунд,

т.к. в my.cnf стоит умирание через 20 сек

pconnect убрал, ничего не изменилось...

load averages бешеные, до 50 доходит...

(Xeon 2.8 2Gb ram)

прирост юзеров тоже нехилый, но раньше выдерживал и больше раза в полтора...

отрубил в php.ini persistent connection

после ребута толку 0, так же куча слип процессов очень длинных

в скриптах подключения к базе проставил connect вместо pconnect,

после ребута то же самое

посмотрел длинные процессы, select count(id) from table

из 33000 рядов выбирает 24 секунды O_o

вообще не понимаю, что такое...

root
На сайте с 04.07.2006
Offline
196
#7

еще интересный момент:

отключаю один сайт от одной базы (10000 записей, около 7 метров)

load averages сразу паадет до нормальных 1-2...

хотя на этом сайте не так много человек по сравнению с остальными...

скрипты точно не менялись, ни одна строчка, в базу добавлений не было (!)

все, что можно , с базой сделал...

все равно толку 0...

Roxis
На сайте с 19.11.2006
Offline
40
#8

query_cache_size = 128M

root
На сайте с 04.07.2006
Offline
196
#9

стоит 256M...

-----------------------------

в итоге оказалось , что сервер нагружал запрос, который с базой в 3 раза больше

работает нормально... избавился от него ...

только до сих пор не понятно, почему это произошло в один из обычных дней,

хотя до этого все работало нормально даже при большем количестве хостов...

Спасибо Вам за советы!

emzi
На сайте с 17.01.2007
Offline
46
#10

Нередко бывают ситуации, когда некоторые из параметров - количество строк в таблицах, фрагментированность страниц, объем таблиц - пересекают явные или неявные пороги, такие как размеры кэша или буферов, в результате чего резко падает производительность либо из-за того, что выбранные сервером БД стратегии работы с данными перестают быть эффективными, либо сервер сам ошибочно меняет стратегию на менее эффективную.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий