черезмерная загрузка ЦП

Alexandre

PHPПенсионер
черезмерная загрузка ЦП

При очень низкой нагрузке на БД (пара сайтов с кол-вом обращений до 200 в день) демон mysqld съедает все процессорные ресурсы ( 85-95% загрузки)
Код:
  PID USERNAME      PRI NICE  SIZE    RES STATE  C   TIME   WCPU    CPU COMMAND
47027 mysql          64   0 52420K 29108K RUN    2 881:21 85.25% 85.25% mysqld
 1350 root           52   0  2116K  1212K CPU2   0   0:02 38.81%  8.59% top
85368 www             2   0 22076K 12148K sbwait 1   0:20  4.25%  4.25% httpd
После перезагрузки БД, он достигает до 90% загрузки через минут 30.
Где копать? что мониторить?
 

Апельсин

Оранжевое создание
- show processlist
- show innodb status если используешь InnoDB
- смотреть что делает в этот момент
- не приводят ли простейшие запросы висящие в процесслист к full table scan
 

Alexandre

PHPПенсионер
Код:
> mysqladmin status -uroot -p
Enter password:
Uptime: 292  Threads: 3  Questions: 1836  Slow queries: 1  Opens: 217  Flush tables: 1  Open tables: 64  Queries per second avg: 6.288

 mysqladmin processlist -uroot -p
Enter password:
+----+------+-----------------------------+----+---------+------+-------+------------------+
| Id | User | Host                        | db | Command | Time | State | Info             |
+----+------+-----------------------------+----+---------+------+-------+------------------+
| 34 | root | localhost.xx.ru:4192     |    | Sleep   | 0    |       |                  |
| 41 | root | localhost.xx.ru:4266     |    | Sleep   | 0    |       |                  |
| 95 | root | localhost                       |    | Query   | 0    |       | show processlist |
+----+------+-----------------------------+----+---------+------+-------+------------------+
 

Alexandre

PHPПенсионер
=====================================
070201 11:45:03 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 2 seconds
----------
SEMAPHORES
----------
OS WAIT ARRAY INFO: reservation count 4, signal count 4
Mutex spin waits 0, rounds 0, OS waits 0
RW-shared spins 6, OS waits 3; RW-excl spins 1, OS waits 1
------------
TRANSACTIONS
------------
Trx id counter 0 4352
Purge done for trx's n:eek: < 0 0 undo n:eek: < 0 0
Total number of lock structs in row lock hash table 0
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 0 0, not started, OS thread id 175960064
MySQL thread id 168, query id 5625 localhost root
show innodb status
--------
FILE I/O
--------
I/O thread 0 state: waiting for i/o request (insert buffer thread)
I/O thread 1 state: waiting for i/o request (log thread)
I/O thread 2 state: waiting for i/o request (read thread)
I/O thread 3 state: waiting for i/o request (write thread)
Pending normal aio reads: 0, aio writes: 0,
ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0
Pending flushes (fsync) log: 0; buffer pool: 0
40 OS file reads, 4 OS file writes, 4 OS fsyncs
0.00 reads/s, 0 avg bytes/read, 0.00 writes/s, 0.00 fsyncs/s
-------------------------------------
INSERT BUFFER AND ADAPTIVE HASH INDEX
-------------------------------------
Ibuf for space 0: size 1, free list len 0, seg size 2,
0 inserts, 0 merged recs, 0 merges
Hash table size 34679, used cells 0, node heap has 0 buffer(s)
0.00 hash searches/s, 0.00 non-hash searches/s
---
LOG
---
Log sequence number 0 43952
Log flushed up to 0 43952
Last checkpoint at 0 43952
0 pending log writes, 0 pending chkp writes
9 log i/o's done, 0.00 log i/o's/second
----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 16062088; in additional pool allocated 860800
Buffer pool size 512
Free buffers 493
Database pages 19
Modified db pages 0
Pending reads 0
Pending writes: LRU 0, flush list 0, single page 0
Pages read 19, created 0, written 0
0.00 reads/s, 0.00 creates/s, 0.00 writes/s
No buffer pool page gets since the last printout
--------------
ROW OPERATIONS
--------------
0 queries inside InnoDB, 0 queries in queue
Main thread id 172721152, state: waiting for server activity
Number of rows inserted 0, updated 0, deleted 0, read 0
0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 0.00 reads/s
----------------------------
END OF INNODB MONITOR OUTPUT

-~{}~ 01.02.07 11:23:

innodb используешь?
Я не в курсе, просто крутятся сайты (не я их разрабатывал), как посмотреть?
 

Alexandre

PHPПенсионер
FreeBSD 4.7

-~{}~ 01.02.07 11:26:

mysql --version
mysql Ver 12.22 Distrib 4.0.26, for portbld-freebsd4.8 (i386)
 

Апельсин

Оранжевое создание
я тебя очень обрадую если скажу, что видела подобные случаи на 4й FreeBSD + достаточно старый MySQL, но я не знаю как люди решали эту проблему?
Если мне не изменяет память на 5й FreeBSD такой проблемы нет.
Можешь еще спросить товарища kvn, он года 2-3 назад тоже тут об этой проблеме писал, но я не знаю решил ли он ее как-то.
 

Alexandre

PHPПенсионер
Апельсинка а если проапгрейдить мускуль (до какой версии?), то проблема решиться?
 

Апельсин

Оранжевое создание
Alexandre, не уверена .. в связке 4ка FreeBSD + MySQL проблемы были не только в MySQL, но и из-за тредов во FreeBSD. Те MySQL что были собраны с LT - вроде бы проблем с ними было меньше, чем те которые были собраны с нативными тредами.

-~{}~ 01.02.07 12:21:

Нашла. Вот Jeremy Zawodny писал о связке FreeBSD 4 + MySQL 4.0. очень похоже на твою проблему:
http://jeremy.zawodny.com/blog/archives/000203.html
 

Фанат

oncle terrible
Команда форума
У меня такая же проблема была по гораздо более банальной причине.
на хосте болтался забатый хозяином сайт с гостевой, в которую спамеры нафлудили 10 тысяч сообщений.
а дальше всего лишь индексация поисковиками...
 

Alexandre

PHPПенсионер
Фанат там базы небольшие... Да и 10 тыс сообщений не так-то много
 
Сверху