序文 まず、TCP 接続を識別する方法を見てみましょう。システムは、(src_ip、src_port、dst_ip、dst_port)、つまり送信元 IP、送信元ポート、宛先 IP、宛先ポートの 4 つのタプルによって識別されます。たとえば、192.168.0.1 にポート 80 が開いているサービスがあるとします。この場合、すべてのクライアントはこのサービスのポート 80 に接続します。よく誤解されるのが、マシンには 65536 個のポートがあるため、マシンが伝送する接続の数も 65536 個であるということです。この記述は大きく間違っており、送信元ポートとアクセス先ポートを混同しています。ストレステストを行う際には、ストレステストクライアントを使用します。このクライアントの接続数はポート数によって制限されますが、サーバー上の接続数は数万、一般的には最大 100 万 (4C8G 構成) に達することがあります。上限については、最適化の度合いによって異なります。具体的な手順は次のとおりです。 対象サーバーのストレス テストを行っており、負荷がかかった状態での接続数を確認したいと考えています。特定の数までストレスをかけると、コンソールに突然「開いているファイルが多すぎます」と表示されます。これは、Linux システムが TCP 接続を作成するときにソケット ハンドルを作成し、各ソケット ハンドルがファイル ハンドルであるためです。オペレーティング システムでは、開いているファイル ハンドルの数に制限があります。 Unix/Linux の基本的な考え方の 1 つは、「すべてがファイルである」ということです。TCP の伝送容量を増やすには、ファイル ハンドルを調整する必要があります。 ステップ1: ファイルハンドル制限を変更する # TCP ulimit -n で現在のユーザーが開くことができるファイルハンドルの最大数を表示します # ファイルハンドルを変更する vim /etc/security/limits.conf *ソフトnofile655350 * ハード ノーファイル 655350 変更後、ターミナル ウィンドウを終了して再度ログインすると (サーバーを再起動する必要はありません)、最新の結果を確認できます。これは最適化の最初のステップであり、ファイル ハンドルの制限を変更します。
ステップ2: TCPパラメータの調整
上記の構成パラメータから、Linux カーネルで TCP 送受信用のバッファ キューが設定されており、システムのスループットを向上できることがわかります。 上記のパラメータはすべて /etc/sysctl.conf ファイルで定義されています。一部のパラメータはファイルで定義されていない場合があります。システムによってデフォルト値が与えられます。それらを変更する必要がある場合は、ファイル内で直接追加または変更してから、sysctl -p コマンドを実行して有効にします。
要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
<<: MySQLでグローバル変数とセッション変数を設定する2つの方法の詳細な説明
>>: MySQL データベースを手動および自動でバックアップする 8 つの方法
目次実際のプロジェクトで遭遇する要件実装が間違っているところもある私は個人的に、実装するより良い方法...
目次JSONPとはJSONP 原則JSONP実装1. Ajaxでクロスドメインリクエストが行われると...
序文この記事では、非同期 JavaScript の進化と、それがコードの記述方法にどのような変化をも...
何が大問題ですか?長時間実行され、長時間コミットされないトランザクションは、大規模トランザクションと...
目次splice() メソッドjoin() メソッド逆() メソッドevery() メソッド削減()...
序文セキュリティ上の理由から、会社が Linux サーバーへのすべてのログインにセキュリティ制限を課...
いくつかの概念行ボックス: インライン ボックスを囲むボックス。1 つ以上の行ボックスが積み重ねられ...
1. MySQL サービスが起動しているかどうかを確認します。起動している場合は、MySQL サービ...
目次DMLステートメント1. レコードを挿入する2. 記録を更新する3. シンプルなクエリレコード4...
目次1. 機能説明2. 親コンポーネント3. サブコンポーネント NextTick.vue 4なぜ未...
1. インストールヒント: 現在、VUE3.0 の公式翻訳ドキュメントはありません。しかし、すでに誰...
1.backup.shスクリプトファイルを作成する #!/bin/sh ソースフォルダ=/データ ...
基本概念現在の読み取りとスナップショットの読み取りMVCC では、読み取り操作はスナップショット読み...
目次1. 分離レベルコミットされていない読み取りREAD COMMITED (コミット読み取り/非反...
1. 事例会社のトップ以外の従業員全員を年齢別にグループ化します。 t_emp で id が存在しな...