housekeeper 実行時に Deadlock が発生

お世話になっております。
ネットワーク監視で Zabbix を使用していますが、
MIB情報取得の誤検知が発生して困っています。

【Zabbix環境】
・RedHatLinux 5.5
・Zabbix-Server1.8.3
・mysql5.1.43-1
・搭載メモリ:4GB

CISCO機器の ICMP 監視と MIB 値の取得をしていますが、MIB 値の取得のみが
できなくなる現象が時々発生します。
CISCO機器側には特に問題がないことがわかったため、
zabbix_server.log を確認したところ、mysql の負荷が高いため、
housekeeper 実行時に Deadlock が発生していました。
監視データ保存が重複した際に、更新に失敗しているようです。
解決方法をご教示頂けないでしょうか?

[出力されるエラー]
-----------------------------------------------------
28093:20120315:023348.311 Executing housekeeper
28093:20120315:023422.449 Deleted 6965 records from history and trends
28098:20120315:023525.245 [Z3005] Query failed: [1213] Deadlock found when trying to get lock;
try restarting transaction [update items set lastclock=1340464558,prevvalue=lastvalue,
prevorgvalue=NULL,lastvalue='66.513157' where itemid=112558; update items set lastclock=1340464558,
prevvalue=lastvalue,prevorgvalue='2.000000',lastvalue='0.000000' where itemid=114358;
update items set lastclock=1340464559,prevvalue=lastvalue,prevorgvalue='0.000000',
lastvalue='0.000000' where itemid=114324;
-----------------------------------------------------

監視数、データ量などをチューニングで改善はできることはわかっていますが、
それ以外の解決方法を模索中です。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー kodai の写真

MySQLの設定のチューニングはされているのでしょうか?OSに付属の設定ではパフォーマンスが出ませんので、まずはMySQLの設定を見直されるのが良いと思います。

以下の情報も参考になると思います。
http://www.slideshare.net/KodaiTerashima/zabbix-12061530

ユーザー hsgt0711 の写真

投稿ありがとうございます。
MySQLの設定のチューニングは innodb_buffer_pool_size 以外していませんでした。
ご参考の URL にて確認させてもらったところ、innodb_log_file_size も今回のテーブル
ロック時間とも関連しそうですので、対応してみます。

MySQL自身が、長期間のロック待ちを検知するとデッドロックとしてエラーを挙げてしまうので、
チューニングによる対策になり、デッドロックは完全になくならないということでしょうか?

ユーザー kodai の写真

デッドロックはMySQLのパフォーマンスが出ないときに発生しやすいので、まずはDBのパフォーマンスがきちんと出る状態かどうかが大切です。housekeeperの実行中にデッドロックが発生しているということは、削除処理でI/O負荷があがっているのではと考えました。

あとは、Zabbixサーバのバージョンアップを検討された方が良いと思います。デッドロックの現象はいくつか改善が行われていたと思います。

ユーザー hsgt0711 の写真

たびたびの回答すみません。ありがとうございます。
MySQLのチューニングを実施して、様子を見ます。