MySQLの重さの原因はDNS逆引きだった

昨日、私的に運用しているサーバのMySQLが急に重くなり、connectできないという現象に陥りました。
原因を探ったところ、ファイアウォール側の問題でサーバからDNSの逆引きができない状態になっていて、MySQLはDNSサーバの応答をずっと待っていたためプロセス数が最大になってしまった模様。
DNS逆引きができるようになると何事も無かったかのようにMySQLが軽くなりました。

http://dev.mysql.com/doc/refman/4.1/ja/dns.html
を見ると、「--skip-name-resolve を mysqld オプションを指定して起動すると、DNS ホスト名ルックアップを無効化できます。ただし、この場合は、MySQL 権限テーブルで IP 番号しか使用できなくなります。」と書いてあるため、早速my.cnfに下記の設定を追加しました。

[mysqld]
skip-name-resolve

うちのようにlocalhostからしかMySQLを使わない場合、MySQLがDNS逆引きを行う必要は無いですし、このほうがパフォーマンスも良いみたいです。

「要らない事は行わない」のがトラブルの削減や、リソースの節約に繋がることを改めて実感しました。

トラックバック(0)

このブログ記事に対するトラックバックURL: http://nc4u.jp/blogsys/mzfx8a.cgi/10

コメントする


※入力必須ですが、公開はされません。

画像の中に見える文字を入力してください。

前の記事「INTEROP TOKYO 2008」へ 次の記事「ウィンドウズビスタの巧み?」へ