私は Windows 2008 で単純で小さなサーバー アプリケーションを作成しました。このアプリケーションは、接続を受け入れるだけで他には何もしません。ソケット呼び出しのメモリ フットプリントの評価を行っています。各接続 (accept() の後) が少なくとも 2.5 KB のメモリを消費することがわかりました。興味深いことに、メモリは、accept() 呼び出しを持つプロセスによって消費されませんが、OS プロセスによって消費されます。接続ごとにOS内でデータ構造が作成されているためだと思います。
ここで、2 つの重要な質問があります。
このメモリ フットプリントを削減する方法はありますか (パラメータ、構成などを変更することにより)。はいの場合、どのように?(サーバーが数百万の接続を受け入れるように計画している場合、接続ごとに 2K は多すぎるため)
サーバーが何百万もの接続を受け入れることを意図している場合、Windows 2008 を使用することをお勧めしますか? または、他のOSに切り替える必要がありますか?
私に助言してください。