Linuxのソケットの最大数


12

サーバーは〜32720ソケットに制限されているようです。この制限を引き上げるために、既知の変数の変更をすべて試しました。ただし、空きメモリの4GoとアイドルCPUの80%がまだある場合でも、サーバーは32720のオープンソケットに制限されたままになります。

構成は次のとおりです

~# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 63931
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 798621
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 2048
cpu time               (seconds, -t) unlimited
max user processes              (-u) 63931
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

net.netfilter.nf_conntrack_max = 999999
net.ipv4.netfilter.ip_conntrack_max = 999999
net.nf_conntrack_max = 999999

何かご意見は ?(この質問は、これまでのところ運のないスタックオーバーフローで尋ねられました)


serverfault.com/questions/10852/...は、いくつかの良いデータを持っている
sysadmin1138


私は運で、投稿する前に、それらのスレッドをチェックしなかった
TheSquad

回答:



2

あなたはこれのために間違った場所を見ています。ユーザー制限に達していない、システム制限に達しています。これは通常、32ビットシステムでは2の15乗です。これがシステムの推測です。小切手:

 % cat /proc/sys/kernel/pid_max 
 32768
 %

ただし、これ変更できます。絶対上限として2 ** 22になる32ビットマシンでは、次のようになります。

% sudo bash -c 'echo 4194303 > /proc/sys/kernel/pid_max'
%

私はあなたがどうやって行くのか知りたいです。


pid_maxは既に999999
TheSquad

1

実際に接続を開くことができるソケットの最大数を調べようとしている場合は、cat / proc / sys / net / ipv4 / ip_local_port_rangeを調べてみてください。これは、カーネルが送信ソケットに使用するポートの範囲であり、ディストリビューションに基づいて異なるデフォルトがあります。「1024 65535」のような値に設定することは、あなたが手に入れることができる限り広く開いています。それが物事に役立つかどうかを確認してください。


ip_local_port_rangeは既に1024 65535です。
TheSquad10年

0

スレッドで同様のことが言われている場合は申し訳ありませんが、今すぐ読む時間はありません:<

一見すると、言及したソケットの数は最大ユーザープロセスの約半分であることがわかります。私はあなたがすべてのソケットに別々のプロセスを持っていると推測できるので(適切にサーバーまたはそのようなものを実行します)

できることは、次にソケットの制限に達したときにプロセスの数をチェックすることです。

ただのアイデア、それが役立つかどうかわかりません。


いいえ、そうではありません:#ps -ef | grep -c 'root' = 147
TheSquad

制御された環境下ですか?いくつかチェックしていただけますか?たとえば、リクエストごとにいくつのプロセスが作成されますか?また、サーバーの優先順位は何ですか?あなたがそれを放棄した場合、それは何かを変えますか?そうでない場合は、プロセス内のプロセス制限またはスレッド制限に到達することはほぼ確実です:>
Nikolaidis Fotis
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.