ホームページ  >  記事  >  システムチュートリアル  >  Linux システムで TCP 接続と UDP の最大数を変更する方法と前提条件

Linux システムで TCP 接続と UDP の最大数を変更する方法と前提条件

王林
王林オリジナル
2024-07-16 14:25:32647ブラウズ

修改 Linux 系统最大 TCP 连接和 UDP 数限制的方法与前提

LinuxシステムのTCP接続の最大数とUDP制限を変更します

前提条件: root権限があること

システムのデフォルト設定は日常的な使用には十分ですが、広域同時実行ネットワーク プログラミングを実行する場合、接続数を超えると、開いているファイルの最大数を超えるとエラーが報告され、新しい接続はできません。作成されました (プロセスの最大数を超えています)。 リソース割り当てエラー

1. ユーザープロセスの最大数とファイルの最大数を制限する際の ulimit の役割を変更します

ulimit: 中国の Linux オペレーティング システム Linux 空間でユーザーが使用できるリソースの制限 (制限) を表示 (または設定) します。この制限は、ソフト リミット (現在の制限) とハード リミット (上限) に分かれています。ハード制限はソフト制限の上限であり、動作中にアプリケーションが使用するシステム リソースは対応するソフト制限を超えず、追いつくとプロセスが終了します。

リーリー

スレッドの最大数とファイルの最大数の制限を変更する

リーリー

その中に:

オープンファイルの最大数の制限については、前のパラメータを変更するだけで済みます。Linux TCP接続数の制限については、ユーザースレッドの最大数の制限については、異なるシステムに応じて次のファイル

linux tcp连接数限制_限制连接数有什么用_限制连接数量多少合适

centos7システムでの動作

centos7システムでは、ulimitの下のnprocの値は/etc/security/limits.d/20-nproc.confを通じて制御されます

リーリー

制限値を増やすには、/etc/security/limits.d/20-nproc.conf ファイルを編集する必要があります

限制连接数有什么用_限制连接数量多少合适_linux tcp连接数限制

2. このユーザーのシステムリソース制限を設定します

次の内容を /etc/pam.d/login ファイルに追加します:

リーリー

これは、ユーザーがシステムログインを完了した後、pam_limits.so モジュールを呼び出して、ユーザーが使用できるさまざまなリソースの数に対するシステムの最大制限 (ファイルの最大数の制限を含む) を設定する必要があることを Linux に伝えます。ユーザーは開くことができます)、pam_limits.so モジュールは /etc/security/limits.conf ファイルから構成を読み取り、この制限値を設定します。変更を加えた後、このファイルを保存します。

限制连接数量多少合适_linux tcp连接数限制_限制连接数有什么用

3. TCP/UDP 接続に対するネットワーク カーネルの制限を変更する

同時実行性の高い TCP 接続をサポートするクライアント通信ハンドラーを Linux 上で作成する場合、ユーザーが同時に開くことができるファイル数の制限がシステムによって解除されているにもかかわらず、ファイル数が制限されていると依然として問題が発生することがあります。同時 TCP 接続が特定の数まで減少し、新しい TCP 接続を正常に確立できなくなります。

Linux内核编译时默认设置的本地端标语范围可能太小,因而须要更改此本地端口范围限制。

内核参数的优化

限制连接数量多少合适_linux tcp连接数限制_限制连接数有什么用

更改/etc/sysctl.conf文件,/etc/sysctl.conf是拿来控制linux网路的配置文件,对于依赖网路的程序(如web服务器和cache服务器)十分重要

-<span class="token operator">></span> <span class="token function">sudo</span> vim /etc/sysctl.conf 
<span class="token comment"># 将原内容批注并写入如下内容</span>
net.ipv4.ip_local_port_range <span class="token operator">=</span> 1024 65535
net.core.rmem_max <span class="token operator">=</span> 16777216
net.core.wmem_max <span class="token operator">=</span> 16777216
net.ipv4.tcp_rmem <span class="token operator">=</span> 4096 87380 16777216
net.ipv4.tcp_wmem <span class="token operator">=</span> 4096 65536 16777216
net.ipv4.tcp_fin_timeout <span class="token operator">=</span> 10
net.ipv4.tcp_tw_recycle <span class="token operator">=</span> 1
net.ipv4.tcp_timestamps <span class="token operator">=</span> 0
net.ipv4.tcp_window_scaling <span class="token operator">=</span> 0
net.ipv4.tcp_sack <span class="token operator">=</span> 0
net.core.netdev_max_backlog <span class="token operator">=</span> 30000
net.ipv4.tcp_no_metrics_save <span class="token operator">=</span> 1
net.core.somaxconn <span class="token operator">=</span> 10240
net.ipv4.tcp_syncookies <span class="token operator">=</span> 0
net.ipv4.tcp_max_orphans <span class="token operator">=</span> 262144
net.ipv4.tcp_max_syn_backlog <span class="token operator">=</span> 262144
net.ipv4.tcp_synack_retries <span class="token operator">=</span> 2
net.ipv4.tcp_syn_retries <span class="token operator">=</span> 2

更改完之后执行:

sysctl -p /etc/sysctl.conf

sysctl -w net.ipv4.route.flush<span class="token operator">=</span>1

致使配置生效(亲测对TCP和UDP都适用)

至此操作完成。假如没有生效linux tcp连接数限制,这么就reboot。

以上がLinux システムで TCP 接続と UDP の最大数を変更する方法と前提条件の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。