LINUX.ORG.RU
ФорумAdmin

Тупит mysql сервер


0

1

Не плохой сервер (проц 4 ядра, 16Г оперативки) выделенный только под mysql. Периодически на сайте начинаются ошибки: Out of memory (Needed ... Вроде, но это не точно, начинает глючить, когда процессор загружается больше чем на 90%, и его так грузит mysqld. Помогает перезагрузка mysql сервера. Ниже привел конфиг. Что можно сделать?

root@:~# cat /etc/mysql/my.cnf
[client]
port		= 3306
socket		= /var/run/mysqld/mysqld.sock
default-character-set = utf8

[mysqld_safe]
socket		= /var/run/mysqld/mysqld.sock
nice		= 0

[mysqld]
user		= mysql
pid-file	= /var/run/mysqld/mysqld.pid
socket		= /var/run/mysqld/mysqld.sock
port		= 3306
basedir		= /usr
datadir		= /var/lib/mysql
tmpdir		= /tmp
language	= /usr/share/mysql/english
skip-external-locking

key_buffer		= 256M
max_allowed_packet	= 16M
thread_stack		= 192K
read_rnd_buffer_size    = 20M
read_buffer_size        = 32M
sort_buffer_size        = 64M
thread_cache_size       = 256

myisam_sort_buffer_size = 64M
myisam-recover         = BACKUP
max_connections        = 300
table_cache            = 8192

query_cache_limit	= 32M
query_cache_size        = 128M

expire_logs_days	= 10
max_binlog_size         = 100M
default-character-set = utf8

innodb_buffer_pool_size     = 2G
innodb_additional_mem_pool_size = 100M
join_buffer_size = 128M 

[mysqldump]
quick
quote-names
max_allowed_packet	= 16M
default-character-set = utf8

[mysql]
completition

default-character-set = utf8
[isamchk]
key_buffer		= 256M

sort_buffer_size	= 128M
read_buffer		= 16M
write_buffer		= 16M

!includedir /etc/mysql/conf.d/

bind-address 176.*.*.*

При перезагрузке mysql еще бывает так [code] root:~# /etc/init.d/mysql restart Stopping MySQL database server: mysqld failed! Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed! [/code]

delimer
() автор топика

1. у тебя очень большие буферы:

key_buffer		= 256M
max_allowed_packet	= 16M
thread_stack		= 192K
read_rnd_buffer_size    = 20M
read_buffer_size        = 32M
sort_buffer_size        = 64M
thread_cache_size       = 256

2.маленький квери кеш.

3.т.к. нет статистики (сколько активных подключений и тп..) то сложно делать вывод о том, кто или что сжирает память.

4. «загрузка под 90% » - это нормально если есть реальные клиенты, которые грузят.

5.

/etc/init.d/mysql restart Stopping MySQL database server: mysqld failed!"

опять же, где вывод error.log ?

вывод - запусти http://mysqltuner.pl + уменьши буферы + мониторь нагрузку через mytop, mysqladmin processlist + читай логи.

dreamer ★★★★★
()
Ответ на: комментарий от dreamer

2.маленький квери кеш.

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

ventilator ★★★
()
Ответ на: комментарий от ventilator

На многоядерных процессорах при флаше кеща блокировки убивают производительность.

У меня на четырёх ядрах в кеш попадает половина запросов: http://admin.airbase.ru/munin/airbase/airbase/mysql_queries.html

Это при том, что запросы обычно сильно разнородные и сами по себе плохо кешируются.

Я что-то не так делаю? :)

KRoN73 ★★★★★
()
Ответ на: комментарий от ventilator

Uptime: 2368406 Threads: 61 Questions: 951233575 Slow queries: 23307 Opens: 173777 Flush tables: 1 Open tables: 8651 Queries per second avg: 401.634

[--] Data in MyISAM tables: 2G (Tables: 2823)
[--] Data in InnoDB tables: 11G (Tables: 745)

[OK] Query cache efficiency: 63.7% (350M cached / 551M selects)


и вы предлагаете его отключить ? ))

dreamer ★★★★★
()
Ответ на: комментарий от dreamer

А вы измеряете производительность процентом попадания в кеш? Или может все таки временем обработки запроса и нагрузкой на процессоры?

ventilator ★★★
()
Ответ на: комментарий от ventilator

хотя может быть на чистых селектах с производительностью все будет окей так как и сбросов кеша не будет.

ventilator ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.