pgpgin和pgpgout - / proc / vmstat中的Linux计数器

时间:2009-10-20 10:56:57

标签: linux linux-kernel

我正在编写一个收集整个系统I / O统计信息的应用程序。我想知道这两个计数器是否有页面输入和页面输出,

pgpgin
pgpgout
/ proc / vmstat中的

包括写入和连接到系统的所有基于磁盘的块设备的页面。

请告诉我,如果可以的话!

4 个答案:

答案 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报告的各种计数器都有一小堆描述。

希望它有所帮助, 约什