Как оптимизировать настройку MySQL?
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- рядовой
- Сообщения: 16
- Зарегистрирован: 2008-01-04 22:41:31
Как оптимизировать настройку MySQL?
Народ, кто посоветует как и что поменять в настройках Мускла для максимальной производительности? Мускл 5-й, живет под FreeBSD 6.3, машинка выделенная под базу. Машинка двухпроцессорная, мускл скомпилен в thread-варианте. Innodb баз нет и их поддержка не компилилась. Все таблицы в MyISAM. Мозгов на сервере 4 гига.
Буду зело признателен за совет по параметрам для этого случая! Заранее спасибо!
Буду зело признателен за совет по параметрам для этого случая! Заранее спасибо!
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- Alex Keda
- стреляли...
- Сообщения: 35426
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
а чё - тупит?
если нет - не трожь
=======
ты скажи что сделал - что не устраивает.
а так - на гуще кофейной гадать будем.
в общем случае - отай ему почти всю раму.
если нет - не трожь

=======
ты скажи что сделал - что не устраивает.
а так - на гуще кофейной гадать будем.
в общем случае - отай ему почти всю раму.
Убей их всех! Бог потом рассортирует...
- serge
- майор
- Сообщения: 2133
- Зарегистрирован: 2006-07-30 15:34:14
- Откуда: Саратов
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
А вот пример когда тупит и прилично:
И так висит все время, часто загрузка проца поднимаеться выше.
Кол-во запросов в секунду ~10
В phpmyadmin ругань на
Баз немного, около 20 штук. Самая большая это dspam. Около 5 млн записей. Запросы к ней иногда выполняються дольше чем положено (Slow_queries).
Есть еще база, запросы к которой используют много раз join. Практически всегда при этом создаеться временная таблица на hdd.
Пытался заставить создавать таблицы в памяти. Ставил
загрузка проца стала 50-60% а в phpmyadmin все таже ругань.
поставил
загрузка проца как показано выше при практически такой же ругани в phpmyadmin
весь конфиг сервера
Тип таблиц - MyISAM.
В конфиге пробовал играть значениями практически всех параметров, но либо принципиальных изменений небыло, либо я их не заметил.
Я понимаю, что скорее всего проблема в том, что запросы к MySQL неоптимальны. Но запросы изменить я не могу. Что еще можно попробовать чтобы увеличить производительность или снизить использование ресурсов процессора?
Код: Выделить всё
PID USERNAME THR PRI NICE SIZE RES STATE TIME WCPU COMMAND
51250 mysql 14 20 0 331M 117M kserel 239:42 26.03% mysqld
Кол-во запросов в секунду ~10
В phpmyadmin ругань на
Код: Выделить всё
Slow_queries 3,348
Handler_read_rnd 33 M
Handler_read_rnd_next 262 M
Qcache_lowmem_prunes 4,802
Created_tmp_disk_tables 113 k
Select_full_join 1,527
Sort_merge_passes 4,438
Opened_tables 810
Table_locks_waited 115
Есть еще база, запросы к которой используют много раз join. Практически всегда при этом создаеться временная таблица на hdd.
Пытался заставить создавать таблицы в памяти. Ставил
Код: Выделить всё
tmp_table_size = 512M
поставил
Код: Выделить всё
tmp_table_size = 1M
весь конфиг сервера
Код: Выделить всё
skip-locking
key_buffer = 256M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 10M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
tmp_table_size = 1M
# Try number of CPU's*2 for thread_concurrency
#thread_concurrency = 2
#log-slow-queries
Код: Выделить всё
pkg_info | grep mysql
mysql-client-5.0.51a Multithreaded SQL database (client)
mysql-server-5.0.51a Multithreaded SQL database (server)
Код: Выделить всё
vi /etc/make.conf
# MySQL
.if ${.CURDIR} == ${PORTSDIR}/databases/mysql50-server
BUILD_OPTIMIZED=yes
BUILD_STATIC=yes
WITH_CHARSET=cp1251
WITH_COLLATION=cp1251_bin
.endif
.if ${.CURDIR} == ${PORTSDIR}/databases/mysql50-client
BUILD_OPTIMIZED=yes
BUILD_STATIC=yes
WITH_CHARSET=cp1251
WITH_COLLATION=cp1251_bin
.endif
В конфиге пробовал играть значениями практически всех параметров, но либо принципиальных изменений небыло, либо я их не заметил.
Я понимаю, что скорее всего проблема в том, что запросы к MySQL неоптимальны. Но запросы изменить я не могу. Что еще можно попробовать чтобы увеличить производительность или снизить использование ресурсов процессора?
- LMik
- капитан
- Сообщения: 1852
- Зарегистрирован: 2007-07-17 9:14:39
- Откуда: МО
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
Хы, так загрузка проца - показатель что все работы в памяти ведутся и мускулу это нравится (с винта гораздо медленнее читать/писать), и он может развернуться нормально и быстро отдавать ответы. Временную таблицу верни в память.
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!
Виpус детям не игpушка, не товаpищ и не дpуг!
- LMik
- капитан
- Сообщения: 1852
- Зарегистрирован: 2007-07-17 9:14:39
- Откуда: МО
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
Последний раз редактировалось LMik 2008-03-09 10:54:15, всего редактировалось 1 раз.
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!
Виpус детям не игpушка, не товаpищ и не дpуг!
- LMik
- капитан
- Сообщения: 1852
- Зарегистрирован: 2007-07-17 9:14:39
- Откуда: МО
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
Код: Выделить всё
cat /boot/loader.conf
autoboot_delay="1"
kern.dfldsiz="2764M" # Set the initial data size limit
kern.maxdsiz="2764M" # Set the max data size
kern.maxssiz="128M" # Set the max stack size
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!
Виpус детям не игpушка, не товаpищ и не дpуг!
- LMik
- капитан
- Сообщения: 1852
- Зарегистрирован: 2007-07-17 9:14:39
- Откуда: МО
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
Код: Выделить всё
skip-locking
key_buffer = 256M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 10M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
tmp_table_size = 1M
# Try number of CPU's*2 for thread_concurrency
#thread_concurrency = 2
#log-slow-queries
При запросах смотри
Код: Выделить всё
systat -v 1
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!
Виpус детям не игpушка, не товаpищ и не дpуг!
- serge
- майор
- Сообщения: 2133
- Зарегистрирован: 2006-07-30 15:34:14
- Откуда: Саратов
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
Памяти всего 1 гигLMik писал(а):Это чтобы мускул смог скушать хотябы 2.5 гига рамы.Код: Выделить всё
cat /boot/loader.conf autoboot_delay="1" kern.dfldsiz="2764M" # Set the initial data size limit kern.maxdsiz="2764M" # Set the max data size kern.maxssiz="128M" # Set the max stack size

