netem と tc: netem は、Linux カーネル バージョン 2.6 以降で提供されるネットワーク シミュレーション モジュールです。この機能モジュールを使用すると、パフォーマンスの良好なローカル エリア ネットワークで、低帯域幅、伝送遅延、パケット損失などの複雑なインターネット伝送パフォーマンスをシミュレートできます。 Fedora、Ubuntu、Redhat、OpenSuse、CentOS、Debian など、Linux 2.6 (またはそれ以降) カーネル バージョンを使用する多くの Linux ディストリビューションでは、このカーネル機能が有効になっています。 tc は Linux システムのツールであり、正式名称はトラフィック制御です。 tc は netem の動作モードを制御するために使用できます。つまり、netem を使用する場合は、少なくとも 2 つの条件が必要です。1 つはカーネルに netem 関数が含まれていること、もう 1 つは tc が必要であることです。 この記事で紹介したフロー制御は、パケットの送信動作のみを制御でき、パケットの受信動作を制御できないことに注意してください。同時に、物理インターフェースに直接影響を及ぼします。物理 eth0 を制御すると、論理ネットワーク カード (eth0:1 など) も影響を受けます。逆に、論理ネットワーク カードを制御すると、制御が無効になる可能性があります。 (注: 仮想マシン内の複数のネットワーク カードは、仮想マシン内の複数の物理ネットワーク カードとみなされます)。 Linux には、ネットワーク パケットの損失と遅延をシミュレートするために使用できるトラフィック制御という tc ツールがあります。バックエンド サーバーを開発するときに、特定のネットワーク パケット損失条件下でサーバーが適切に機能するかどうかを知りたい場合は、tc を使用してパケット損失率をシミュレートできます。 パケット損失のシミュレーション 次のコマンドはパケット損失をシミュレートすることができ、eth0 ネットワーク ポートから送信されるパケットの 10% がランダムに失われます。 sudo tc qdisc add dev eth0 root netem 損失 10% アナログディレイ 次のコマンドは、eth0 ネットワーク ポートから送信されるパケットを 40 ミリ秒遅延します。 sudo tc qdisc add dev eth0 root netem 遅延 40ms 特定のシナリオにおけるパケット損失と遅延 上記で紹介したコマンドは eth0 ネットワーク ポート全体に有効であることに注意してください。つまり、eth0 から送信されるすべてのパケットでランダムなパケット損失または遅延が発生します。しかし、場合によっては、パケット損失と遅延が特定の宛先アドレスにのみ影響するようにしたいことがあります。どうすればよいでしょうか? sudo tc qdisc dev eth0 ルートハンドル 1 を追加します: prio sudo tc qdisc add dev eth0 parent 1:3 handle 30: netem 損失 13% 遅延 40ms sudo tc フィルターを追加 dev eth0 プロトコル ip 親 1:0 u32 一致 ip dst 199.91.72.192 一致 ip dport 36000 0xffff フロー ID 1:3 上記のコマンドでは、199.91.72.192:36000 に送信されるネットワーク パケットに対して 13% のパケット損失と 40 ミリ秒の遅延を生成するように tc に指示していますが、他の宛先アドレスに送信されるネットワーク パケットには影響はありません。 ルールの削除 パケット損失と遅延をシミュレートした後、ルールを削除することを忘れないでください。 sudo tc qdisc del dev eth0 ルート 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
<<: React Hook の使用例 (一般的なフック 6 つ)
>>: MySQL がユーザー名とパスワードの漏洩を引き起こす可能性のある Riddle の脆弱性を公開
<iframe src=”test.jsp” width=”100″ height=”50″ ...
機能: 前のページまたは次のページにジャンプします。要素: ページングの基本要素は、前のページ + ...
rpmコマンドがソフトウェアのインストールに使用するパラメータはどれですか: -i rpm コマンド...
[LeetCode] 178.ランクスコアスコアをランク付けする SQL クエリを記述します。2 ...
MySQL_8.0.2のオフラインインストール方法は参考までに。具体的な内容は以下のとおりです。次の...
テーブル:reward(報酬テーブル)があるとします。テーブル構造は次のようになります。 テーブルt...
なぜなら、SQL Server 2005 に基づくデータベース チュートリアルがあり、そこで使用され...
1. はじめにpt-query-digest は、MySQL のスロー クエリを分析するためのツール...
今日、MySQLサービス1067エラー問題に遭遇しました。システムアカウントを使用するように設定して...
目次簡単な紹介1. 現在のgccバージョンを確認する2. gccインストールパッケージ(バージョン1...
この記事では、例を使用して、MySQL ストアド プロシージャでの if ステートメントの使用方法を...
JSON (JavaScript Object Notation、JS Object Notatio...
これはかなり前に書かれた記事です。今となっては、その中の考え方は学ぶ価値があるように思えます。jb5...
元の URL: http://segmentfault.com/blog/ciaocc/119000...
まずは適用方法を説明します。nginxモジュールにはjtxyとjtcmdの2つがあります。 http...