我运行了一个测试来测量我在 Linux 上的 I/O IOPS:
iozone -s 4g -r 2k -r 4k -r 8k -r 16k -r 32k -O -b /tmp/results.xls
iozone 声称输出是以每秒操作数为单位的,但数字太大,因此不太可信。我观察到 vmware esx 控制台(esxtop,然后是 v)上的最大 CMDs/s 约为 320。
File size set to 4194304 KB
Record Size 2 KB
Record Size 4 KB
Record Size 8 KB
Record Size 16 KB
Record Size 32 KB
OPS Mode. Output is in operations per second.
Command line used: iozone -s 4g -r 2k -r 4k -r 8k -r 16k -r 32k -O -b tmpresults.xls
Time Resolution = 0.000001 seconds.
Processor cache size set to 1024 Kbytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.
random random bkwd record stride
KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
4194304 2 19025 5580 27581 29848 284 198 415 1103217 1498 18541 4340 24245 25618
4194304 4 15650 21942 18962 21068 252 1198 193 976164 1677 22802 23093 21089 21232
4194304 8 11121 11638 10273 10165 247 1196 202 625020^C
在我按下 ^C 之前,测试运行了 15 个小时。这是对此类命令行的正常期望吗(专用的 4 驱动器 RAID10 LUN、EMC CX300 中的 10k RPM SAS 驱动器)?
答案1
奇怪的是,Linux 中似乎没有 IOPS 测量标准。当人们被要求提供容量规划或存储大小的 IOPS 估计值时,这些问题经常出现。我最终使用多种工具来获取此信息。首先,您需要使用您选择的方法生成负载;要么是代表性应用程序负载,要么是上面使用的 iozone 测试。
在另一个窗口中,使用 跟踪 IOPS iostat -dxk 1
,将 r/s 和 w/s 列相加,或者使用IBM 的 nmon 工具并可以D
选择跟踪该Xfers
列(本质上是 iostat 的 r/s 和 w/s 的总和)。
以下是nmon
使用(在目标目录中运行)进行大量顺序读取的输出bonnie++ -u root -n 64:100000:16:64
。此时,我们在 6 磁盘 RAID 1+0 阵列(15k RPM SAS 驱动器)上显示约 3200 IOPS,同时以约 258 兆字节/秒的速度读取。
- Disk I/O -----(/proc/diskstats)------- all data is Kbytes per second ---------------------------------------------
|DiskName Busy Read Write Xfers Size Peak% Peak-RW InFlight |
|iss/c0d0 100% 264571.1 112.3KB/s 3238.7 81.0KB 100% 340584.5KB/s 2 |
|s/c0d0p1 0% 0.0 0.0KB/s 0.0 0.0KB 0% 2.0KB/s 0 |
|s/c0d0p2 0% 0.0 0.0KB/s 0.0 0.0KB 99% 1022.4KB/s 0 |
|s/c0d0p3 0% 0.0 0.0KB/s 0.0 0.0KB 100% 3636.5KB/s 0 |
|s/c0d0p4 0% 0.0 0.0KB/s 0.0 0.0KB 0% 0.0KB/s 0 |
|s/c0d0p5 0% 0.0 0.0KB/s 0.0 0.0KB 0% 0.0KB/s 0 |
|s/c0d0p6 0% 0.0 0.0KB/s 0.0 0.0KB 0% 0.0KB/s 0 |
|s/c0d0p7 0% 0.0 41.9KB/s 7.5 5.0KB 100% 16103.5KB/s 0 |
|s/c0d0p8 0% 0.0 0.0KB/s 0.0 0.0KB 79% 147.8KB/s 0 |
|s/c0d0p9 100% 264571.1 64.4KB/s 3230.2 81.0KB 100% 340538.5KB/s 2 |
--------------------------------------------------------------------------------------------------------------------
答案2
基本上,您从缓存中获得了很多帮助,并且顺序性很好,但随机性,尤其是写入性似乎很低。