- serge
- майор
- Сообщения: 2133
- Зарегистрирован: 2006-07-30 15:34:14
- Откуда: Саратов
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
Я не против, но нагрузка на БД мизерная (~10 запросов в сек). Наблюдал как работает mysql на нагрузке в несколько раз выше и проц при этом загружал на 2-5%. Вот это и вызывает недоумение.LMik писал(а):Хы, так загрузка проца - показатель что все работы в памяти ведутся и мускулу это нравится (с винта гораздо медленнее читать/писать), и он может развернуться нормально и быстро отдавать ответы. Временную таблицу верни в память.
Тут дело в неоптимальных запросах, имхо. Бороться с источником проблемы возможности нет, вот и пытаюсь как то это сгладить на стороне сервера.
- serge
- майор
- Сообщения: 2133
- Зарегистрирован: 2006-07-30 15:34:14
- Откуда: Саратов
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
Уже думал в эту строну. Теперь точно попробую.LMik писал(а):это что значит?в thread-вариантеКод: Выделить всё
PTHREAD_LIBS=-lthr >> /etc/make.conf
З.Ы. Как это отразиться на производительности с учетом 1 ядра в процессоре? Почему-то мне показалось что это все хорошо для SMP серверов.
- LMik
- капитан
- Сообщения: 1852
- Зарегистрирован: 2007-07-17 9:14:39
- Откуда: МО
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
Вобще поставь 7 релиз уже. Там все шустрее работает. Про буферы уже сказал - больше делай, он тормозит именно поэтому.serge писал(а):Уже думал в эту строну. Теперь точно попробую.LMik писал(а):это что значит?в thread-вариантеКод: Выделить всё
PTHREAD_LIBS=-lthr >> /etc/make.conf
З.Ы. Как это отразиться на производительности с учетом 1 ядра в процессоре? Почему-то мне показалось что это все хорошо для SMP серверов.
libthr pthr и прочие либы занимаются распределением нитей процессов по 1+ ядрам.
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!
Виpус детям не игpушка, не товаpищ и не дpуг!
- serge
- майор
- Сообщения: 2133
- Зарегистрирован: 2006-07-30 15:34:14
- Откуда: Саратов
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
От 0 до 5%. Т.е. практически незагружен. Там еще к тому же gmirror стоит.LMik писал(а):При запросах смотри Код: Выделить всёsystat -v 1 , на сколько там винт загружен?
-
- проходил мимо
Re: Как оптимизировать настройку MySQL?
а что использует мусю сайт или форум или какая-то программа??
если боты будут что-то вносить то она и будет грузиться или если будет очень много выносить данных...
буфер я так понимаю 64 метра...
если боты будут что-то вносить то она и будет грузиться или если будет очень много выносить данных...
буфер я так понимаю 64 метра...

- serge
- майор
- Сообщения: 2133
- Зарегистрирован: 2006-07-30 15:34:14
- Откуда: Саратов
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
Сайт. Точнее даже mysql обслуживает маленький хостинг.ProFTP писал(а):а что использует мусю сайт или форум или какая-то программа??
если боты будут что-то вносить то она и будет грузиться или если будет очень много выносить данных...
З.Ы. Чуть позже отпишусь о результатах прошедшей ночи оптимизации. Продвижки есть

- LMik
- капитан
- Сообщения: 1852
- Зарегистрирован: 2007-07-17 9:14:39
- Откуда: МО
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
serge писал(а):Сайт. Точнее даже mysql обслуживает маленький хостинг.ProFTP писал(а):а что использует мусю сайт или форум или какая-то программа??
если боты будут что-то вносить то она и будет грузиться или если будет очень много выносить данных...
З.Ы. Чуть позже отпишусь о результатах прошедшей ночи оптимизации. Продвижки есть


BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!
Виpус детям не игpушка, не товаpищ и не дpуг!
- voider
- лейтенант
- Сообщения: 830
- Зарегистрирован: 2008-02-21 20:35:03
- Откуда: msk
Re: Как оптимизировать настройку MySQL?
Код: Выделить всё
[mysqld]
skip-locking
skip-innodb
query_cache_limit=1M
query_cache_size=32M
query_cache_type=1
max_connections=500
interactive_timeout=100
wait_timeout=100
connect_timeout=10
thread_cache_size=128
key_buffer=16M
join_buffer=1M
max_allowed_packet=16M
table_cache=1024
record_buffer=1M
sort_buffer_size=2M
read_buffer_size=2M
max_connect_errors=10
# Try number of CPU's*2 for thread_concurrency
thread_concurrency=2
myisam_sort_buffer_size=64M
log-bin
server-id=1
[safe_mysqld]
err-log=/var/log/mysqld.log
open_files_limit=8192
[mysqldump]
quick
max_allowed_packet=16M
[mysql]
no-auto-rehash
#safe-updates
[isamchk]
key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M
[myisamchk]
key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M
[mysqlhotcopy]
interactive-timeout
- voider
- лейтенант
- Сообщения: 830
- Зарегистрирован: 2008-02-21 20:35:03
- Откуда: msk
Re: Как оптимизировать настройку MySQL?
Код: Выделить всё
# Try number of CPU's*2 for thread_concurrency =2*2
thread_concurrency = 4
-
- лейтенант
- Сообщения: 645
- Зарегистрирован: 2008-03-09 11:32:12
- Откуда: Москва
- serge
- майор
- Сообщения: 2133
- Зарегистрирован: 2006-07-30 15:34:14
- Откуда: Саратов
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
Ага, читал. Много инета потратил на оптимизацию
Но, имхо, четкой инструкции нету получаеться, или не выкладывает ее никто. Пришлось самому анализировать собранный материал и методом проб и ошибок менять параметры сервера.
З.Ы. Чето никак сам не отпишусь о проделанной работе

З.Ы. Чето никак сам не отпишусь о проделанной работе

- Morty
- ст. лейтенант
- Сообщения: 1370
- Зарегистрирован: 2007-07-17 23:25:12
Re: Как оптимизировать настройку MySQL?
а в чём разница
и так
я по последней собирал
Код: Выделить всё
PTHREAD_LIBS=-lthr >> /etc/make.conf
Код: Выделить всё
WITH_LINUXTHREADS=yes >> /etc/make.conf
- LMik
- капитан
- Сообщения: 1852
- Зарегистрирован: 2007-07-17 9:14:39
- Откуда: МО
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
Это разные либы поточности.Morty писал(а):а в чём разницаи такКод: Выделить всё
PTHREAD_LIBS=-lthr >> /etc/make.conf
я по последней собиралКод: Выделить всё
WITH_LINUXTHREADS=yes >> /etc/make.conf
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!
Виpус детям не игpушка, не товаpищ и не дpуг!
- dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
И какая из них точнее?LMik писал(а):Это разные либы поточности.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
- LMik
- капитан
- Сообщения: 1852
- Зарегистрирован: 2007-07-17 9:14:39
- Откуда: МО
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
от слова поток.dikens3 писал(а):И какая из них точнее?LMik писал(а):Это разные либы поточности.
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!
Виpус детям не игpушка, не товаpищ и не дpуг!
- Alex Keda
- стреляли...
- Сообщения: 35426
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
dikens3 писал(а):И какая из них точнее?LMik писал(а):Это разные либы поточности.


















Убей их всех! Бог потом рассортирует...
- Alex Keda
- стреляли...
- Сообщения: 35426
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Как оптимизировать настройку MySQL?
AC/DC?LMik писал(а):от слова поток.dikens3 писал(а):И какая из них точнее?LMik писал(а):Это разные либы поточности.
Вольтаж?

Убей их всех! Бог потом рассортирует...