システム全体のI/O統計を収集するアプリケーションを作成しています。ページインとページアウトの2つのカウンターがあるかどうか疑問に思いました。
pgpgin
pgpgout
/ proc / vmstatには、システムに接続されているすべてのディスクベースのブロックデバイスに書き込まれ、そこから読み取られるページが含まれます。
できれば教えてください!
システム全体のI/O統計を収集するアプリケーションを作成しています。ページインとページアウトの2つのカウンターがあるかどうか疑問に思いました。
pgpgin
pgpgout
/ proc / vmstatには、システムに接続されているすべてのディスクベースのブロックデバイスに書き込まれ、そこから読み取られるページが含まれます。
できれば教えてください!
ページはスワップパーティションとの間で書き込まれます。数字は、それらがどのパーティションに書き込まれたかを示すものではなく、ページングイベントが発生したことのみを示します。
ディスクIO統計を確認する場合は、ブロックデバイスIOカウンターの/ proc/diskstatsまたは/sys/ block / */statを確認する必要があります。
vmstatに関するこの記事は、ページングカウンターの意味を理解するのに役立ちます:http ://www.linuxjournal.com/article/8178
Linuxのソースコードを参照してください。たとえば、http://lxr.free-electrons.com/source/block/blk-core.c?v=4.6にあります。そこで、カウンターが関数内で維持されていることがわかります。このsubmit_bio()
関数は、任意のディスクi / oをカウントしているように見えます(たとえば、http://lxr.free-electrons.com/ident?v = 4.6 ; i=でその使用法を参照してください)。 submit_bio )、オペレーティングシステムのページング( https://en.wikipedia.org/wiki/Paging )と混同しないでください。
なぜだかわかりません。つまり、ページフォールトが発生した場合、VFSのどこにマウントされているファイルシステム(つまり、メモリマップドI / O)に応じて、必要なブロックはどこからでも発生する可能性があります。または、プロセススペースをスワップアウトしてファイルシステム/ファイルをスワップします。すべてのブロックデバイスがページングに使用される可能性があるため、すべてのブロックデバイスがカウントされない理由はわかりません(ただし、ブロックデバイス上にあるファイルシステムとその使用方法によって異なります)
これは時期尚早かもしれませんが、私は
man vmstat
ファイルを読み取ることができるか、同じ名前で呼び出すことができるビンがあることがわかりました。これにより、すべて同じものが得られますが、適切なスイッチの良さを使用して、さまざまな方法で要求できます。ビンが報告するさまざまなカウンターの説明がたくさんあります。
お役に立てば幸いです、ジョシュ