磁盘速度非常慢Centos 6

安装程序如下所示:

  • 惠普Proliant DL380 G7
  • 配有硬件RAID 1 + 0的6 x 3TB SATA硬盘(监控级),板载SATA控制器。 型号是希捷SV35
  • 192GB内存

VMware ESXi 6.0

  • 一个运行Centos 6.7的VM客户机(内核2.6.32-573)

数据存储由ESXi安装后的所有剩余磁盘空间组成(小于8tb)

  • 1个系统分区的VMDK文件,100GB
  • 1个VMDK文件的数据分区在7.7TB左右

在来宾CentOS上,系统分区是LVM ext4
数据分区是具有单个PV,LV和VG ext4的LVM

现在我遇到的问题是磁盘上的数据传输速度非常慢。 试图从LVM上的一个地方复制一个半大文件(10-30GB)到LVM上的另一个地方,传输速率大约为240MB / s,这是我所期望的速度,但只是几秒钟后(通常为30日),下降到1-4 MB / s,查看iotop告诉我一个进程开始运行,称为flush-253:2,这似乎会减慢一切。

我一直在使用rsync –progress来实时获得传输速度的更好图片,但是我看到与cp操作相同的结果。

当它终于完成,我已经尝试再次执行相同的程序,相同的文件到相同的位置。 在整个传输过程中,rsync的指定传输速度第二次保持稳定在240MB / s左右,但是当rsync指示文件传输完成时,只要完成第一个复制过程,就会在该状态下挂起。 我可以看到flush-253:2进程对两个进程都很困难。

现在我知道这个设置并不是最佳的,我宁愿为ESXi系统配备一个单独的磁盘,但是我不认为这应该是导致这种极端低速传输的原因。

我search了关于刷新过程的信息,据我所知,它基本上将内存中的数据写入到实际的磁盘上,但是我还没有发现任何人说他们已经经历了这种低速传输速率。 系统还没有投入生产,而CPU几乎没有运行,拷贝程序运行时有大约100GB的空闲内存可供使用。

有没有人有什么想法尝试? 我在另一个系统上看到了类似的结果,除了完全不同的(稍微小一点的)硬件之外,基本上它们都是以相同的方式设置的。 我还有第三个系统在LVM上运行CentOS 5和ext3,没有像这样的问题。

编辑1:我意识到现在已经记错了,系统分区也是lvm,但仍然是一个单独的数据分区卷

[root@server /]# mount /dev/mapper/vg1-lv_root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0") /dev/sda1 on /boot type ext4 (rw) /dev/mapper/vg1-lv_home on /home type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/mapper/vg_8tb-lv_8tb on /datavolume type ext4 (rw,nobarrier) [root@server /]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_1-lv_root<br> 50G 9.7G 37G 21% / tmpfs 91G 0 91G 0% /dev/shm /dev/sda1 477M 52M 400M 12% /boot /dev/mapper/vg_1-lv_home 45G 52M 43G 1% /home /dev/mapper/vg_8tb-lv_8tb 7.9T 439G 7.1T 6% /datavolume 

更新1:我已经尝试将dirty_ratio一直增加到90,并且仍然没有看到任何改进。 我也尝试用-o nobarriers装上它,结果仍然是一样的

更新2:对于那些试图帮助我解决困惑的人,抱歉,现在我已经看了一下自己,硬件实际上是HP Proliant 380 G7,我不知道这是否有什么不同。

我也看了一下自己的RAIDconfiguration,看来我们使用的是P410 RAID控制器,当我启动进入RAIDpipe理时,它说

 HP Smart array (I think) P410 "SOMETHING", with 0MB in parenthesis 

我猜这可能意味着我们有写入caching0MB?

在硬件方面,我有点不太在意,如果不是已经存在的话,你可以为这个RAID控制器添加一个写caching模块(?)吗? 或者你需要一个新的控制器/移动到SAN? 我怎么知道它是否有写caching,但也许电池已经死了?

