mysql:14931
From: Tetsuro IKEDA <Tetsuro IKEDA <te.ikeda@xxxxxxxxxx>>
Date: Fri, 19 Jun 2009 10:33:44 +0900
Subject: [mysql 14931] Re: MySQL5系でセグメント越えの接続が遅い件について
こんにちは。池田です。 もう解決してしまったようですが、 ちょっとコメントさせて下さい。 MySQLサーバは接続ユーザが、 ikeda@myhostname みたいなホスト名を用いた形式で登録されていても、 ikeda@xxxxxxxxxx みたいなIPアドレスを用いた形式で登録されていても、 デフォルトでは必ずIPアドレスによる逆引きを行います。 (sql/sql_connect.ccのcheck_connection関数を参照) # 接続時のホスト認証は逆引き後に行います。 この時、MySQLサーバはgethostbyaddr(3)関数を用いて 逆引きを行いますが、gethostbyaddr(3)内部では最初にhostsファイル、 次にDNSサーバの順で解決できるまで問合せを行います。 ここでいう172.20.100.2のIP/ホスト名がhostsファイルに無かったり、 DNSサーバに登録されていないような場合には、gethostbyaddr(3)が タイムアウトするまで応答がなくなります。(デフォルトでは10秒くらい?) 今回、セグメントやMySQLのバージョンによって応答速度が変わったとの ことですが、hostsファイル等ですぐに解決できたか、あるいは タイムアウト待ちになったかの違いによるものと思います。 skip-name-resolveオプションを有効にしておくと、 gethostbyaddr(3)は呼び出されません。 またgethostbyaddr(3)の結果はデフォルトではMySQLサーバはメモリ上に キャッシュしていますので、2回目以降は接続が早くなるわけです。 従ってユーザ作成時にIPアドレスのみ使用する場合には、skip-name-resolveを 利用し、ホスト名も使う場合にはhostsファイル等への登録を確実に行う、 というのが正しい利用方法になるかと思います。 以上、長文失礼しました。 Mikiya Okuno さんは書きました: > 舞永さん、 > > 解決したようで良かったです。 > でもセグメントによってDNS名前解決の時間が異なるってちょっと不思議です ;) > > ところで、Windowsにもhostsファイルがあるので、名前解決が遅いが問題なら > hostsファイルの変更で対処しても良いと思います。 > http://support.microsoft.com/kb/923947/ja > > ではでは。 > -- > Mikiya Okuno, MySQL Support Engineer > Sun Microsystems KK, Tokyo, Japan > http://www-jp.mysql.com/ > > On 18/06/2009, at 5:50 PM, 舞永 裕樹 wrote: > >> Mikiya Okuno様 >> >> お世話になります。舞永です。 >> >> 大変申し訳ございませんでした。 >> >> skip-name-resolved >> >> の設定をクライアント側に記載しておりました。 >> (クライアントコマンド発行時にエラーが表示されそこで気づきました) >> >> 全環境での検証はまだできておりませんが、同一セグメント及び別セグメントからの初期接続も解消されたことを確認しました。 >> >> 丸二日間様々な検証に時間を取られもう投げだそうとしていたところでしたが、 >> こちらでご助言いただき本当に助かりました。 >> >> ありがとうございました。 >> >> > > > >
14925 2009-06-18 15:46 [舞永 裕樹 <mysql@xx] MySQL5系でセグメント越えの接続が遅い件について 14926 2009-06-18 16:13 ┗[Mikiya Okuno <Mikiya] 14927 2009-06-18 16:45 ┗[舞永 裕樹 <mysql@xx] 14928 2009-06-18 16:51 ┗[舞永 裕樹 <mysql@xx] 14929 2009-06-18 17:50 ┗[舞永 裕樹 <mysql@xx] 14930 2009-06-18 17:56 ┗[Mikiya Okuno <Mikiya] -> 14931 2009-06-19 10:33 ┗[Tetsuro IKEDA <te.ik] 14932 2009-06-19 20:01 ┗[舞永 裕樹 <mysql@xx]