Тюнинг mysql

M
На сайте с 16.09.2009
Offline
278
#61

Ага. Если особо не задумываться и не утруждать свою головушку деталями.

Zaqwr:
Query cache efficiency: 58.2% (28M cached / 48M selects)
64м вполне себе =)

"Смотрю в книгу - вижу фигу". Вы действительно думаете, что 48M - это 48 мегабайт в оперативной памяти? "Человеческих мегобайт"? :D "Администрирование Linux", ололо...

Вы нам, конечно, легко объясните тогда как может быть

[OK] Query cache efficiency: 63.5% (952M cached / 1B selects)

query_cache_size=128M

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
M
На сайте с 01.12.2009
Offline
235
#62
Zaqwr:
опять тюнинг "чего-то" выросло в пипськомер myhand'а с "кем-то" , тут ТС давно ничего не писал =)

64м вполне себе =)

Zaqwr выскочил из-за угла, неожиданно как ... :) марш читать тему от а до я. + link force

Администратор Linux,Freebsd. построения крупных проектов.
N
На сайте с 06.05.2007
Offline
419
#63
myhand:
Как вас упросить не вырывать куски из контекста?

так это уже к слову.

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

Кнопка вызова админа ()
M
На сайте с 16.09.2009
Offline
278
#64
netwind:
вы не считаете допустимым никакое обобщение практики.

Завязывайте фантазировать и "обобщать". Все было сказано предельно конкретно и ясно, повторяться мне уже лень.

N
На сайте с 06.05.2007
Offline
419
#65

Ну смотрите что получается :

"Сетап с душой" предполагает некоторую оптимальность параметров.

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

Переодичность колебания посещаемости сайтов обычно одни сутки. развлекательных - неделя ( суббота и воскресенье).

Другие параметры для чистоты замеров изменять нельзя.

Допустим, для удовлетворительного результата нужно сделать 3 итерации подбора размера методом половинного деления.

Итого, по вашей методике заказчик будет ждать 3 недели только для настройки одного параметра? По крайней мере, в случаях подобных как у ТС, я за "магию".

M
На сайте с 16.09.2009
Offline
278
#66
netwind:
"Сетап с душой" предполагает некоторую оптимальность параметров.

Ну, это просто маркетинг.

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

У проекта либо есть системный администратор - либо нет. В последнем случае можно пытаться подобрать параметры методом научного тыка по хавту. Как правило, в итоге не сильно лучший результат в сравнении со стратегией "работает - не трогай".

netwind:
Переодичность колебания посещаемости сайтов обычно одни сутки. развлекательных - неделя ( суббота и воскресенье).
Другие параметры для чистоты замеров изменять нельзя.
Допустим, для удовлетворительного результата нужно сделать 3 итерации подбора размера методом половинного деления.

Вы о тестировании слышали? Есть примеры нагрузки за определенный период. Берется access.log и эта нагрузка моделируется. Да и интересно поведение обычно именно в моменты пиковой нагрузки. Вот тогда имеет смысл и показать все понимающему человеку.

N
На сайте с 06.05.2007
Offline
419
#67
myhand:
Вы о тестировании слышали? Есть примеры нагрузки за определенный период. Берется access.log и эта нагрузка моделируется.

слышали что оно не в состоянии достаточно точно моделировать нагрузку.

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

M
На сайте с 16.09.2009
Offline
278
#68
netwind:
ничего точнее кроме как наблюдения за живым сайтом не придумать.

Я ж и не запрещал наблюдать за живым сайтом. Ровно наоборот. Это вы уцепились опять за одну мысль в тексте - и давай "опровергать"...

Нет никаких проблем предложить сразу какие-то "оптимальные" значения параметров. Но нельзя этого сделать по шаблону, как хотите вы. Просто сесть и посмотреть на вывод extended-status - после этого уже что-то крутить. Можно более кропотливо достичь и лучшего, но делать наобум - совсем никуда не годится.

У ТС кеш используется достаточно активно (58.2% попаданий) - вы же его запросто захотели урезать в 4 раза. Или вы тоже 28M cached с мегабайтами перепутали? ;)