更新3:感谢您的build议和一些进一步的研究,现在我将尝试在ESXi中安装HP智能arrays驱动程序的振动文件,并希望更清楚地了解我所拥有的内容。 我也在系统BIOS中find启用驱动器caching的选项,所以我可能有最后的手段,以防万一它没有控制器上的写入caching。

更新4(解决):感谢所有谁build议的解决scheme,是的,结果是磁盘控制器上没有caching模块。

对于任何有类似问题的人,我安装了用于ESXi的hpssacli实用程序VIB,并可以通过以下输出确认回复中build议的内容。

Cache Board Present:False

 Smart Array P410i in Slot 0 (Embedded) Bus Interface: PCI Slot: 0 Serial Number: Controller Status: OK Hardware Revision: C Firmware Version: 6.62 Rebuild Priority: Medium Surface Scan Delay: 15 secs Surface Scan Mode: Idle Parallel Surface Scan Supported: No Wait for Cache Room: Disabled Surface Analysis Inconsistency Notification: Disabled Post Prompt Timeout: 0 secs Cache Board Present: False Drive Write Cache: Disabled Total Cache Size: 0 MB SATA NCQ Supported: True Number of Ports: 2 Internal only Driver Name: HP HPSA Driver Version: 5.5.0 PCI Address (Domain:Bus:Device.Function): 0000:05:00.0 Host Serial Number: Sanitize Erase Supported: False Primary Boot Volume: logicaldrive 1 Secondary Boot Volume: None 

它不会显示您有任何写入caching。

请确认您的服务器的代和模型。 如果您的磁盘连接的控制器上没有Flash支持的写caching模块(FBWC),则VMware的性能将受到影响。

这里的另一个问题是LVM和几年前在RHEL6中出现的一些默认值。 你会想尝试这个禁用写屏障。 LVM可能会成为一个问题,因为它会导致人们避免分割他们的卷……而这会影响像tuned-adm这样的工具来完成他们的工作。

我问了mount的输出。 你可以请张贴吗?

尝试用no barrier标志安装卷。 写入障碍是ext4上EL6的默认设置,所以这是您遇到的最大问题。

看来你的RAID控制器没有caching。 主要的问题是硬件RAID卡默认情况下会禁用磁盘的专用DRAMcaching。

简而言之,这意味着,当几秒钟后(确切地说~30秒),脏页面caching将被刷新到磁盘,大量的随机I / O请求开始锤击(缓慢)机械磁盘,从而导致吞吐量下降。

重新启用磁盘的专用DRAM高速caching(通常是RAID控制器选项),性能应该会提高。 为了更快写入,您可以closures写屏障(使用nobarrier安装选项),但不幸的是,如果没有BBUcaching,将其closures影响系统崩溃/停电时的数据可靠性。

编辑: 在这里看看更多的信息。

似乎这是一个重复的:

Flush-0:n进程导致了巨大的瓶颈

事实上,你应该检查dirty_ratio,这是怎么回事,第一次写入内存,所以你有一个非常快的IO速度在开始。 稍后当RAM填充到dirty_ratio时,内核开始充斥到磁盘。

一些问题:

  • 你有没有为你的DL 360正确安装所有的驱动程序?
  • 这个服务器从哪一代? 它是一个G9服务器?
  • 它是什么样的控制器? 智能arraysXXXXX? 您是否已经为控制器安装了caching模块?
  • 你使用原装惠普硬盘吗?

和两个个人笔记: – 我不认为你会永远达到恒定的240 MB /秒与6个慢速SATA驱动器72K和RAID 10。

  • 我真的不明白:为什么你买了一个192GB RAM的DL360(如果是ECC Ram,就不便宜),然后在那里放置一些便宜,笨拙和慢速的SATA硬盘? 为什么你没有得到一个380,并放在那里一些更快的SAS 2,5“硬盘在那里…只是作为一个例子:我认为你可以有更多的速度与10 900GB SAS 10K驱动器或15 600k驱动器…我想他们会更快,即使你使用RAID 5 …好吧,也许你没有select,但我认为服务器的configuration真的不好…我知道这个configuration不能解释你非常缓慢的CP,但无论如何…