本稿では、ネットワークプローブ分析アプリケーションを使用して実際の問題を解決するための実践チュートリアル事例を紹介します。
事例1:某ゲームの北米サーバーにおける断続的な高遅延障害の特定
事例の背景
あるゲームのアメリカサーバーで断続的な高遅延の問題が発生しました。CLSアラートがトリガーされ、中国 (香港) と上海の2つのプローブポイントからロサンゼルスのゲームサーバーへのICMP遅延(Ping)が平均150msから400ms以上に急上昇し、パケットロス率が1%未満から15%~25%に急増していることが表示され、中国本土と中国 (香港) から米国ロサンゼルスのデータセンターに接続するプレイヤーに影響を与えています。
主な課題
迅速かつ正確な根本原因の特定と復旧。
ソリューション
CLSに接続するネットワークプローブアプリケーションを導入し、リアルタイムのネットワーク品質アラートを設定して、問題を迅速に検出します。アラートが発生した場合は、ネットワーク品質分析ダッシュボードを使用して問題を迅速に特定します。フローは以下の通りです:
1. 監視の接続:CLSネットワークプローブアプリケーションを接続し、ネットワーク品質のプローブとデータ収集を実現します。詳細については、ネットワークプローブ分析の使用を参照してください。 2. アラートの設定:各ネットワークリンクの指標を統計し、接続失敗率が5%より大きい、ネットワーク遅延が400msより大きい、パケットロス率が5%より大きい、のいずれかの指標閾値を満たした場合にアラートをトリガーします。アラート通知には、アラートをトリガーした対応リンクのサーバー側とクライアント側の情報が表示されます。詳細な操作については、アラートポリシーの設定を参照してください。アラートステートメントの設定は以下の通りです: 接続失敗率を統計し、閾値を0.05(5%)より大きい値に設定します。
attribute.net.type:"ping" | SELECT concat(ip_to_country(cast(json_extract_scalar(attribute.net.origin, '$.netInfo.client_ip') AS varchar)), '-', ip_to_provider(cast(json_extract_scalar(attribute.net.origin, '$.netInfo.client_ip') AS varchar))) AS "クライアント", concat(ip_to_country(cast(json_extract_scalar(attribute.net.origin, '$.host_ip') AS varchar)), '-', ip_to_provider(cast(json_extract_scalar(attribute.net.origin, '$.host_ip') AS varchar))) AS "サーバー", count( case when cast(json_extract(attribute.net.origin, '$.responseNum') as bigint) = 0 then 1 else null end)*1.0/count(*) as "失敗率" GROUP BY "クライアント", "サーバー" ORDER BY "失敗率" DESC LIMIT 20
ネットワーク遅延を統計し、閾値を400(400ms)より大きい値に設定します。
attribute.net.type:"ping" | SELECT concat(ip_to_country(cast(json_extract_scalar(attribute.net.origin, '$.netInfo.client_ip') AS varchar)), '-', ip_to_provider(cast(json_extract_scalar(attribute.net.origin, '$.netInfo.client_ip') AS varchar))) AS "クライアント", concat(ip_to_country(cast(json_extract_scalar(attribute.net.origin, '$.host_ip') AS varchar)), '-', ip_to_provider(cast(json_extract_scalar(attribute.net.origin, '$.host_ip') AS varchar))) AS "サーバー", avg(cast(json_extract(attribute.net.origin, '$.latency') as double)) as "遅延" GROUP BY "クライアント", "サーバー" ORDER BY "遅延" DESC LIMIT 20
パケットロス率を統計し、閾値を0.05(5%)より大きい値に設定します。
attribute.net.type:"ping" | SELECT concat(ip_to_country(cast(json_extract_scalar(attribute.net.origin, '$.netInfo.client_ip') AS varchar)), '-', ip_to_provider(cast(json_extract_scalar(attribute.net.origin, '$.netInfo.client_ip') AS varchar))) AS "クライアント", concat(ip_to_country(cast(json_extract_scalar(attribute.net.origin, '$.host_ip') AS varchar)), '-', ip_to_provider(cast(json_extract_scalar(attribute.net.origin, '$.host_ip') AS varchar))) AS "サーバー", avg(cast(json_extract(attribute.net.origin, '$.loss') as double)) as "パケットロス率" GROUP BY "クライアント", "サーバー" ORDER BY "パケットロス率" DESC LIMIT 20
3. 分析診断:
アラートがトリガーされた後、まずアラート通知を確認し、異常が主に中国本土、中国 (香港)から米国へのリンクに集中していることを発見します。
ネットワーク品質分析_MTR分析ダッシュボードを開き、リンクの各ホップ分析にドリルダウンします。MTRプローブ結果詳細を表示し、任意の異常レコードを選択して、詳細を表示をクリックします。以下の情報を確認できます:
第1~5ホップ(ローカルキャリアネットワーク):遅延とパケットロスはともに正常です。
第6ホップ:中国電信国際出口に入ります(IP帰属 202.97.*.*)。
第7~9ホップ:202.97.*.*系列ノードを経由する際に、パケットロス率が20%~30%に急上昇し、平均遅延が50msから300msに跳ね上がります。
第10ホップ以降(米国国内ネットワークに入った後):パケットロス率は1%以下に戻りますが、遅延の基準値は前区間の輻輳により高くなっています。
4. 根本原因の特定:障害点は中国電信の北米方向の国際バックボーンネットワーク出口ノードに高度に集中しています。この時間帯は国内の夜間インターネット利用ピークと重なり、さらに米国西海岸の週末ゲームピークも重なったため、クロスボーダーリンクの輻輳を引き起こしました。
事例2:PING分析によるFPSゲーム体験の向上
事例の背景
あるファーストパーソンシューティングゲームは、世界中の複数のデータセンターにバトルサーバーをデプロイしています。プレイヤーはマッチングルールに基づいて異なるサーバーに割り当てられ、対戦を行います。ネットワーク遅延は操作応答とゲーム体験に直接影響するため、リアルタイムのネットワーク品質に基づいて、プレイヤーを低遅延のバトルサーバーに優先的に割り当てる必要があります。
主な課題
従来の静的割り当てや単純に地理的近接性のみに基づく戦略では、地域的なネットワーク輻輳やクロスボーダーリンクの不安定性など、ネットワーク状況の動的変動に適応することが難しく、プレイヤーが継続的に高遅延に直面する可能性があり、公平性と体験に影響を及ぼします。
ソリューション
CLSネットワークプローブアプリケーションを導入し、各地域のプレイヤーから異なるバトルサーバーへのリンク遅延を継続的に監視してデータ分析を行い、その結果に基づいてマッチング戦略を動的に調整し、全体的なネットワーク体験を最適化します。事例の実践フローは以下の通りです:
1. 監視の接続:CLSネットワークプローブアプリケーションを接続し、「プレイヤー-サーバー」リンクのネットワーク品質プローブとデータ収集を実現します。詳細については、ネットワークプローブ分析の使用を参照してください。 2. 分析診断:ネットワーク品質分析_PING分析ダッシュボードで、各リンクの遅延とサーバー負荷をリアルタイムに確認します。本ケースでは、中国のプレイヤーが現在4つの地域のサーバーに割り当てられており、ロシアのサーバーへのリンク遅延が一般的に200msを超えている一方で、フランスのサーバーは同時刻の遅延が低く、負荷も低いことが判明しました。 3. 戦略の最適化:データインサイトに基づいてマッチングルールを調整し、国際対戦時に中国のプレイヤーを優先的にフランスのサーバーへ割り当てるようにし、ロシアのサーバーの割り当て優先度を大幅に下げることで、プレイヤーをより良いリンクへ迅速に誘導します。
実施効果
上記のデータ駆動型の動的スケジューリングにより、高遅延リンクを効果的に回避し、影響を受けるプレイヤーの平均ネットワーク遅延を大幅に低減し、対戦体験の滑らかさと公平性を向上させました。