slow queryログの調査について(commit)
お世話になります。
zabbixサーバログに出力されるslow queryについて質問させてください。
zabbix4.0アルファがリリースされた頃に構築したのですが、
毎日似た時間帯に1回 slow queryログが4-5行出力されます。
同じようなログが出力されている方はいますでしょうか。
対処例がありましたらご教示頂けないでしょうか。
------------------------------------------------------
【利用環境】
centos7.5
zabbix-4.0.1
mysql-8.0.13
【zabbixサーバログ】
1818:20181120:174334.939 slow query: 7.286373 sec, "commit;"
【slow queryログ】
# Time: 2018-11-20T17:43:34.939976+09:00
# User@Host: zabbix[zabbix] @ localhost [] Id: 17
# Query_time: 5.256447 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0
SET timestamp=1542703414;
commit;
------------------------------------------------------
Web情報を参考にmysql以下の設定を追加しておりますが効果はなさそうです。
innodb_flush_log_at_trx_commit=2
autocommit=1
よろしくお願いいたします。
t-kubo - 投稿数: 11
>Heiho様
mysqlあまり詳しくないですが...
切り分けとして
>【zabbixサーバログ】
>1818:20181120:174334.939 slow query: 7.286373 sec, "commit;"
上記ログの前に、他のslow queryログは出力されていないでしょうか。
どのトランザクション処理のcommitがボトルネック化を特定できると解析しやすくなるかと。
zabbix_serve.confの下記設定を確認させてください。
・HousekeepingFrequency
・MaxHousekeeperDelete
Heiho - 投稿数: 2
コメントありがとうございます。
slow queryのログについてはcommitのみです。
その時間帯の全文を張り付けると下のようなログになり、
housekeeperの動作とは別のタイミングで毎回発生してるようです
【zabbixサーバログ】
1797:20181120:170803.852 housekeeper [deleted 1472091 hist/trends, 0 items/triggers, 58 events, 31 problems, 0 sessions, 0 alarms, 0 audit items in 96.285840 sec, idle for 1 hour(s)]
1818:20181120:174334.939 slow query: 7.286373 sec, "commit;"
1815:20181120:174334.940 slow query: 5.256568 sec, "commit;"
1814:20181120:174334.940 slow query: 4.240579 sec, "commit;"
1819:20181120:174334.940 slow query: 6.271213 sec, "commit;"
1824:20181120:174334.940 slow query: 3.220490 sec, "commit;"
1797:20181120:180804.425 executing housekeeper
1797:20181120:180942.080 housekeeper [deleted 1467627 hist/trends, 0 items/triggers, 92 events, 46 problems, 0 sessions, 0 alarms, 0 audit items in 97.653266 sec, idle for 1 hour(s)]
-------------------------------------------------------
以下のzabbix設定値を確認しましたが変更しておりませんのでデフォルト値のようです。
・HousekeepingFrequency
→1
・MaxHousekeeperDelete
→5000
1日で削除する設定を見ると以下の項目が該当してましたので、
値を変更してslowquery発生タイミングが変わるかテストしてみます。
・内部イベントの保存期間
・ネットワークディスカバリによるイベントの保存期間
・自動登録イベントの保存期間
t-kubo - 投稿数: 11
>Heiho様
ご確認ありがとうございます。
mysqlもPHPもあまり詳しくないのでお役にたてないかもしれませんが。。。
PHPから投げられるmysqlのquery「delete→commit」処理では
なるべくレコード数をまとめてからcommitした方がオーバヘッドが少ない。
という情報を見たことがあったことと、Zabbix内部処理の確認ができていないので
推測になりますが。
MaxHousekeeperDelete値を増加させることで、トランザクション負荷を下げられるかも
しれません。
MaxHousekeeperDelete設定値は、ログにある通り毎時実行しているhousekeeperだけの
設定値かもしれませんので、是非ご検証結果共有いただければと思います。