Skip to content

Linux ネットワークパフォーマンスのクイズ ​

最終更新日: 2026 年 9 月 15 日

まず Linux Network Performance を読んでください。 最も適切な答えを 1 つ選び、解釈と測定上の制約の両方を説明してください。

  1. Bootlin の公開資料とこのワークブックの関係を正しく説明しているものはどれですか?
    • A) ダウンロード可能なスライドが、無料でサポート付きのハードウェアラボを保証する。
    • B) 初心者向け VM であれば、ボードやドライバーに関するすべての観察結果を必ず再現できる。
    • C) 公開されているスライドやラボは学習に役立つが、ハードウェア演習には資料に記載されたボード/ツールチェーンと C/カーネルの知識が必要である。
    • D) キャプチャを取得できない場合、トレーニング修了証で代用できる。
解答を表示

解答: C

解説: 公開資料の閲覧、指導、ハードウェア、受講登録はそれぞれ異なります。ドライバーのラボには低レベルの知識と適切な環境が必要です。中心となる Python の loopback 演習は前提条件がより少なく、物理 NIC の動作を証明するものではありません。ハードウェアを利用できない場合は、修了証で置き換えず、その証拠が得られないことを明記してください。

  1. クライアントはヘッダーを解析した後、意図的に 0.15 秒待機します。トランザクション全体の所要時間が長くなった場合、妥当な結論はどれですか?
    • A) ネットワーク RTT が正確に 150 ms 増加した。
    • B) クライアント側の読み取り遅延が完了時間に含まれている。経路の遅延を知るには別の証拠が必要である。
    • C) qdisc がパケットをドロップしたはずだ。
    • D) 受信バッファーを大きくすれば、意図的な待機がなくなる。
解答を表示

解答: B

解説: 設定された待機時間は read_ms と total_ms の一部であり、ネットワーク遅延として注入されたものではありません。スケジューリングやバッファリングも実測値に影響します。headers_ms にも接続やリクエストの処理が含まれるため、純粋な RTT ではありません。この実験は、競合するアプリケーション側の説明を検証するもので、特定の測定時間を示すものではありません。

  1. ss の解釈として適切なのはどれですか?
    • A) LISTEN 状態の Recv-Q は、常にアプリケーションがまだ読み取っていないペイロードのバイト数を表す。
    • B) ESTABLISHED 状態の Send-Q は、設定された送信バッファーの最大値を表す。
    • C) ESTABLISHED 状態の Recv-Q は未読の受信データに関係する。ソケットメモリと LISTEN 状態のバックログは別の量である。
    • D) skmem、広告された受信ウィンドウ、cwnd はすべて数値が一致しなければならない。
解答を表示

解答: C

解説: 各列の意味はソケットの状態によって異なります。ESTABLISHED 状態の Send-Q は未確認のバイト数に関係し、未送信のバイトも含みます。一方、LISTEN 状態の列は接続の受け入れに関係します。メモリの計上にはオーバーヘッドが含まれるため、ストリーム内のデータ量とは異なります。また、cwnd と比較する場合は、その単位がセグメントであることと MSS も確認する必要があります。

  1. 仮定上の経路のスループットが 100 Mbit/s、RTT が 40 ms の場合、BDP はいくつで、そこから何が分かりますか?
    • A) 4,000,000 バイト。すべてのソケットバッファーをこの値にすべきだと証明できる。
    • B) 500,000 バイト。推論に使える値だが、実行速度が遅い原因までは特定できない。
    • C) 500 バイト。loopback の測定容量である。
    • D) 2,500,000 バイト。qdisc のキュー長として必須である。
解答を表示

解答: B

解説: RTT を 0.040 秒に、ビットをバイトに換算すると、100,000,000 × 0.040 ÷ 8 = 500,000 です。これは仮定に基づく計算です。スループットは有効なウィンドウ、アプリケーションからのデータ供給、輻輳、その他の制約によって変わります。この計算だけではボトルネックを診断できず、全体設定の変更も正当化できません。

  1. ホスト上のキャプチャで大きな TCP 単位と、送信チェックサムのエラーに見えるものが観測されました。最初にすべきことはどれですか?
    • A) すべての NIC オフロードを無効にし、負荷上限なしで再実行する。
    • B) 物理ネットワークが破損した巨大フレームを送信したと断定する。
    • C) キャプチャの観測位置、方向、オフロードの状況、切り詰めの有無、キャプチャカウンターを記録する。
    • D) 有用な証拠を含まないので、キャプチャを削除する。
解答を表示

解答: C

