PERC 6/i | ext4 | raid5 | 4 个磁盘 - 提高写入性能

PERC 6/i | ext4 | raid5 | 4 个磁盘 - 提高写入性能

我正在使用此控制器、文件系统和磁盘设置运行多个文件服务器。

它们都存在写入性能不佳的问题,一旦 256MB BBU 写入缓存已满,我就会得到非常高的 iowait(> 40),写入速度会下降到几 MB/s,
如果服务器在写入时遇到中等到重度读取,情况会变得更糟。

我正在寻找有关如何调整控制器或文件系统以提高写入性能的建议。

有关 Raid 阵列和控制器的一些数据:

RAID Level: Primary-5, Secondary-0, RAID Level Qualifier-3
Size:5.456 TB
State: Optimal
Stripe Size: 64 KB
Number Of Drives:4
Span Depth:1
Default Cache Policy: WriteBack, ReadAdaptive, Cached, No Write Cache if Bad BBU
Current Cache Policy: WriteBack, ReadAdaptive, Cached, No Write Cache if Bad BBU
Access Policy: Read/Write
Disk Cache Policy: Enabled
Encryption Type: None

Product Name    : PERC 6/i Integrated
FW Version         : 1.22.12-0952
BIOS Version       : 2.04.00

有关文件系统的数据:

Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

使用默认挂载选项,并使用 mkfs.ext4 命令的默认选项创建文件系统。

编辑:
为了说明我的用例,我将描述这些服务器正在做什么。
它们通过 lighttpd 以 40-80 MB/s 的速度提供文件,新文件定期通过 ftp 下载到服务器。
文件大小在 800MB 到 6GB 之间。
提供文件的工作很顺利,没有任何明显的 IOWait,但每次 ftp 传输开始获取新文件时,您都会看到它真的很吃力。

根据要求,以下是 bonnie++ 输出:

Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
XXXXXXX          8G   580  99 94284  14 61903   9  2853  83 189033  11 420.5   8
Latency             14004us     825ms    1548ms     105ms     202ms   98036us
Version  1.96       ------Sequential Create------ --------Random Create--------
XXXXXXX             -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                  5 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++
Latency               406us     535us     598us     374us      21us      60us

所有服务器上使用的磁盘均为 D-WMAY03176700WDC WD2002FAEX-007BA0

答案1

一些随机点:

  • 进行 raid 10 [你将在此过程中丢失数据]
  • 使用以下命令挂载所有“繁忙”的文件系统诺亚泰fstab 中的选项
  • 尝试不同的io 调度器- 检查哪种方法最适合您
  • 你的驱动器看起来很大 - 很可能它们的物理扇区为 4KB,而不是 512B - 确保你的分区与磁盘和 raid 条带边界对齐[12;您将在此过程中丢失数据]
  • 我假设您有大量用于 io 缓冲区的 RAM,如果是这样 - 请将您的 PERC/6i 缓存重新配置为仅用于写入,而不用于预读。
  • 再次对写入速度进行基准测试 - 假设它是 X;将上传速度限制到例如 X 的 60%,从而为读取留下“备用” IO。

答案2

你可以再次使用 运行 bonnie++ -n 1024,这样它会创建 1024 个文件而不是 5 个,所有这些 +++ 意味着创建、读取和删除 5 个文件的速度太快了,无法给你任何数字来比较,这样你就可以知道 pQd 上面建议的哪些优化可以提供帮助

相关内容