uzullaがブログスマートフォン用の表示で見るuzullaがブログuzullaがブログです。mysql先日より突然投げ渡されたWindowsシステムを扱う事になってる私ですが、様々な洗礼を受け、着々とウインドーズ力を高めております。タイトルだけでWindowsマスターの皆様なら、「ああ...」ってわかりますよね、それにひっかかりました。ポートが閉じられない」というバグを見事踏むことに成功しました。いや、このバグきいたときは「うわーw」って思ってたんですが、まさかそこからしばらくして自分が踏むとはおもわなんだ。面白い挙動だったので、少しお話したいと思います。上で動いているソフトウェアはMysqlです。TCPのチューニングはしていないシステムです。なった?さて、これ497日経過すると一気に*1死ぬのかとおもっていましたが、どうもそういうわけではないみたいです。約5xx日を経過した所で、まだ通信は断続的にできます。リモートデスクトップも(内部でリトライはしてるんでしょうが)つながります。Mysqldへの接続も断続的に失敗しますし、塩梅は悪化の一途をたどります。*2どうも、「すべてのTCP/IPポート」とありますが、「本当に全く再利用できない」というわけではないような気がします、いくらかは回収されているんですかね?数日単位でだんだんと悪化した、という感触があります。具体的には?Mysqlが出力するエラーは、PHPだとこのようなものになります。接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。接続済みのホストが応答しなかったため、確立された接続は失敗しました。リトライするとなにもなかったようにスムーズにつながったり、またつながらなかったりします。CPU負荷もメモリ負荷もなにもあがりません、一般的な資源監視ツールだと平和に見えます。Workbenchだと、なぜか一度も接続に失敗しませんでした。これも謎ですが、まあ内部リトライなのかもしれません。-naの出力Mysqlの3306への接続等、大体4000行くらい出力されていました。2008は、計15000ポート位がユーザポートで利用できるはずなのですが*3、3〜4000って全然それにとどいてない感じですね。この辺りになにか限界みたいなものがあるのかもしれません。netstatが全部出力していない、という可能性もなきにしもあらずだし、Mysql自体のFDがうまってるとか*4あったのかもしれません。(ただし、後述しますがMysqlが報告するコネクション数、スレッド数は10程度でした)どうでもいいけど、TIME_WAIT状態のポートは45000あたりから65000あたりでキレイに染まっていたので、ああ、WS2008はホントにこのレンジでポートをつかっているのだなーという感じです。?いやー洗礼だったなーって感じです。・サーバーでもちゃんとWindowsUpdateやってれば起こらない(≒月一再起動)・Windowsを無再起動で2年近く回すとかどうなの?*5・そもそもこれ既知情報じゃん、なんで対応しなかったの*6・さっさと再起動しないで観察するなよ*7という感じっすね。現実として起こってみれば、微妙な挙動で「はー!これは面白い!」と思ってしまった一件でした、他人ごとや!でも自分の身にふりかかると、これつらいわ。最初単純にMysqlにつながらないという問題だったので、PHPのコードやネットワークを疑い、Mysqlのコネクション数の問題とか、色々あるけどそこらへんもちゃんと調査した上で10ポートくらいしか食ってないし、マジなんなのこれ、死にたい、Windows独特ななにかの問題か?*8、いやそうやってWindowsの所為にする根性は是正しないといけない!!などとウンウン悩み...。途中TIME_WAITが大量に発生しているのを見つけて、なんかアタックでもくらっているのだろうか、でもこいつFWの内側だしな、IPもDMZ内だしな...。PHPのコード(他人が書いたもので、私は1行もまだ手をいれていない)が悪いのだろうか、なんだろうなんだろうと悩んで全部さらってみても問題はみつからず。TIME_WAITであふれる問題はLinuxでもしばしばある話で、TCPのパラメタチューニングをやったりするのが定番なので、TIME_WAITが「本当にへらない」というのはなかなか想像ができませんでしたね。結局TIME_WAITの寿命短縮とポートレンジ増やそう、という結論にいたって、その周辺を調査していたらみつけましたね。「マジなんなのこれ、死にたい、逃げたい」というつらみがやっと解決して本当に嬉しい。洗礼は襲いかかるはずで*9、胸がいっぱいです。-naの出力が何行か数えるのに一瞬とまどった。out.txtで保存してから、エディタでひらいて行数をみた(余分な行も数えてしまうが...)という感じでした。Win向けの良いwcコマンド、探さないとな。結局どうなったの?まあ、再起動したら当然のように安定しはじめましたwパッチが効いてるのかとかはまた500日待つ案件なので、わかりませんね!おわりおまけ、色々しらべていた件。hosts問題、Mysqlがbanすることがある。Windowshttp://dev.mysql.com/doc/mysql-windows-excerpt/5.0/en/can-not-connect-to-server-on-windows.htmlおわりといいつつ、最近してなかった宣伝http://tailf.cfe.jp/あなたのInstagram、Facebook、Google+(Picasa)の画像をTOLOTフォトブックに超カンタンに変換します。500円で62枚のフォトブックは前代未聞の安さとおもいますので、是非。ServiceというPaaSがレンサバみたいにつかえて...2015-10-07俺がやってみたかったh2oとphpの構成についてやっと暇ができたのでやってみました。20...お察しの通り、AWSのWindowsでやる話です。»プロフィールid:uzullauzullaがブログです。参加してきました!月別アーカイブ参加グループWindows開発者はてなブログをはじめよう!uzullaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。