N
На сайте с 06.05.2007
Offline
419
#69
myhand:
Я ж и не запрещал наблюдать за живым сайтом. Ровно наоборот. Это вы уцепились опять за одну мысль в тексте - и давай "опровергать"...

но ведь наблюдение за сайтом выливается в огромные трудозатраты.

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

куда не плюнь - все трудно. Средний сайтовладелец на такое не пойдет.

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

Если некоторые части плана не работают, то не работает весь план.

myhand:
У ТС кеш используется достаточно активно (58.2% попаданий) - вы же его запросто захотели урезать в 4 раза

почему бы и нет ? Меньший кеш быстрее чистится и обеспечивает большую масштабируемость по ядрам процессора. Сервер то у ТС выделенный под mysql.

Vin_cent
На сайте с 22.01.2010
Offline
171
#70

Спасибо за бурное обсуждение.

По моим проектам, оказалось, что mysql не всегда верно выбирает индекс. Например, есть таблица с индексами field, dt.

Запрос "SELECT id FROM table WHERE field='1' ORDER BY dt DESC LIMIT 10" выполнлся достаточно долго (1.5-2.5сек), т.к. оказывается mysql не всегда использует НУЖНЫЙ индекс из возможных. Например в этом запросе он использовал индекс dt. Но стоит в этом типе запросов указать USE INDEX(field), как запрос начинает выполнятся меньше секкунды: SELECT id FROM table USE INDEX(field) WHERE field='1' ORDER BY dt DESC LIMIT 10;

Но, это о птичках... Возвращаясь к конфигу, в итоге после советов и google он приобрел следующий вид:


[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
tmpdir=/tmp

key_buffer=512M
table_cache=1024

thread_cache_size = 32
thread_concurrency = 16
max_connections = 100

query_cache_type=1
query_cache_limit=128M
query_cache_size=1024M

max_allowed_packet = 128M
sort_buffer_size = 4M
read_buffer_size = 4M
join_buffer_size = 4M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 128M

max_heap_table_size=128M
tmp_table_size=128M

concurrent_insert=2
low_priority_updates=1

slow-query-log
long_query_time=2
slow_query_log_file=/tmp/slow-queries-log

general_log_file = /tmp/general-mysql-log

ignore_builtin_innodb
default_storage_engine=MyISAM

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

Спустя 5 часов ситуация следующая:


-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.5.19-log
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated -InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 1G (Tables: 20)
[--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17)
[--] Data in MEMORY tables: 7M (Tables: 2)
[!!] Total fragmented tables: 3

-------- Security Recommendations -------------------------------------------
[OK] All database users have passwords assigned

-------- Performance Metrics -------------------------------------------------
[--] Up for: 5h 57m 57s (2M q [114.261 qps], 749 conn, TX: 5B, RX: 340M)
[--] Reads / Writes: 94% / 6%
[--] Total buffers: 1.6G global + 16.2M per thread (100 max threads)
[OK] Maximum possible memory usage: 3.2G (83% of installed RAM)
[OK] Slow queries: 0% (0/2M)
[OK] Highest usage of available connections: 38% (38/100)
[OK] Key buffer size / total MyISAM indexes: 512.0M/438.7M
[OK] Key buffer hit rate: 99.4% (41M cached / 230K reads)
[OK] Query cache efficiency: 61.4% (1M cached / 2M selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (652 temp sorts / 443K sorts)
[OK] Temporary tables created on disk: 0% (8 on disk / 59K total)
[OK] Thread cache hit rate: 94% (38 created / 749 connections)
[OK] Table cache hit rate: 92% (91 open / 98 opened)
[OK] Open file limit used: 5% (116/2K)
[OK] Table locks acquired immediately: 99% (1M immediate / 1M locks)

-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
MySQL started within last 24 hours - recommendations may be inaccurate

Надо подождать еще сутки-двое, если картина в целом будет аналогичной, то считаю проблемы на данном этапе решены.

Или нет?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий