0

在“vmstat”的早期版本中,设备次要版本用于确定它是分区还是磁盘(0 => 磁盘和>0 => 分区)。我不正确吗?然后,从内核版本 2.6.x 开始,一些指标仅在磁盘级别测量,因此解析算法基于与设备关联的指标数量(11 个指标 => 磁盘和 4 个指标 => 分区)。

但是,在内核版本 2.6.18 中,还有 11 个分区指标,并且 RAM 驱动器的次要设备号也大于 0。见下文:

   1    0 ram0 0 0 0 0 0 0 0 0 0 0 0
   1    1 ram1 0 0 0 0 0 0 0 0 0 0 0
   1    2 ram2 0 0 0 0 0 0 0 0 0 0 0
   1    3 ram3 0 0 0 0 0 0 0 0 0 0 0
   3    0 hda 364304 44416 9757168 9689046 18080864 19417076 299988386 1952073601 0 167032032 1961762954
   3    1 hda1 170 1105 2566 2352 5 0 10 13 0 1854 2365
   3    2 hda2 364112 43281 9754186 9686147 18080859 19417076 299988376 1952073588 0 167031121 1961760042
 253    0 dm-0 405386 0 9738418 14371284 37409328 0 299274624 2479168190 0 167053870 2493542151
 253    1 dm-1 1906 0 15248 70026 89219 0 713752 70030052 0 70247 70100078
  22   64 hdd 0 0 0 0 0 0 0 0 0 0 0
   2    0 fd0 0 0 0 0 0 0 0 0 0 0 0
   9    0 md0 0 0 0 0 0 0 0 0 0 0 0

在这种情况下,如何将分区与磁盘分开?我的最终目标是确定系统的整体 I/O。在这方面的任何帮助将不胜感激。

4

2 回答 2

1

也许看看现有的程序做了什么?dstat 是一个很好的,用 python 编写的。iostat 是旧的传统,它的 -x 输出只包括磁盘(和设备映射器设备),而不是分区。

于 2009-12-10T00:21:55.923 回答
0

嗯...当然这是我第一个看的地方。不过,我对结果并不十分满意。但是,这就是我发现的:

-- 运行iostat -dkx,您将在系统中的每个磁盘中读取和写入 KBytes/sec。iostat 使用相当复杂的公式来完成它。

-- 将任何 2.6.x 内核中的块输入和块输出 (pgpginpgpgout) 的计数器值乘以 1024,得到完全相同的答案!

于 2009-12-10T16:09:28.383 回答