MySQL performance tips for Zabbix

By | 10/07/2014

ご存じの通り、ウチではZabbixOpenBlockS AX3に入れて利用しています。
が…少々重く感じていたので、対策を行ってみました。

前回の投稿で、PHP-APCを導入した事で軽快な動作にはなっています。
そのついでではありますが、SQL自体にも今の内に対策を施しておく事にします。

なお、MySQLサーバのバージョンは5.1.73-1で行っています。

①MySQLの設定変更
$ sudo vi /etc/mysql/my.cnf
### 以下の内容を[mysqld]セクションに追加
ignore-builtin-innodb
plugin-load=innodb=ha_innodb_plugin.so;innodb_trx=ha_innodb_plugin.so;innodb_locks=ha_innodb_plugin.so;innodb_lock_waits=ha_innodb_plugin.so;innodb_cmp=ha_innodb_plugin.so;innodb_cmp_reset=ha_innodb_plugin.so;innodb_cmpmem=ha_innodb_plugin.so;innodb_cmpmem_reset=ha_innodb_plugin.so
default-storage-engine=innodb
innodb_file_per_table=1
innodb_file_format=Barracuda
innodb_buffer_pool_size=128M

②Zabbixサーバを停止
$ sudo /etc/init.d/zabbix-server stop

③ダンプを作成
$ sudo mysqldump -uroot -p[password] zabbix > ./mysqldump.db

④zabbixデータベースを削除
$ sudo mysql -uroot -p[password]
mysql>drop database zabbix;
mysql>quit

⑤MySQLサーバを停止
/etc/init.d/mysql stop

⑥以下のファイルを削除
$ sudo rm -fr /var/lib/mysql/ib_logfile0
$ sudo rm -fr /var/lib/mysql/ib_logfile1
$ sudo rm -fr /var/lib/mysql/ib_ibdata1

⑦MySQLサーバを起動
/etc/init.d/mysql start

⑧zabbixデータベースを作成
$ sudo mysql -uroot -p[password]
mysql>create database zabbix;
mysql>grant all privileges on zabbix.* to zabbix@localhost identified by '';
mysql>flush privileges;
mysql>quit

⑨zabbixデータベースを復元
$ sudo mysql -uroot -p[password] zabbix < ./mysqldump.db

⑩Zabbixサーバを起動
$ sudo /etc/init.d/zabbix-server start

これでパフォーマンスが改善されると思います。
ちなみにzabbixデータベースのバックアップサイズは103M位でした。