LINUX.ORG.RU
ФорумAdmin

MySQL, память


0

2

Периодически возникает на сервере данная ситуация:
http://imageshack.us/photo/my-images/526/mysqlhtop.png/

График munin
http://imageshack.us/photo/my-images/266/memoryweek.png/

Откуда растут ноги непонятно. Взываю к коллективному разуму =)

Конфиг MySQL

[client]
default-character-set=utf8
port		= 3306
socket		= /var/lib/mysql/mysql.sock


[mysqld]
max_connections = 170
log-error = /var/log/mysqld.log
port		= 3306
socket		= /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 1024M
max_allowed_packet = 150M
table_cache = 16384
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 1M
net_buffer_length = 65K
thread_stack = 128K

wait_timeout = 35

server-id	= 1

default-character-set = utf8



skip-federated


local-infile=0
skip-name-resolve
set-variable = max_connections=500
key_buffer_size=1024M
read_buffer_size=1M
read_rnd_buffer_size=1M
join_buffer_size=6M
sort_buffer_size=1M
low_priority_updates
query_cache_size=1024M
query_cache_limit=32M
max_write_lock_count=1
max_allowed_packet = 64M
thread_cache = 128
net_buffer_length=65k
myisam-recover=FORCE
wait_timeout=60
interactive_timeout=60
connect_timeout=60
query_cache_wlock_invalidate
max_tmp_tables=64
bulk_insert_buffer_size=32M
tmp_table_size=256M
max_heap_table_size=256M
preload_buffer_size=1M
myisam_sort_buffer_size=64M

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

[mysql]
no-auto-rehash
default-character-set = utf8

[isamchk]
key_buffer = 8M
sort_buffer_size = 8M

[myisamchk]
key_buffer = 8M
sort_buffer_size = 8M

[mysqlhotcopy]
interactive-timeout



CentOS 6.2


и дай. загугли про такую вещь как mysqltunner
перловый скрипт, поможет тебе более мение нормально настроить мускуль, если сам не можешь

kam ★★ ()

а сколько активных подключений в пике?

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

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

kam ★★ ()

Убрал дублирующийся параметр max_connections с неприличным значением, буду наблюдать.

kmua ()

Откуда растут ноги непонятно

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

httpd ()

Всегда интересовало почему нельзя мониторить только занятую память ну и своп?

wolfovich ()
mysql> show processlist;
mysql> show full processlist;

покажут список запросов в данный момент.

mtop (mytop, innotop) - то же самое, немного удобнее.

phpmyadmin - подсветит некоторые параметры, подскажет что оптимизировать.

fjoe ()
max_tmp_tables=64

каждая по

tmp_table_size=256M
Итого: не больше 16GB памяти будет занято временными таблицами в самом худшем случае - когда их будет создано 64 штуки по 256М каждая.
...
max_allowed_packet = 150M
...
max_allowed_packet = 64M
...
по-моему, и то и другое - многовато.
query_cache_size=1024M
тоже можно уменьшить.

Почти все параметры можно менять на живом сервере без его рестарта, например так:

mysql> set global max_tmp_tables=16;

fjoe ()

Вы какой-то сферический тюнинг хотите. Не бывает тюнинга баз данных без запросов и DDL.

PS: query_cache кагбе лучше выключить.

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