[再投稿] CPUコンテキストの切り替え(下記)

CPUコンテキストスイッチ(下記)

https:// www.jianshu.com/p/9efdef39af64

 

過度のコンテキスト切り替えは、レジスター、カーネルスタック、仮想メモリなどのデータのストレージと復元でCPU時間を消費し、プロセスが実際に実行されている時間を短縮し、システムパフォーマンスの原因となります。

コンテキストの切り替えはシステムのパフォーマンスに非常に大きな影響を与えるため、コンテキストの切り替えをどのように見ますか。ここでは、vmstatツールを使用して、システムのコンテキスト切り替えを照会できます。

vmstatは一般的に使用されるシステムパフォーマンス分析ツールであり、主にシステムのメモリ使用量を分析するために使用されます。また、CPUコンテキストの切り替えと割り込みの数を分析するためにも一般的に使用されます。

たとえば、次はvmstatの使用例です。


# 每隔5秒输出1组数据
$ vmstat 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 7005360 91564 818900 0 0 0 0 25 33 0 0 100 0 0 

この結果を一緒に見てみましょう。まず、各列の意味を自分で解釈してみることができます。ここでは、特に注意が必要な次の4つの列を強調します。

  • cs(コンテキストスイッチ)は、1秒あたりのコンテキストスイッチの数です。
  • in(interrupt)は、1秒あたりの割り込み数です。
  • r(実行中または実行可能)は、実行可能キューの長さです。これは、CPUを実行して待機しているプロセスの数です。
  • b(ブロック)は、割り込み不可能なスリープ状態にあるプロセスの数です。

この例のコンテキストスイッチcsの数は33、システム割り込みの数は25、レディキューの長さrと割り込み不可能なプロセスbの数はどちらも0であることがわかります。

vmstatはシステムの全体的なコンテキスト切り替えのみを提供します各プロセスの詳細を表示するには、前述のpidstatを使用する必要があります。それを-wオプションに追加すると、各プロセスのコンテキスト切り替えを表示できます。

たとえば、次のとおりです。


# 每隔5秒输出1组数据
$ pidstat -w 5
Linux 4.15.0 (ubuntu) 09/23/18 _x86_64_ (2 CPU) 08:18:26 UID PID cswch/s nvcswch/s Command 08:18:31 0 1 0.20 0.00 systemd 08:18:31 0 8 5.40 0.00 rcu_sched ... 

この結果には、注目する2つの列のコンテンツがあります。1つは、1秒あたりの自発的なコンテキストスイッチの数を表すcswchで、もう1つは、1秒あたりの非自発的なコンテキストスイッチの数を表すnvcswchです。これらの2つの概念は異なるパフォーマンスの問題を意味するため、覚えておく必要があります。

  • いわゆる自発的なコンテキストスイッチとは、プロセスが必要なリソースを取得できないために発生するコンテキストスイッチを指します。たとえば、I / Oやメモリなどのシステムリソースが不足している場合、自発的なコンテキスト切り替えが発生します。

  • 非自発的コンテキスト切り替えとは、タイムスライスの期限が切れたためにプロセスがシステムによって強制的にスケジュールされるコンテキスト切り替えを指します。たとえば、多数のプロセスがCPUをめぐって競合している場合、不本意なコンテキスト切り替えが発生する傾向があります。

プロセスがリソースを待っていることを示す、より多くの自発的なコンテキストスイッチがあり、I / Oなどの他の問題が発生する可能性があります。

非自発的なコンテキストの切り替えが増加し、プロセスがスケジュールを強制されていること、つまり、すべてがCPUを求めて競合していることを示し、CPUが実際にボトルネックになったことを示しています。

割り込みの数が増加し、CPUが割り込みハンドラーによって占有されていることを示しています。/proc / interruptsファイルを確認して、特定の割り込みタイプを分析する必要があります。

原文

https://time.geekbang.org/column/article/70077

おすすめ

転載: www.cnblogs.com/jinanxiaolaohu/p/12687854.html
おすすめ