ソケットの数のOS上限

| | コメント(0)

 オンラインゲームを作るに当たり全く考えてなかった問題があった。OSレベルでのファイルオープン数制限である。ソケットもOSレベルではファイルポインタとして扱われている為この制限にかかる。

C言語のプログラミングレベルであればFD_SETSIZEの定義を変えれば良いがそれだけではOSの制限は超えられない。調査方法は下記のコマンドを実行する。

Linuxの場合
# ulimit -a

この結果Linux系はデフォルトが1プロセス当たり1024個までのようだ。
これは少なすぎなのでRedHat系であれば/etc/security/limits.confに上限値を
入れてリログすると適用されるっぽい。

FreeBSDの場合
# limit
cputime unlimited
filesize unlimited
datasize 524288 kbytes
stacksize 65536 kbytes
coredumpsize unlimited
memoryuse unlimited
vmemoryuse unlimited
descriptors 7264
memorylocked unlimited
maxproc 3632
sbsize unlimited

FreeBSDは7264が上限になってた、これだけあれば大丈夫かな。

そしてFreeBSDの場合は

コメントする

このブログ記事について

このページは、管理人が2007年1月24日 03:23に書いたブログ記事です。

ひとつ前のブログ記事は「3月18日から地下鉄も携帯で乗れる」です。

次のブログ記事は「最近PCが重いのでデフラグ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.1