負荷分散

softether2004-12-05

これまで『卓上の空論』であった、SoftEther VPN へのロードバランシング機能の組み込みを完璧に実装することができた。プログラムが SoftEther 2.0 の通信エンジンだけで 17 万行を超えてきていて、大変複雑であるが、極力安全に書いてきたので通信エンジンのバグはあまり見つかっていない。
マルチスレッド環境でのデッドロックってとても怖いものだということを思い知らされた。2,000 セッションくらい同時接続した状態で負荷をかけると極めて稀に (1時間くらいギガビット級の帯域負荷をかけて) 固まると思ったら、ロック順序相違でデッドロックが発生している部分があった。今はデッドロックをある程度簡単に検出できるデバッグツールを作って組み込んでみたので、もうデッドロックは怖くない。