解説: GSO/TSO/GRO やチェックサムオフロードの影響により、ホスト上の観測内容は物理回線上の送信内容と異なることがあります。だからといって、ネットワークが正常だと証明されたわけでもありません。まず観測点を特定し、必要に応じて対応するエンドポイントや回線上の証拠を確認してください。このワークブックでは、見え方をそろえるために NIC オフロードを変更しません。

  1. 正しい組み合わせはどれですか?
    • A) NAPI は、すべてのアプリケーションがレイテンシー目標を満たすことを保証する。
    • B) RSS は、1 つの TCP フローを必ずすべての CPU に分散する。
    • C) RSS はハードウェアで受信キューへ振り分け、RPS はソフトウェアで CPU へ振り分け、NAPI はドライバーイベントのポーリングを処理する。
    • D) loopback により、物理 NIC の RSS インダイレクションテーブルを直接ベンチマークできる。
解答を表示

解答: C

解説: これらの仕組みは関連していますが、動作する場所は異なります。フローが 1 つの RSS キューにハッシュされる場合もあり、ソフトウェアによる処理時の CPU 分散はそれと異なることがあります。NAPI の処理予算や実行コンテキストは、アプリケーションの完了時間を保証しません。loopback は物理 NIC の受信キューを通りません。

  1. tcpdump がキャプチャドロップを報告し、ss のサンプルで再送信が観測されました。何を結論づけられますか?
    • A) すべての再送信は tcpdump によるパケット損失が原因である。
    • B) qdisc が損失箇所であることが証明された。
    • C) 観測側の損失と TCP 再送信は別のシグナルであり、時刻/フローとの照合と追加の証拠が必要である。
    • D) リモート側のエンドポイントで受信バッファーが枯渇したに違いない。
解答を表示

解答: C

解説: キャプチャドロップは、観測側で配信または処理できる限界を示すもので、経路上のパケット配信状況を直接示すものではありません。TCP は損失、順序の入れ替わり、誤検知されたタイムアウトなどで再送信することがあります。どちらのカウンターだけでも、障害コンポーネントは特定できません。同じ時間帯と接続タプルを照合し、仮説の検証に必要であれば両エンドポイントを使ってください。

  1. bpftool net show でアタッチメントが報告されました。対象のフローを高速化したと主張するには、追加でどの証拠が必要ですか?
    • A) 不要。アタッチされていれば高速化したと言える。
    • B) フロー/フックとの対応、定義済みの比較、実際の性能測定、観測オーバーヘッドの計上。
    • C) BPF プログラムの名前だけ。
    • D) 別のホストで権限チェックに失敗したこと。
解答を表示

解答: B

解説: インベントリは、実行や性能を示す証拠ではありません。Native XDP、generic XDP、TC はそれぞれ位置が異なります。有効な比較には、明示したワークロードと測定条件が必要です。トレースの欠落やオーバーヘッドも考慮してください。権限不足で観測できないことは、BPF が存在しないことを意味しません。このワークブックではプログラムをロードしません。

  1. あるフェーズで 5 件のリクエストは成功しましたが、定期的な ss のサンプルの大半は空でした。適切な報告はどれですか?
    • A) 本番環境の p99 が証明され、ソケットが一つもなかったと主張する。
    • B) 実際のサンプル数、最小値/中央値/最大値を示し、短時間の接続ではサンプリング漏れがあり得ると記す。
    • C) ソケットが見つからなかったすべてのサンプルのレイテンシーをゼロとする。
    • D) 最大の echo 本文だけから NIC の最大スループットを計算する。
解答を表示

解答: B

解説: 短い接続は観測間隔の合間に完了することがあります。5 件のトランザクションサンプルは、簡単な記述的レポートには使えますが、信頼できるテールレイテンシーのサービス目標を示すには不十分です。データがないことはゼロを意味しません。ペイロードをトランザクション時間で割った値は、アプリケーションや接続処理を含む操作単位のグッドプットであり、NIC のラインレートではありません。

  1. ワークブックの要件を満たす復元計画はどれですか?
  • A) ホストのルート qdisc を置き換えた後に削除し、以前の階層に戻ったとみなす。
  • B) すべての経路を消去し、Python プロセスをすべて終了させる。
  • C) 所有する loopback プロセスだけを停止してリスナーの消去を確認する。別途、所有範囲、変更前の状態、正確な復元方法を定義するまでは、netem は設計検討にとどめる。
  • D) 観測できない情報があるときは、共有の安全対策を無効にする。
解答を表示

解答: C

解説: 基本の実行では、ネットワークのグローバル設定を変更しません。後片付けの対象は、自分が所有するプロセスとファイルに限られます。TIME_WAIT は通常どおり残る場合があります。qdisc を削除しても、任意の既存構成が再構築されるわけではありません。将来 netem 実験を行う場合は、専用の namespace/VM の境界を設け、記録したリソースだけを正確に復元または破棄してください。

ワークブックの完了条件または上級コースのマップに戻る。

ドキュメントに質問する

Enter で送信、Shift+Enter で改行します。