そう言えば、1月の勉強会の予定がまだ無いですよね #nseg
— とみたまさひろ (@tmtms) 2016, 1月 5
"一般に自動テストと呼ばれているものの大部分は,実際にはシステムのモデルを体系化して,それに対してチェックを行うという,自動チェックなのです" "テストの労力を軽減するものであって,置き換えるものではない" / ““テストオート…” https://t.co/LcRntQ4bgV
— とみたまさひろ (@tmtms) 2016, 1月 6
Twitter が 10000文字になると、Base64 で 7500バイトのバイナリを送れるようになるが、UTF-8の4バイト文字をうまく使えばその4倍くらいのデータを送れるようになるので、Base64 に変わる何かの登場が待たれる。
— とみたまさひろ (@tmtms) 2016, 1月 6
@stealthinu クライアントから接続切断をくりかえすとそうなると思います。MySQLに限らず、TCPサーバー全般。
— とみたまさひろ (@tmtms) 2016, 1月 6
@stealthinu tcp_fin_timeout とか tcp_rw_recycle とか tcp_rw_reuse の値が同じなんであれば、クライアントからのアクセスの仕方が違うんじゃないですかねぇ。TCP じゃなくて UNIX ドメインソケット経由とか。
— とみたまさひろ (@tmtms) 2016, 1月 6
@stealthinu あ、TIME_WAIT は先にコネクションを閉じた側で発生するので、MySQL サーバー側で発生しているんであれば、MySQL から切断しているってことですね。
— とみたまさひろ (@tmtms) 2016, 1月 6
@stealthinu そうです。127.0.0.1 は TCP で、localhost は UNIXドメインソケットです。あと sysctl の設定を確認するんなら、conf ファイルを見るんじゃなくて、sysctl -a とかで見たほうがいいと思います。
— とみたまさひろ (@tmtms) 2016, 1月 6
@stealthinu じゃあ、MySQLから切断してますね。何かのタイムアウトとかですかね…。
— とみたまさひろ (@tmtms) 2016, 1月 6
@stealthinu netstat の Local Address が mysql のポートなら、サーバー側ですね。クライアントとしてどっかにつないでるわけではないと思います。
— とみたまさひろ (@tmtms) 2016, 1月 6
@stealthinu たとえば、変なアタック受けて、接続したけど認証せずに放置してるクライアントは MySQL 側から切断されちゃうし、それを何回か繰り返してるとそのクライアントからの接続は拒否するようになります。
— とみたまさひろ (@tmtms) 2016, 1月 6
@stealthinu 他には、たとえばクライアントがコネクションプールを使っていたりして、何もクエリを発行していない接続が長時間続くと、MySQL の側からそれを切断したりします。そういう接続があるかどうかは show processlist でわかります。
— とみたまさひろ (@tmtms) 2016, 1月 6
@stealthinu MySQL の wait_timeout が短くて、sleep 状態の接続がバンバン切断されてたり…。
— とみたまさひろ (@tmtms) 2016, 1月 6
@stealthinu できないような気がします。
— とみたまさひろ (@tmtms) 2016, 1月 6
@stealthinu あー、クライアントが MySQL との接続を切断するとき、ソケットをいきなり切るんじゃなくてQUIT命令を送るんですけど、その後双方でソケットを切断するので、タイミングによってサーバーが先に切断することになるのはもしかしたら普通のことなのかも知れません。
— とみたまさひろ (@tmtms) 2016, 1月 6
@stealthinu MySQL は接続処理が早いので、コネクションプール使わなくても割と何とかなったりするんですよねぇ。
— とみたまさひろ (@tmtms) 2016, 1月 6
「Webを支える技術」の読書会が始まります / “第1回 Webを支える技術読書会 - 長野ソフトウェア技術者グループ | Doorkeeper” https://t.co/7QUAfedeSr
— とみたまさひろ (@tmtms) 2016, 1月 6