我正在编写一个收集整个系统I / O统计信息的应用程序。我想知道这两个计数器是否有页面输入和页面输出,
pgpgin
pgpgout
/ proc / vmstat中的包括写入和连接到系统的所有基于磁盘的块设备的页面。
请告诉我,如果可以的话!
答案 0 :(得分:4)
答案 1 :(得分:2)
请参阅Linux源代码,例如http://lxr.free-electrons.com/source/block/blk-core.c?v=4.6。在那里我们发现计数器是在private void BindPieces()
{
this.chessboard = new Chessboard(false);
this.pieces = new ObservableCollection<PieceViewModel>();
for (int square = 0; square < this.chessboard.Board.Length; square++)
{
int x = square % 8;
int y = square / 8;
Point position = new Point(x, y);
PieceViewModel pieceModel = new PieceViewModel()
{
PieceType = this.chessboard.Board[square].OccupiedBy.Type,
Color = this.chessboard.Board[square].OccupiedBy.Color,
Position = position
};
this.pieces.Add(pieceModel);
}
this.ChessboardUI.ItemsSource = this.pieces;
}
函数中维护的,它似乎计算任何磁盘i / o(参见其在http://lxr.free-electrons.com/ident?v=4.6;i=submit_bio处的用途),不要与操作系统分页混淆(https://en.wikipedia.org/wiki/Paging)。
答案 2 :(得分:0)
我不明白为什么不。我的意思是,当你收到页面故障时,所需的块可以来自任何地方,具体取决于哪些文件系统安装在VFS中的位置(即内存映射的i / o)或交换出进程空间以交换文件系统/文件。 我不明白为什么不会计算所有的blockdevices,因为它们都可以用于分页(但这取决于你对它们有什么样的文件系统以及你如何使用它们)
答案 3 :(得分:0)
这可能不合时宜,但我做了
man vmstat
发现文件可以被读取,或者有一个可以用同一个名字调用的bin。这将为您提供所有相同的东西,但您可以通过适当的开关优点以不同的方式请求它。 bin报告的各种计数器都有一小堆描述。
希望它有所帮助, 约什