Pull to refresh

Comments 21

Было бы совсем неплохо указать, какие именно моменты оптимизирует утилита под MySQL кроме рекомендаций по индексам.
Эта утилита не оптимизирует, а дает рекомендации.
По всем параметрам и переменным, плюс еще рекомендации по индексам и оптимизации таблиц.
К слову, рекомендациям не всегда нужно следовать. Бывает, что настройки лучше выставить самостоятельно.
wget mysqltuner.pl

Только его переименовать надо, а то он скачивает index.html.
Очень странно. У меня никаких проблем не возникало:
wget mysqltuner.pl
--2012-11-27 14:52:59--  http://mysqltuner.pl/
Resolving mysqltuner.pl... 198.61.150.28, 2001:4801:7901:0:abc5:ba2c:0:1
Connecting to mysqltuner.pl|198.61.150.28|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl [following]
--2012-11-27 14:53:00--  https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl
Resolving raw.github.com... 207.97.227.243
Connecting to raw.github.com|207.97.227.243|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 41847 (41K) [text/plain]
Saving to: “mysqltuner.pl”

100%[====================================================================>] 41,847      --.-K/s   in 0.1s    

2012-11-27 14:53:00 (406 KB/s) - “mysqltuner.pl” saved [41847/41847]

В результате получаю сохраненный скрипт.
Можно брать из github по указанной в статье ссылке.
korpserver ~ # wget mysqltuner.pl
--2012-11-27 14:57:07--  http://mysqltuner.pl/
Resolving mysqltuner.pl... 198.61.150.28
Connecting to mysqltuner.pl|198.61.150.28|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl [following]
--2012-11-27 14:57:07--  https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl
Resolving raw.github.com... 207.97.227.243
Connecting to raw.github.com|207.97.227.243|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 41847 (41K) [text/plain]
Saving to: 'index.html'

100%[============================================================================================>] 41,847       253KB/s   in 0.2s   

2012-11-27 14:57:08 (253 KB/s) - 'index.html' saved [41847/41847]

в результате получаю скрипт в index.html, и надо переименовывать.

korpserver ~ # wget -V
GNU Wget 1.14 built on linux-gnu.
Похоже не у всех будет срабатывать из-за 302 перенаправления.
Указал прямую ссылку.
Спасибо за уточнение!
А покажите то, что сгенерил pgtune и сделайте free -g.
Очень интересно, насколько он оптимально нагенерил, без указания объема памяти того-же.
Вот, пожалуйста:
#------------------------------------------------------------------------------
# pgtune wizard run on 2012-11-27
# Based on 16203092 KB RAM in the server
#------------------------------------------------------------------------------

default_statistics_target = 100
maintenance_work_mem = 960MB
checkpoint_completion_target = 0.9
effective_cache_size = 11GB
work_mem = 96MB
wal_buffers = 8MB
checkpoint_segments = 16
shared_buffers = 3840MB
max_connections = 80


Это только то, что сгенерировано. Применял к дефолтному конфигу postgresql.conf
И еще:
               total       used       free     shared    buffers     cached
Mem:            15          1         14          0          0          0
-/+ buffers/cache:          1         14
На всяий случай обращу внимание, что при задании shared_buffers pgtune глубоко плевать на настройки ядра.
kernel.shmmax и kernel.shmall необходимо подогнать, иначе есть шанс, что БД не запустится.
Книгу эту знаю. Очень полезная вещь.
Может тогда добавите в статью описание параметров, которые меняет утилита? Вместе с рекомендациями по их наиболее эффективным значениям. Потому как эта утилитка, по крайней мере у меня, попросту уставила максимально возможные.
Чуть позже добавлю обязательно с подробными комментариями.
Ещё рекомендую утилиту для mysql для выявления медленных запросов: mysqlsla. Она умеет анализировать slow-логи (да и обычные логи) и показывать различную статистику. Причём утилита достаточно умная и умеет собирать вместе запросы, которые различаются только параметрами.

Auto-detected logs as slow logs
Report for slow logs: mysql-slow.log
1.31k queries total, 70 unique
Sorted by 't_sum'
Grand Totals: Time 10.95k s, Lock 0 s, Rows sent 6.41M, Rows Examined 258.51M


Count         : 24  (1.83%)
Time          : 381.532477 s total, 15.897187 s avg, 2.452116 s to 59.170035 s max  (3.48%)
  95% of Time : 274.736667 s total, 12.48803 s avg, 2.452116 s to 31.764067 s max
Lock Time (s) : 1.235 ms total, 51 <B5>s avg, 40 <B5>s to 63 <B5>s max  (0.28%)
  95% of Lock : 1.111 ms total, 51 <B5>s avg, 40 <B5>s to 60 <B5>s max
Rows sent     : 0 avg, 0 to 0 max  (0.00%)
Rows examined : 0 avg, 0 to 0 max  (0.00%)
Database      : 
Users         : 
        test@ 127.0.0.1 : 100.00% (24) of query, 91.59% (1198) of all users

Query abstract:
SET timestamp=N; INSERT INTO api_sessions (token, user_id, full_auth) VALUES ('S', 'S', 'S')1;

Query sample:
SET timestamp=1353967395;
INSERT INTO `api_sessions` (`token`, `user_id`, `full_auth`) VALUES ('asdfasdfasf', '1', '');


Буду пользоваться. Обычно slow-логи приходилось читать самостоятельно.
Спасибо!
Исходя из заголовка я уж подумал, что будет рассказ про _автоматическую_ оптимизацию, когда нужные параметры изменяются без участия человека. А тут рассказ про запуск mysqltuner.pl которому сто лет в обед. Единственное что тут нового, это редирект с сайта mysqltuner.pl на github. Pgtune — тоже ничего нового.
Чтобы параметры менялись без участия человека — это было бы круто. Только вот это уже на грани ИИ, мне кажется.
Я просто хотел поделиться опытом и получить замечания, советы или дополнения. И я их получил, за что большое спасибо всем, кто написал полезную информацию и рекомендации. Все будет учтено обязательно.
Sign up to leave a comment.