sar -Wとsar -B出力の違いは何ですか?似ているように見えますが、マニュアルページではこの問題についてさらに混乱するだけです。誰でもこの問題を明確に説明できますか?
答え1
スイッチは後で来た-W
元のスイッチのようです。-B
マニュアルページのコメントにもこの内容が出ているようです。この-B
スイッチには、最新バージョンのLinuxカーネル(2.5以降)で公開されている最新の統計があります。
-W
使用法
-Wは交換統計を報告します。次の値が表示されます。
pswpin/s Total number of swap pages the system brought in per second. pswpout/s Total number of swap pages the system brought out per second.
-B
使用法
-Bはページング統計を報告します。以下の指標の一部は、2.5以降のカーネルにのみ適用されます。次の値が表示されます。
pgpgin/s Total number of kilobytes the system paged in from disk per second. Note: With old kernels (2.2.x) this value is a number of blocks per second (and not kilobytes). pgpgout/s Total number of kilobytes the system paged out to disk per second. Note: With old kernels (2.2.x) this value is a number of blocks per second (and not kilobytes). fault/s Number of page faults (major + minor) made by the system per second. This is not a count of page faults that generate I/O, because some page faults can be resolved without I/O. majflt/s Number of major faults the system has made per second, those which have required loading a memory page from disk. pgfree/s Number of pages placed on the free list by the system per second. pgscank/s Number of pages scanned by the kswapd daemon per second. pgscand/s Number of pages scanned directly per second. pgsteal/s Number of pages the system has reclaimed from cache (pagecache and swapcache) per second to satisfy its memory demands. %vmeff Calculated as pgsteal / pgscan, this is a metric of the efficiency of page reclaim. If it is near 100% then almost every page coming off the tail of the inactive list is being reaped. If it gets too low (e.g. less than 30%) then the virtual memory is having some difficulty. This field is displayed as zero if no pages have been scanned during the interval of time.
はい
-B
そしてswitchの出力を見ると、-W
違いを明確にするのに役立ちます。
-W
$ sar -W
02:50:01 PM pswpin/s pswpout/s
03:00:01 PM 0.57 1.71
03:10:01 PM 0.31 0.02
03:20:01 PM 0.80 1.25
03:30:01 PM 0.41 0.68
03:40:01 PM 0.57 1.02
03:50:01 PM 0.88 0.00
-雨
$ sar -B
02:50:01 PM pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
03:00:01 PM 96.10 615.25 6113.00 0.44 7612.77 105.80 0.00 96.48 91.19
03:10:01 PM 14.91 562.47 5250.07 0.17 7029.09 26.63 0.00 23.72 89.08
03:20:01 PM 16.95 620.39 7265.82 0.26 9115.73 92.36 0.11 83.01 89.77
03:30:01 PM 28.84 566.17 8768.76 0.21 10750.77 63.20 0.21 58.65 92.49
03:40:01 PM 16.05 641.84 10343.84 0.31 12473.88 45.40 0.11 41.01 90.11
03:50:01 PM 18.20 647.99 10272.98 0.25 12187.26 0.00 0.00 0.00 0.00
違いは、-W
データが1秒に入って来るページの数に関連し、スイッチが-B
1秒に入って来る総データ量(キロバイト)を表示することです。
答え2
sar -B
私が見るには、マニュアルページが間違っているようです。 Linuxのソースコードによるとhttp://lxr.free-electrons.com/source/mm/page_io.c?v=4.6、PSWPINはから増加しますswap_readpage()
。関数をクリックすると、クラシック仮想swap_readpage()
メモリカーネルページングを処理するために直接呼び出されることがわかります(スワップと混同しないでください)。つまり、ディスクをシステムメモリのアクセサリとして使用するときに使用されます。
submit_bio()
PGPGINは次のように保持されます。http://lxr.free-electrons.com/source/block/blk-core.c?v=4.6。これをクリックすると、より一般的なディスクI / Oに使用されていることがわかります。
したがってsar -W
、 のカウンタは仮想メモリに関連するページを指定します(「スワップ」は最近非常にゆるく使われる用語で、一般に「ハードディスクにプロセスメモリブロックを格納することに関連する」を意味すると思います)。
sar -B
ディスクI / Oがある場合、カウンタ(少なくとも数個)が更新されます。たとえば、他のカウンタはfault/s
プロセスにすぐにアクセスできないメモリページを処理します(参照:http://linoxy.com/linux-command/commands-to-understand-page-faults-in-linux/、 "...要求されたページがメインメモリにあるが初期化されていないメモリまたはCOW(記録中にコピー)ページが原因でプロセスがそのページにアクセスできない場合は、これをマイナーページエラーと呼びます...")。 Google は、彼らが計算する内容が正確に何であるかをよりよく理解するのに役立ちます。