Доброго дня, столкнулся с производительностью базы данных MySQL. Медленно работает.
Посмотрели в системный монитор - причина явна: недостаточно скорости доступа к диску запись/чтение.
Остальных параметров системы с головой достаточно. На продакшене нужно использовать SSD+ext4 (+скорость, -цена, +надёжность данных), а на компьютерах для разработки использовали HDD+ext4 без журналирования (+скорость, +цена, -надёжность данных). Данные мы постоянно обновляем. Так что явных поломок ещё не было. В обоих случаях данные с наиболее частым обращением к ним перенесём на
"быстрый" диск. Если данных много, а пространство ограниченно, тогда можно переносить только индексы. Здесь
мы переносим всю директорию с данными. Так у нас есть выделенный "быстрый" /iofast диск.
Останавливаем сервис MySQL.
Копируем данные MySQL на "быстрый" диск, -p с сохранением текущих прав доступа к файлам.
Правим конфигурацию MySQL, файл - my.cnf
Меняем путь к данным.
В Ubuntu необходимо поправить правила AppArmor.
Правим правила, что б они выглядели так.
Перегружаем AppArmor
Стартуем MySQL.
Наслаждаемся ...
Если что не так - смотрите в логи :)
Посмотрели в системный монитор - причина явна: недостаточно скорости доступа к диску запись/чтение.
Остальных параметров системы с головой достаточно. На продакшене нужно использовать SSD+ext4 (+скорость, -цена, +надёжность данных), а на компьютерах для разработки использовали HDD+ext4 без журналирования (+скорость, +цена, -надёжность данных). Данные мы постоянно обновляем. Так что явных поломок ещё не было. В обоих случаях данные с наиболее частым обращением к ним перенесём на
"быстрый" диск. Если данных много, а пространство ограниченно, тогда можно переносить только индексы. Здесь
мы переносим всю директорию с данными. Так у нас есть выделенный "быстрый" /iofast диск.
Останавливаем сервис MySQL.
sudo service mysql stop
Копируем данные MySQL на "быстрый" диск, -p с сохранением текущих прав доступа к файлам.
cp -Rp /var/lib/mysql /iofast/mysql
Правим конфигурацию MySQL, файл - my.cnf
nano /etc/mysql/my.cnf
Меняем путь к данным.
datadir=/array2/mysql
В Ubuntu необходимо поправить правила AppArmor.
nano /etc/apparmor.d/usr.sbin.mysqld
Правим правила, что б они выглядели так.
... /iofast/mysql/ r, /iofast/mysql/** rwk, ...
Перегружаем AppArmor
sudo service apparmor reload
Стартуем MySQL.
sudo service mysql start
Наслаждаемся ...
Если что не так - смотрите в логи :)
Комментариев нет:
Отправить комментарий