暗い嵐の夜、ビッグウェーブライン(G +)タクシーのプラットフォーム上の特別オファーは、非常に多くのシングルです。(下図のように)それ以来、使用戦いスマート迅速なサービスカーのプラットフォームは、直接嘘の巣を運ぶことができませんでした。その後、諜報機関の担当を決めるために満たす後、当局の開発・運用・保守を促した:すぐに包括的なイン深パフォーマンス徹底的にインテリジェント迅速なサービスを実施しなければなりません!今すぐ!すぐに!
だから、大きな塊対向問題:このような背景のサービスのためのスマートのヒントは、パフォーマンステストでは、これらの指標を心配すべきですか?これらの指標の意味は何ですか?どのような基準でこれらの指標は何ですか?以下は、あなたがそれに答えるでしょう。
アウトライン
異なるグループのパフォーマンスを懸念が異なる強調しています。バックグラウンドサービスの発信者インターフェイスは、一般的に、スループット、応答時間や他の外部の指標にのみ関心があります。バックグラウンドサービスの所有者だけでなく、外部指標を懸念しているが、また、内部ようにメトリックCPU、メモリ、負荷とを重視しました。
IntelliSenseの外部インジケータは、トラフィックの急増を耐えることができるとタクシーのプラットフォームを取る、それが原因の大きな波に譲歩を引き起こし懸念しています。外部指標を心配するだけでなく、CPU、メモリ、IOや他の内部の指標だけでなく、運用・保守の展開、サーバーのハードウェアおよびソフトウェアの構成に関する事項について心配するだけでなく、インテリジェント迅速なサービス、運用、保守、テスター、開発のためとして。
外部指標
外部から、性能試験は、次の3つの指標に焦点を当て
-
スループット:第二のシステムあたりに処理できる要求の数、タスクの数。
-
応答時間:サービス要求や時間のかかるタスクを処理します。
-
エラーレート:要求の要求バッチの割合の結果でエラーが発生しました。
指標は、時間が特定のサービスに依存して応答します。スマート迅速なサービスのクラスは、有効期間が短いデータを返すよう(マルチユーザーが文字の要求を再入力する必要があります)、リアルタイム要件が比較的高く、一般的に未満100ミリ秒の応答時間の上限。結果は、比較的長い期間(全体ナビゲーション処理)を使用して返されたので、ナビゲーション・サービス・クラスは、応答時間の上限は、一般に、2-5sです。
統計的な応答時間のために、複数の角度、0.90、0.99、統計的分布ではなく、平均値を意味すべきであるが与えられます。以下は、応答時間の統計の例です。
スループット表示され、応答時間、サーバーのハードウェアとソフトウェアの構成、およびその他の要因には、ネットワークの状態に影響を与えます。
-
応答時間が長く、スループットより。
-
スループットも大きく、サーバーのハードウェア構成が高いです。
-
スループット小さいネットワーク貧しいです。
低スループットでの平均レスポンスタイムで、安定した分布は、あまり変動がありません。
高スループットでは、応答時間とスループットは成長傾向の成長とともに増加する直鎖状であってもよい、それはまた、インデックスに近いかもしれません。ときに、システムのピークスループットに近い、サージの応答時間が発生します。
エラー率と依存サービスの実装。典型的には、このようなネットワークのタイムアウトによって引き起こされるなどの外部要因による誤差の割合が原因自体が1%を超えてはならないサービスにエラーレートが得られ、5 %%を超えてはなりません。
内部指標
サーバーの観点からは、性能試験等CPU、メモリ、サーバ負荷、ネットワーク、ディスクIO、に焦点を当てました
CPU
すべての命令およびバックグラウンドデータ処理サービスは、CPUの責任である、サービスは、サービスのCPU使用率のパフォーマンスに決定的な役割を果たしています。
LinuxシステムのCPUの主な統計データは、いくつかの次元を次の
-
私たち:ユーザーモードの割合で使用されるCPU時間
-
SY:使用されたCPU時間のシステム状態の割合
-
NI:ユーザーモードの割合に割り当てられた素敵な中古重み付け処理のCPU時間
-
ID:アイドル時のCPUの割合
-
WA:IO完了率のためのCPUウェイト
-
HI:時間のかかるハードウェア割り込みの割合
-
SIは:ソフトかかる時間の割合を中断します
図は、サーバー上のコマンドでサービスを転送するオープンプラットフォームの出力ラインで、このCPUを持つ例えば、以下のサービスは、指標に記述されています
私たち&SY:ほとんどのサービスは私たちを占めるとSYの比率が最も高いCPUタイムスライスのバックグラウンドを使用します。同時に、これら2つの指標は、その逆も互いに影響し合う、私たちの割合が高い、低いのSYの割合、およびです。一般的には、測定された比は、システムとユーザーモードの間に高すぎるSYサービスが頻繁に切り替え、その後、いくつかの減少、システム全体のパフォーマンスがあるであろうことを意味しています。また、CPU 0に使用方法が高すぎる、サーバー上のマルチコアCPUの使用、責任ある原子力CPU 0 CPU間のスケジューリングは、CPUコアとの間に他のスケジューリング効率につながる可能性が低いです。そのため、テストCPU 0の間に集中する必要があります。
NI:各Linuxプロセスが優先され、優先順位の高いプロセスが、これはPRIと呼ばれているの実装に右の優先順位を持っています。プロセスの優先度に加えて、補正値の優先順位があります。この補正値は、プロセスのnice値と呼ばれています。一般的には、測定されたサービスおよびサーバー全体のNI値が非常に高いではありません。テスト値niの中に比較的高い場合は、Linuxサーバシステムを設定する必要があり、原因を見つけるために、サービスの動作パラメータを測定
ID:オンラインサービスを実行するプロセス、予期せぬトラフィックの急増に対処するための冗長IDをある程度維持する必要があります。idが低かった場合には、パフォーマンステスト中、スループットを増加させない、あなたはテストサーバースレッド/プロセスの設定、サーバシステムの構成を確認する必要があります。
WA:ディスク、ネットワーク、およびその他のIO操作が増加したCPUのWA指標につながります。一般的に、ネットワークIOがwa資源が非常に高いものではなく、頻繁にディスクが読み取りおよび書き込みWAサージにつながることができます占めていました。サービスはIO集約型のサービスを測定していない場合は、ログサービス、データローディング周波数の測定量かどうかを確認する必要があります。
SI&HI:ハードウェア割り込みがCPUに周辺割り込みで、CPUやメモリに送られ、周辺ハードウエアは、非同期信号のハードウェア割り込み信号であり、ソフト、オペレーティングシステムのカーネルソフトウェア自体によって発行され、割り込み信号を中断。通常、オペレーティングシステムカーネルの割り込みハンドラやハードウェア割り込み処理のスケジューリングプログラムでは、それは我々が多くの場合、システムコール(システムコール)と言う、です。パフォーマンステストでは、ハイテクそこにいくつかのCPU使用率であってもよいが、高すぎません。IO集約型サービスの場合、CPU占有率が高いSIになります。
メモリ
モニタリングの主な目的のためのパフォーマンステストは、占有メモリのメモリ・テスト・サービス変動をチェックすることです。
図に示すように、指定されたプロセスのメモリ使用状況を取得するためのコマンド、複数のLinuxシステムでは、それは、最も一般的に使用されるトップコマンドです。
間で
-
VIRT:プロセスが使用する仮想メモリの合計数。すべてのメモリは合計で適用している、それはすべてのコード、データが含まれており、共有ライブラリプラスのページがスワップアウトされています
-
RES:メモリセグメント後の物理メモリ(スタック、ヒープ)は交換プロセスが使用されない、アプリケーションメモリが再割り当てされています
-
SHR:プロセスは、共有メモリの合計数を使用します。この値は、単に、他のプロセスのメモリを共有し、それは、このメモリは、現在他のプロセスによって使用されていることを意味するものではない反映することができます
-
SWAP:プロセスによって使用される仮想メモリが交換のサイズが適用されていることであるスワップアウトされているが、スペースを含めて、使用されていない(スタック、ヒープ、共有メモリ)
-
DATA:プロセス実行可能コード以外の物理メモリの合計、すなわち、プロセス・スタック、ヒープの合計スペースアプリケーション
共有メモリマルチプロセスアーキテクチャのサービスを使用して上記の説明では、メインテストプロセス監視RESとVIRTから分かるだけでなく、ソファ制御SHRを監視する必要があることができます。
LOAD(サーバーの負荷)
負荷を実行しているLinuxシステムでは、CPUを待っているプロセスの平均数である平均キュー長を指し
サーバー負荷の定義からわかるように、理想的な状態を実行しているサーバーは、すべてのCPUの実行キューのコアはつまり、すべてのアクティブなプロセスは、待ち時間なしに実行されていない、1です。この状態でサーバが負荷しきい値の下で実行されています。
両方は、サーバーのパフォーマンスのほとんどを使用するだけでなく、トラフィックの増加に対処するためのいくつかの冗長性を残すように、通常の状況下では、経験に応じて、サーバーの負荷は、しきい値の80%に70%にする必要があります。
Linuxは、最も一般的に使用されるトップと稼働時間で、システムの負荷の多くを見るためのコマンドを提供します
稼働時間と同じ内容を出力するためのトップロード、システムは最近、1分、5分、平均負荷の15分です
次のようにシステム負荷しきい値コマンドがある見ます
パフォーマンステスト中は、システム負荷は、システム全体の健全性評価の最も重要な指標の一つです。典型的には、圧力が試験システムに近くあるべきではなく、負荷が閾値を超え、最大同時試験80%の閾値、及び場合安定性試験超えることができないシステム負荷は、システムが負荷閾値の約50%であるべきです。
ネットワーク
監視ネットワークのパフォーマンステストは、ネットワーク接続状態をネットワークトラフィックを監視することを含みます。
ネットワークトラフィックの監視
あなたはnethogsコマンドを使用することができます。このコマンドは、先頭に似ているリアルタイムの対話型のコマンドで、インターフェイスを実行し、次のようです
バックグラウンドサービスのパフォーマンス・テストでは、リターンテキストサービスの結果は、交通の面で多くの注目を必要としません。
ネットワーク接続状態の監視
主な変更点や異常のネットワーク接続状態を監視するネットワークテストのパフォーマンスの監視。TCPプロトコルのサービスについては、サービスの変化を監視する必要があるが、接続(状態を確立した、すなわちTCPコネクション)確立されています。サービスのためのHTTPプロトコルは、測定プロセス、数TIME_WAIT状態に対応するネットワークサービスのバッファの状態を監視する必要があります。Linuxは、このようなnetstatコマンドなどのコマンドの多くが付属して、SSは上記の機能をサポートしています。図は、指定されたPID netstatの監視処理の結果であります
ディスクIO
、IO状態を待っている多数の要求、システムの負荷が増加につながるテストディスクがあまりにも頻繁にサービスを読み書き場合はパフォーマンステストは、応答時間が長くなり、スループットが低下します。
Linuxのiostatコマンドの下では以下に示すように、ディスクの状態を監視するために使用することができます
-
TPS:第二の装置当たりの転送回数。「最初の送信は」「1つのI / O要求」を意味します。論理リクエストを複数に結合されてもよい「1つのI / O要求を発行します。」「最初の送信」要求されたサイズは不明です
-
kB_read /秒:第2のデバイスからのデータの量が(driveexpressed)単位キロバイトを読み取ります
-
S kB_wrtn /:第二の装置へのデータの量(driveexpressed)キロバイト単位で書き込ま
-
kB_read:データ読み出し部キロバイトの合計量
-
kB_wrtn:キロバイト書き込まれたデータ単位の総数の量
iostatの出力から、最も基本的な統計を実行しているシステムを取得することが可能です。しかし、性能試験のために、これらのデータは、より多くの情報を提供することはできません。パラメータを追加する必要があります-X
-
rrqm / S:同じ読み出し要求と異なることが見出された場合、読み出し要求がマージをシステムコールは各FSに送られるリードデータ、VFS要求を必要とする第二の数を(関連付けられているこの装置は、FSが読みブロックデータは、FS)を合わせ、マージを要求します
-
wrqm / S:書き込み要求関連デバイスは、第2の数は、マージされ
-
待つ:各IO要求の平均処理時間(ミリ秒単位)
-
%使用率:すべてのIO処理時間の時間内に、総時間の統計値で割りました。例えば、1秒、0.8秒の統計的間隔は、デバイスは、IO処理、ビジーアイドル0.2秒、デバイスパラメータを意味し、その後装置%のutil = 0.8 / 1 = 80%を有する場合。
一般的なパフォーマンスのボトルネック
-
特定の負荷にまだ上限閾値システムに達していない:システムは、一般的に少なすぎる原因と資源配分のサービスを測定しています。スレッドの数は、問題を見つけるために、このような場合のテストは、ulimitから開くことができ、システム、割り当てられたメモリ及び他の寸法中に検出された場合
-
CPU 私たちのとSYは高くありませんが、WA 高:測定されたサービスは、ディスクIO集約型のサービスの種類がある場合は、高Waは正常な現象です。しかし、それは、このようなサービスではない場合、最も可能性の高い原因は、ビジネスロジックを読み書きするディスクの問題が2倍、最初のサービスである、高周波の理由は、読み取りと書き込みのWAを、データを書き込むには高すぎる大きすぎる、など無理な負荷データなど戦略、あまりにも多くのログは、この問題を引き起こす可能性があります。第二に、サーバーメモリの不足は、スワップパーティションでノンストップサービスがスワップアウト。
-
応答時間が急に大小の同じ要求:この問題は、通常のスループットの下で発生し、それは時間の過ごし、多くの間、特定のリクエストを処理し、その結果、二つの理由、論理リソースをロックするための問題の最初の、サービスが可能ですロック解除リソースを待って、2番目は、Linux自体のサービスに割り当てられたリソースが限られている、いくつかの要求が継続するためのリソースを解放した後、別の要求を待つ必要があります。
-
メモリは上昇し続け:メモリが上昇し続けた場合、固定スループット前提で、メモリチェックなど、重要なメモリリークテストサービスは、valgrindのツールの位置を使用する必要がある可能性が高いです。
(栗)の例について
サービスの後に巣を横たわっスマートヒントは、すぐに徹底的にそのパフォーマンスを行う必要があります。現在の状況下で、試験結果を外部の指標と内部インジケータを提供する必要があります。
各モジュールインテリジェントアラートサービスの構造及び機能を以下に示すように
私たちは、サービスのパフォーマンスによって促さ基礎となるデータ・サービスのインテリジェンスが上限に決定されているテストする前に、図から見ることができます。したがって、このテストは、基礎となるデータサービスのパフォーマンスで私たちのタスクは、前提を3500qps各モジュールスマートヒントアップストリームサービスのパフォーマンスの上限を見つけることです。
図に示すように、バックグラウンドサービスの完全な性能試験手順。
テストの準備:
-
テストデータ:スマートはすでにオンラインで実行するように求められているため、インテリジェンスのヒントを使用して、このテストでは、テストデータとしてネスト日横たわってログインします
-
QPS予測:このテストでは、この番号を見つけることです
-
サーバー構成:同じハードウェアとソフトウェアの構成やオンラインサーバーを使用します
圧力測定方法:
我々は、ユーザ要求、図に示すように使用された元のテストコンフィギュレーションファイルのJMeterをシミュレートするためのJMeter送信テストデータを使用します。図から分かるように、性能テストプロファイルコンフィギュレーションファイルは、データから成る(スレッド方式で共有等、行動の終わりに達する)、スループットを制御し、(等ドメイン名、ポート、HTTPメソッド、本体を要求する)HTTPサンプラ、アサーションに応答して(返された結果の内容を確認します)。
データ・プロファイリング
スループット制御
HTTPリクエストのサンプル
アサーションに応答して、
CPU
Linuxでは、SARは、トップ、PSおよびその他のコマンドは、CPUの使用状況を監視することができます。一般的に、最も一般的に使用されるtopコマンドです。次のようにトップ出力コマンドは次のとおりです。
topコマンドは、対話型コマンドの実行は、常にターミナルに残り、定期的に更新されますです。パフォーマンステストでは、次のパラメータは、一度だけ実行するtopコマンドを作るために使用することができます
$トップ-n 1 -b -p $ {PID}
サーバー負荷
Linuxでは、uptimeコマンドは、サーバーの負荷を使用して取得した、コマンドの出力を以下に示します。
次のように各列の意味は次のとおりです。
「ユーザーの数は、現在、システムが最後の1分、5分、15分、負荷平均を実行している長い時間のログオン」
メモリ
Linuxでは、トップ、psコマンドは、指定されたプロセスのメモリ使用量で見ることができます。しかし、図に以下に記載されるように/ proc / $ {PID} /状態の最も正確な情報、。
上記のコマンドの出力は、我々はVmRSS、VmData、VmSizeに注力します
ディスクIO
ディスクの監視データを取得するためにiostatコマンドを使用して
テストレポート出力
性能テスト中に収集された統計モニタリング指標が完了した後、パフォーマンスレポートを出力することができます。
一般的には、以下のものが含まれるレポートのパフォーマンス:
-
テスト結論:期待、展開勧告に達した測定サービスの最大QPS、応答時間と他のメトリックが含まれます。
-
テスト環境説明:パフォーマンス要件、サーバとテスト設定、テストデータのソース、試験方法を含みます
-
統計モニタリング指標:応答時間の統計、QPS、サーバー統計指標、プロセス指標の統計情報。これは、グラフィカルに統計データを表現するのが最善でしょう。
エピローグ
確かに、流れと+、不思議スマートヒントはうそない巣5000qpsについて暗い嵐の日を流し、テストの後、それは単一インテリジェンスサービスのパフォーマンスが迅速300qpsであると結論づけられた、全体のオンラインサービスのパフォーマンスは、スマートヒント1800qpsですあまりにも、ラインのスループット容量よりもはるかに。
最後に、スマートアラートサービスアプリケーションの展開のためのサーバー、および車は交通プラットフォームをヒットタクシーPの人々について、食べ物について、将来の暗い嵐の夜のワインについての公共性を確保するために、収入と支出の両方を制限されています経験は、およそ多様の成功率を向上させる、非常に高潔として記述することができます。
オリジナル住所https://cloud.tencent.com/developer/article/1038026