2

私はこの状況が嫌いです(MACOSX)

$ perl -MSocket -le 'print SOMAXCONN'
128

128を超えるソケットを処理するにはどうすればよいですか?IO :: Socket :: INET(現時点ではIO :: Selectと多重化)を使用していますが、この制限があります。

私はプレフォークNプロセス(それぞれselectまたはpollを使用して128を処理する)で考えていましたが、それが機能するかどうかはわかりません。いくつかのアイデア?

4

1 に答える 1

5

これは、OSXカーネルレベルで構成可能な制限です。幸いなことに、修正は非常に簡単ですが、ルートがある場合に限ります。カーネル構成を微調整する方法を説明する記事があります。関連するエントリはkern.ipc.somaxconnです。

それ以外の場合は、スレッドを使用してみることができます。各スレッドが独自のソケットの割り当てを取得しているかどうか、またはCPAN上の任意の数のプリフォークサーバーを取得しているかどうかはわかりません。

于 2012-12-08T00:01:26.830 に答える