SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 22.01.2012 00:13:53

cx2
Участник
Зарегистрирован: 21.01.2012
Сообщений: 4

Оптимизация процесса оптимизации OPTIMIZE TABLE

База данных форума SMF
В настройках форума стоят Автоматические оптимизации БД каждую неделю.
Поэтому каждый понедельник эта оптимизация вешает весь MySQL сервер на пол часа.

Раньше БД сервер был Dual-Core E2160 1.8 ГГц, 2Гб оперативки и Виндовс 2008.
Процесс оптимизации проходил как-то быстро и незаметно, даже в ПМА.

Сейчас Pentium4 1.70GHz, 780Мб оперативки и freeBSD 8.1.
И как только начинается эта оптимизация, как я понимаю, соединения с БД зависают чтоли ...
За пару минут набирается лимит соединений и ВЕСЬ Сервер становится не доступен для новых соединений.
Так же наблюдается сильный всплеск рабочих процессов в апаче (до 180-200) примерно до уровня разрешенных соединений MySQL (200).
Процессы потребляют кучу памяти и как следствие сильные тормоза всего сервера.
Вот это главная проблема.
Обычно рабочих процессов 8-10. Апач стоит бэкэндом после nginx.

Что тут можно настоить?

Вот мой конфиг:

Код:

[client]
port = 3306
socket= /tmp/mysql.sock


[mysqld]
port = 3306
socket = /tmp/mysql.sock
# Small-Medium
#skip-external-locking
key_buffer_size = 32M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 512K
read_buffer_size = 128K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 10M
thread_cache_size = 20
query_cache_size = 12M
#thread_concurrency = 8
#log-bin = mysql-bin
#binlog_format = mixed
server-id = 1

skip-character-set-client-handshake
character-set-server=cp1251
max_connections = 200
wait_timeout = 30
thread_cache_size = 16


[mysqldump]
quick
max_allowed_packet = 16M


[mysql]
no-auto-rehash


[myisamchk]
key_buffer_size = 32M
sort_buffer_size = 32M
read_buffer = 2M
write_buffer = 2M


[mysqlhotcopy]
interactive-timeout

Неактивен

 

#2 22.01.2012 19:53:39

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Оптимизация процесса оптимизации OPTIMIZE TABLE

Ых, поменяли хорошую ОС на FreeBSD sad

key_buffer_size побольше поставьте. Если innodb — наоборот innodb_buffer_pool_size.

Неактивен

 

#3 22.01.2012 22:19:44

cx2
Участник
Зарегистрирован: 21.01.2012
Сообщений: 4

Re: Оптимизация процесса оптимизации OPTIMIZE TABLE

key_buffer_size пробовал, всё одно.
таблицы myisam.

А есть ли смысл оптимизировать таблицы, данные в которых не фрагментированы?

Неактивен

 

#4 23.01.2012 20:51:04

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Оптимизация процесса оптимизации OPTIMIZE TABLE

Ну тогда смотрите в журнал медленных запросов, и пробуйте оптимизировать.

Неактивен

 

#5 23.01.2012 20:58:08

cx2
Участник
Зарегистрирован: 21.01.2012
Сообщений: 4

Re: Оптимизация процесса оптимизации OPTIMIZE TABLE

Так и не понял. Нужна ли оптимизация таблицам, в которых данные не фрагментированы?
Если я не буду оптимизировать такие таблицы, то и нагрузка существенно сократится.

Неактивен

 

#6 23.01.2012 21:05:25

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Оптимизация процесса оптимизации OPTIMIZE TABLE

Нет, если Вы не меняете в них данные smile

Неактивен

 

#7 23.01.2012 23:02:59

cx2
Участник
Зарегистрирован: 21.01.2012
Сообщений: 4

Re: Оптимизация процесса оптимизации OPTIMIZE TABLE

добавил в конфиг tmp_table_size = 32M
и по-моему камень с плеч свалился.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson