CentOS 6 比 CentOS 5 做更多的 IO

tmc*_*han 10 xfs storage centos hp hp-smart-array

我正在两台相同的服务器上对一个应用程序进行基准测试,一台是 Centos 5.8,另一台是 Centos 6.2。我的应用程序在 Centos 6.2 机器上的运行速度要慢得多(50% 或更少)。

在尝试诊断问题时,我在整个基准测试过程中跟踪 CPU、RAM 和 IO。我看到使用 iostat 测量的 Centos 6.2 机器上的磁盘读取明显更高。

两个系统都在运行我的基准测试所在的 XFS。两者都是惠普服务器,配备 512MB 缓存 RAID 控制器,配备 8 个 300GB SAS 运行 RAID 10。

这是每个 xfs_info 的输出:

centos5

meta-data=/dev/cciss/c0d0p5      isize=256    agcount=32, agsize=8034208 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=257094144, imaxpct=25
         =                       sunit=32     swidth=128 blks, unwritten=1
naming   =version 2              bsize=4096 
log      =internal               bsize=4096   blocks=32768, version=1
         =                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0
Run Code Online (Sandbox Code Playgroud)

centos6

meta-data=/dev/sda5              isize=256    agcount=4, agsize=57873856 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=231495424, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=113034, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Run Code Online (Sandbox Code Playgroud)

eww*_*ite 10

感谢您更新帖子以提供更多信息。

您在 ProLiant 系统上运行,因此需要做一些工作来优化您的控制器和 I/O 情况。此外,您的 XFS 挂载使用默认选项。请记住,您在这些操作系统之间使用不同的驱动程序。EL5 服务器有cciss,而 EL6 系统正在使用该hpsa模块。存在差异,但是,您遇到的问题可能与操作系统差异有关。所以这是我要检查的:

  • 更改XFS坐骑包括noatime禁用写障碍nobarrier。这是我经常使用示例挂载字符串
  • 您的 Linux 版本之间的I/O 电梯行为是不同的。在 CentOS 6 服务器上尝试deadlinenoopI/O 电梯。您可以使用echo deadline > /sys/block/cciss\!c0d0/queue/scheduler或附加elevator=deadlinegrub 引导条目来动态更改它。
  • 确保您的读/写缓存最适合您的工作负载。我通常使用 75% 的写入和 25% 的读取。
  • 更新服务器组件上的固件。Smart Array RAID 控制器固件的每个版本都会带来新的功能。这听起来像是 HP Smart Array P410 控制器,因此请确保您使用的是5.14 版

编辑
我正在查看您的 CentOS 5 和 CentOS 6 系统的 xfs_info 输出。您使用不同的参数格式化了 XFS 分区!

EL5 系统有 32 个 XFS 分配组,而 EL6 系统只有 4 个。分配组允许 XFS 并行化并发文件系统操作。

鉴于可用空间量和服务器的 CPU 规格,您现有的 EL6 设置受到agcount. 请参阅Red Hat对此的说明。在这样的硬件上,存储不在多 TB 范围内,我通常为每 4GB 分区空间指定一个分配组。至少,转到 32 以匹配您的 EL5 服务器...尝试使用这些参数重新格式化 EL6 分区以查看是否存在性能差异...

  • 我们发现透明大页面是问题所在。通过关闭它,我们的 Centos6 服务器的性能类似于 Centos5。命令是“$ echo never > /sys/kernel/mm/redhad_transparent_hugepage/enabled”。其他发行版通过 /sys/kernel/mm/transparent_hugepage/enabled" (3认同)

ckl*_*orn 0

当您运行 iotop 时,磁盘在 6.2 机器上读取的内容是什么?

另外,您正在阅读的设备上的安装选项是什么?您可能想研究一下 noatime 和 relatime