2008年10月08日

IPアドレス変更でMySQLが遅い

とある知り合いから業務管理システムの構築を依頼され、Visual Studio 2008 + CentOS + MySQLという構成でシステムを構築し、数日後には納品という時の出来事であった。

開発環境では、VMware等の仮想マシン上のサーバでテストを行っており、納品用のサーバ上でも正常に動作することを確認していたはずなのに、なぜか、納入先の環境に合わせてサーバのIPアドレスを変更すると、極端にレスポンスが悪くなってしまうふらふら

Windowsの載った仮想マシンからテストしたのがいけないのかと思い、実機のIPアドレスを変更し試すも、やはりレスポンスが悪い。
・・・レスポンスが悪いと言うよりは使い物にならない位の次元だ。
念のため、ルータに接続せず、予備のスイッチングハブを設置して試してみるが、やはり結果は同じである。
そして、IPアドレスを元の設定に戻すと、やはりこの問題は発生しない。

このため通信経路ではなく、サーバ側の問題と考えMySQLコンソールで
SHOW PROCESSLIST;
を実行してみる。
すると、アクセス中に
unauthenticated user
が発生していることを確認!!

この原因を調べてみたところ、MySQLがDNS逆引きを行うのが原因らしいことが分かった。
つまり、IPアドレスからホスト名を引こうとしているのである。
原因はコレだひらめき

・・・と分かったところで、my.cnf の [mysqld] に
skip-name-resolve
を追加してみると、無事、テスト環境と同等のレスポンスを得ることに成功しました。

今回の場合、原因の内容から察するに、上記設定を行わなくても納入先に設置すれば特に問題なく動作するとは思われたが、本社−営業所間がVPNで結ばれているため、営業所からアクセスした場合に同様の現象が発生すると考えられる。
なので、納入前に気づいて良かった・・・と思った出来事でした(^^;
posted by 管理人 at 22:09| Comment(0) | TrackBack(0) | 日記 Linux
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/34858931
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック