Centos 6 磁盘速度极慢

Centos 6 磁盘速度极慢

设置如下:

  • HP Proliant DL380 G7
  • 6 个 3TB Sata 硬盘(监控级),配置硬件 RAID 1+0,板载 SATA 控制器。型号为 Seagate SV35
  • 192GB 内存

VMware ESXi 6.0

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

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

  • 1 个 VMDK 文件,用于 100GB 的系统分区
  • 1 个 VMDK 文件,用于数据分区,大小约为 7.7 TB

在客户机 CentOS 上,系统分区是 LVM ext4
数据分区是具有单个 PV、LV 和 VG ext4 的 LVM

现在我遇到的问题是磁盘上的数据传输速度非常慢。尝试将一个中等大小的文件 (10-30 GB) 从 LVM 上的一个位置复制到 LVM 上的另一个位置时,传输速率约为 240MB/s,这是我预期的速度,但几秒钟后 (通常为 30 秒左右),它就下降到 1-4 MB/s,查看 iotop 告诉我有一个名为 flush-253:2 的进程开始运行,这似乎减慢了一切速度。

我一直在使用 rsync --progress 来更好地了解实时传输速度,但是我看到的 cp 操作结果相同。

当它最终完成后,我尝试再次执行相同的过程,将同一个文件复制到同一个位置。第二次,rsync 指示的传输速度在整个传输过程中保持稳定在 240MB/s 左右,但当 rsync 指示文件传输已完成时,它挂在该状态的时间大约与完成第一个复制过程的时间一样长。我可以看到 flush-253:2 过程对这两个过程都同样努力。

现在我知道该设置不是最佳的,我更希望为 ESXi 系统配备单独的磁盘,但我觉得这不应该是导致传输速率极慢的原因。

我搜索了有关刷新过程的信息,据我所知,它基本上是将数据从内存写入实际磁盘,但我没有发现任何人说他们经历过这种程度的传输速度缓慢。该系统尚未投入生产,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,我不知道这是否有任何区别。

我也亲自查看了 raid 配置,似乎我们正在使用 P410 raid 控制器,当我启动 raid 管理时,它显示

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

我猜这可能意味着我们的写入缓存为 0MB?

说到硬件,我有点不知所措,如果还没有写入缓存模块,您能为这个 raid 控制器添加一个吗?或者您需要一个新的控制器/移动到 SAN?我怎么知道它是否有写入缓存,但也许是电池没电了?

更新 3: 感谢您的建议和进一步的研究,我现在将尝试在 ESXi 中安装 HP 智能阵列驱动程序 vib 文件,并希望更清楚地了解我所拥有的内容。我还在系统 BIOS 中找到了启用驱动器缓存的选项,因此,如果发现控制器上没有写入缓存,我可能会采取最后的手段。

更新 4(已解决): 感谢所有提出解决方案的人,事实证明磁盘控制器上没有缓存模块。

对于遇到类似问题的人,我为 ESXi 安装了 hpssacli 实用程序 VIB,并且可以通过以下输出确认回复中所建议的内容。

缓存板存在:假

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

答案1

看起来好像您没有任何写缓存。

请确认您的服务器的代数和型号。如果您的磁盘所连接的控制器上没有 Flash-backed 写入缓存模块 (FBWC),您的 VMware 性能将受到影响。

这里的另一个问题是 LVM 和几年前出现在 RHEL6 中的一些默认设置。您需要尝试禁用写入屏障。LVM 可能是一个问题,因为它会导致人们避免对卷进行分区……这会影响工具执行其tuned-adm工作的能力。

我要求输出mount。您可以发布它吗?

尝试使用该标志挂载您的卷no barrier。写入屏障是 EL6 在 ext4 上的默认设置,因此这是您遇到的最大问题。

答案2

您的 RAID 控制器似乎没有缓存。主要问题是硬件 RAID 卡倾向于默认禁用磁盘的私有 DRAM 缓存。

简而言之,这意味着几秒后(准确地说是约 30 秒),脏页缓存将被刷新到磁盘,大量随机 I/O 请求开始冲击您的(慢速)机械磁盘,从而降低吞吐量。

重新启用磁盘的私有 DRAM 缓存(通常是 RAID 控制器选项),性能应该会大幅提升。为了获得更快的写入速度,您可以关闭写入​​屏障(使用nobarriermount 选项),但不幸的是,如果没有 BBU 缓存,则需要关闭它们将要在系统崩溃/断电的情况下影响数据的可靠性。

编辑:看一下这里了解更多信息。

答案3

似乎与此重复:

Flush-0:n 进程造成严重瓶颈

确实,您应该检查 dirty_ratio,它的运行情况是,第一次写入进入 RAM,因此开始时您的 IO 速率非常快。稍后,当 RAM 填满至 dirty_ratio 时,内核开始写入磁盘。

答案4

一些问题:

  • 您的 DL 360 的所有驱动程序是否已正确安装?
  • 这个服务器是哪一代的?是 G9 服务器吗?
  • 这是哪种控制器?Smart Array XXXXX?您是否为控制器安装了缓存模块?
  • 您使用原装 HP HDD 吗?

以及两条个人说明: - 我认为使用 6 个慢速 SATA 驱动器(7.2K 和 RAID 10)你永远无法真正达到恒定的 240 MB/s。

  • 我不太明白的是:你为什么要买一台 DL360,内存为 192GB(如果是 ECC Ram,那就不便宜了),然后在里面放一些便宜、愚蠢且缓慢的 SATA HDD?为什么不买一台 380,然后放一些更快的 SAS 2.5 英寸 HDD... 举个例子:我认为使用 10 个 900GB SAS 10k 驱动器或 15 个 600k 驱动器可以获得更快的速度... 我认为即使使用 RAID 5,它们也会更快... 好吧,也许你别无选择,但我认为服务器的配置确实不太好... 我知道这个配置无法解释你的 cp 非常慢,但无论如何...

相关内容