二ヶ月前、Zabbixサーバがやたら重くなったお話なのですが、ロアベ、Diski/o、CPU、→荒ぶる、スクリーンでのグラフ表示がめちゃめちゃ遅い。。スペック悪いし、どうしようもないなと感じていました。さすがにこのままではアカンと思い、原因を調べてみました!
■Zabbixサーバ情報
- CPUコア数:4
- メモリー:8GB
Disk i/oが高い… 30くらい出てますね。CPUも荒ぶってる。
■なにが原因なのか確認
1 |
$ htop |
MySQLがやたら張り付いていたので、DBのチューニングしかなさそう
・当時のmy.cnf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 character-set-server=utf8 long_query_time=1 log-slow-queries=/var/log/slow.log log-queries-not-using-indexes [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid |
■対応
DBのキャッシュサイズが小さいとディスクIOに依存するので、結果速度が低下します。そのため以下をmy.cnfに追加しました。
1 2 |
[mysqld] innodb_buffer_pool_size=2048M |
ちなみにこの設定が入っていないと初期値が8MBという…そんでもってinnodb使われているのか確認してみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
mysql select table_name, engine from tables where table_schema = "zabbix"; +-----------------------+--------+ | table_name | engine | +-----------------------+--------+ | acknowledges | InnoDB | | actions | InnoDB | | alerts | InnoDB | | application_template | InnoDB | | applications | InnoDB | | auditlog | InnoDB | | auditlog_details | InnoDB | | autoreg_host | InnoDB | | conditions | InnoDB | | config | InnoDB | | dbversion | InnoDB | | dchecks | InnoDB | | dhosts | InnoDB | | drules | InnoDB | | dservices | InnoDB | | escalations | InnoDB | | events | InnoDB | | expressions | InnoDB | | functions | InnoDB | | globalmacro | InnoDB | | globalvars | InnoDB | | graph_discovery | InnoDB | | graph_theme | InnoDB | | graphs | InnoDB | | graphs_items | InnoDB | | group_discovery | InnoDB | ~省略~ |
■結果どうなったのか
うおおおおおおおおお!!!!スクリーンの表示も一瞬でした。
■まとめ
Apacheのチューニングもしてみたが、たいして変わりませんでした。poolサイズのメモリーもっとあげていいかも。
参考:http://moriya.xrea.jp/tdiary/20111117.html
0件のコメント