0

数千のリクエストを同時に処理できるMACOS用のサーバーアプリケーションを開発しています。

最初は約2.3MBのスペースしかネットワークに割り当てられておらず、サーバーがより多くの要求を受信すると、割り当てられたメモリは約65MBに達するまで増え続けます。

65 MBでは、100%の使用率を示しています。
「メモリ遅延」に対する数千の要求
と、クライアント接続が失敗し始めます。

kern.ipc.NMBCLUSTERS = 32768の値を確認しました。これは、およそ72MBのメモリになります。
したがって、sysctlコマンドを使用してこれに新しい値を設定したいのですが、「sysctl:oid'kern.ipc.nmbclusters'は読み取り専用です」と表示されます。

Googleは、freebsdシステムの/boot/loader.confにkern.ipc.NMBCLUSTERS = 65536を追加することをお勧めしますが、macosにはそのようなディレクトリはありません。

4

1 に答える 1

0

http://osdir.com/ml/general/2012-04/msg52432.htmlで答えを見つけました 解決策はコマンドを実行することです

sudo nvram boot-args="ncl=131072"

マシンを再起動します。再起動後、sysctlkern.ipc.nmbclustersは新しい値131072に設定されます。

今すぐアプリのパフォーマンスのテストに戻ります:-)

(値をリセットするためにこのboot-argsをクリアする方法がわかりません)

于 2012-11-01T09:54:06.517 に答える