我在CenTOS 5.x虚拟机上间歇性地发现磁盘读写速度很慢。
有时hdparm会报告:
/dev/sda3: Timing buffered disk reads: 6 MB in 3.03 seconds = 2.04 MB/sec
其他时候,它会报告:
/dev/sda3: Timing buffered disk reads: 80 MB in 3.53 seconds = 22.34 MB/sec
我倾向于怀疑VMWare主机系统是负担过重,但在我与VMWarepipe理员提出这个之前,我想排除可能导致此行为的操作系统特定的其他任何东西。
还有其他方面或testing我可以运行吗? 任何types的虚拟机/操作系统损坏会导致这种types的行为? 重build/取代虚拟机的帮助?
根据手册页:
-t Perform timings of device reads for benchmark and comparison purposes. For meaningful results, this operation should be repeated 2-3 times on an otherwise inactive system (no other active processes) with at least a couple of megabytes of free memory.
所以,是的,其他进程可以干预这些结果。
还有其他方面或testing我可以运行吗?
您可以查看其他进程是否正在使用磁盘的一种方法是从主网页下载sysstat 。 Sysstat当然可以从repo中获得,但不幸的是,它不包含需要检查的pidstat命令。
自EL5.4以来,EL5内核将磁盘logging归入内核,但没有提供使用它的接口,但是一旦你完成了这个任务,pidstat就会工作。
然后运行pidstat -d命令为磁盘I / O生成有用的度量标准,特别是其他进程正在使用的磁盘。 您也可以使用pidstat -d <interval> <count>来获取正在使用的磁盘的更实时的争用指标。
任何types的虚拟机/操作系统损坏会导致这种types的行为?
操作系统的腐败是不太可能的(系统调用被搞砸了,我想)。 hdparm不利用文件系统进行testing,消除了该领域的任何放缓,包括分解问题。 如果您使用LVM,那么您碰巧正在从分段的区段中读取风险。 然而,你的例子并没有指出这一点。
虚拟机的腐败,以及任何游戏,我猜想,以及我可以想到的一些因素,但可能会包括更多:
重build/取代虚拟机的帮助?
锅运气我猜如果它好或更糟。 看到上面可能有帮助/阻碍的环境因素。
在一天结束时,如果您正在使用卷pipe理软件或精简configuration软件在正在写入介质的数据stream中(在您的主机上,在您的VM级别,在SAN /控制器级别),您可以拥有没有可靠的期望 ,你正在做的顺序读取是真正顺序的,或者你正在写入的媒体是一致的(如果它的快速磁盘或数据被移动到慢速磁盘)。
虚拟化非常强大,因为它为主机增加了一层逻辑抽象。 但是由于这个抽象层,对它们进行任何可靠的容量pipe理也可能是可怕的。