Andron_buton: Так поможет, что вместо диска будет использоваться память. А чтобы найти оптимальные для себя настройки надо сначала увеличить настройки, сутки пронаблюдать и увидеть помогло или нет, и так несколько итераций, конечно если объем оперативной памяти позволяет.
Привели конкретный вывод mysqltuner.pl Посмотри внимательнее на цифры.
3. Проверить запросы с JOIN, там есть поля без индексов. Проставить индексы.
4. slow-query-log
long_query_time=2
slow_query_log_file=/tmp/slow-queries-log
И мониторить этот лог, исправляя кривопопые (например без индексов) запросы.
5. MySQL 5.5 MyISAM медленно работает. У меня, после перехода на 5.6, mysql (myisam) стал заметно быстрее работать. Почитайте: http://habrahabr.ru/post/242337/
Если munin сложно, можно на раз-два-три поставить Monitorix (http://www.monitorix.org/). Сутки пособирать статистику. И уж потом начинать конфиги править.
pupseg: почему ? -p Load in sysctl settings from the file specified or /etc/sysctl.conf if none given. Specifying - as filename means reading data from standard input.
за исключением естественно тех параметров, которые read only
Ну и как ты переводишь на русский этот текст?
И конечно, очень интересно было узнать про uptime твоих серверов (скажи спасибо датацентру), но если ты поменяешь какой-нибудь параметр через sysctl, то вернуть его в дефолтное значение можно только если ты знаешь это дефолтное значение. Команда sysctl -p, его назад не вернёт. Только ребут.
Оптимизайка: Так и не должно было текущие значения поменять - просто файл sysctl.conf восстановиться должен, как и просили в общем-то. См. /etc/sysctl.conf.rpm-new. Переименуйте в sysctl.conf и перезагрузитесь.
Да, файл по-умолчанию появился. Я просто не до конца наверное понимаю как это всё работает.
Допустим я прописал: net.ipv4.tcp_window_scaling=1 Затем сделал: "sysctl -e -p". Всё, значение установилось. Затем я удаляю эту строчку из конфига, делаю снова "sysctl -e -p".... и, это значение остаётся включенным всёравно. А вот если я перезагружу сервер, то только тогда всё, что не в конфиге придёт к дефолту, да?
дальше что, там черным по белому написано а ниже какие переменные и в какую сторону.
Если написано >16Mb, это не значит что нужно писать 32mb. Я предложил написать 1024Mb, исходя из базы данных автора топика.
Ещё читай: "If an in-memory temporary table exceeds the limit, MySQL automatically converts it to an on-disk MyISAM table."
А теперь думай. Какая разница 16мб или 32мб, когда там только база под два гигабайта и прочее. Достал.
Так поможет, что вместо диска будет использоваться память. А чтобы найти оптимальные для себя настройки надо сначала увеличить настройки, сутки пронаблюдать и увидеть помогло или нет, и так несколько итераций, конечно если объем оперативной памяти позволяет.
Привели конкретный вывод mysqltuner.pl Посмотри внимательнее на цифры.
извиняюсь, запутался. В fstab и my.cnf что добавить?
Инструкция: http://www.fromdual.com/mysql-tmpdir-on-ram-disk
---------- Добавлено 27.11.2014 в 13:58 ----------
Увеличивайте все в 2 раза
Глупость полная такие советы писать. Было tmp_table_size 16мб, станет 32мб. Ну и как это поможет? И так далее...
в fstab уже есть :
tmpfs /dev/shm tmpfs defaults 0 0
мне еще добавить надо #tmpfs /mnt/ramdisk tmpfs rw,noatime,mode=1777,size=1024M 0 0
или отредактировать текущее значение?
Я в конфиге mysql не увидел у вас путь к tmpdir (не диск должен быть, а память). Его нужно прописать.
Тут Большое пространство для тюнинга.
Со старта, сделайте:
1. 'tmpdir=/mnt/ramdisk':
> mkdir -p /mnt/ramdisk
> chown mysql:mysql /mnt/ramdisk
> mount -t tmpfs -o size=1024M tmpfs /mnt/ramdisk
#/etc/fstab
#tmpfs /mnt/ramdisk tmpfs rw,noatime,mode=1777,size=1024M 0 0
2. max_heap_table_size=1024M
tmp_table_size=1024M
3. Проверить запросы с JOIN, там есть поля без индексов. Проставить индексы.
4. slow-query-log
long_query_time=2
slow_query_log_file=/tmp/slow-queries-log
И мониторить этот лог, исправляя кривопопые (например без индексов) запросы.
5. MySQL 5.5 MyISAM медленно работает. У меня, после перехода на 5.6, mysql (myisam) стал заметно быстрее работать. Почитайте: http://habrahabr.ru/post/242337/
Если munin сложно, можно на раз-два-три поставить Monitorix (http://www.monitorix.org/). Сутки пособирать статистику. И уж потом начинать конфиги править.
>>yum -y reinstall initscripts
>>а эта вернет в дефолтный от инсталляхи?
Ещё раз - НЕТ.
почему ?
-p Load in sysctl settings from the file specified or /etc/sysctl.conf if none given. Specifying - as filename means reading data from standard input.
за исключением естественно тех параметров, которые read only
Ну и как ты переводишь на русский этот текст?
И конечно, очень интересно было узнать про uptime твоих серверов (скажи спасибо датацентру), но если ты поменяешь какой-нибудь параметр через sysctl, то вернуть его в дефолтное значение можно только если ты знаешь это дефолтное значение. Команда sysctl -p, его назад не вернёт. Только ребут.
mv -f /etc/sysctl.conf /etc/sysctl.conf.old
yum -y reinstall initscripts
sysctl -p
и ничего ребутить не надо.
Ответ не верный.
Так и не должно было текущие значения поменять - просто файл sysctl.conf восстановиться должен, как и просили в общем-то. См. /etc/sysctl.conf.rpm-new. Переименуйте в sysctl.conf и перезагрузитесь.
Да, файл по-умолчанию появился. Я просто не до конца наверное понимаю как это всё работает.
Допустим я прописал: net.ipv4.tcp_window_scaling=1 Затем сделал: "sysctl -e -p". Всё, значение установилось. Затем я удаляю эту строчку из конфига, делаю снова "sysctl -e -p".... и, это значение остаётся включенным всёравно. А вот если я перезагружу сервер, то только тогда всё, что не в конфиге придёт к дефолту, да?