CentOS 6比CentOS 5做更多的IO

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

在尝试诊断问题时,我正在跟踪整个基准testing中的CPU,RAM和IO。 我发现在CentOS 6.2盒子上的磁盘读取率要高得多,用iostat测量。

两个系统都在运行XFS,我的基准testing正在运行。 两者都是具有512MB高速cachingRAID控制器的HP服务器,运行RAID 10的8个300GB SAS。

这里是每个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 

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 

感谢您使用更多信息更新post。

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

  • 改变你的XFS挂载包括noatime和禁止写障碍 nobarrier 。 这里有一个我经常使用的示例挂载string 。
  • I / O电梯的行为在您的Linux版本中是不同的。 尝试在CentOS 6服务器上的deadlinenoop I / O电梯。 您可以使用echo deadline > /sys/block/cciss\!c0d0/queue/scheduler或通过在grub启动项中追加elevator=deadlineecho deadline > /sys/block/cciss\!c0d0/queue/scheduler
  • 确保读/写caching最适合您的工作负载。 我通常写75%写和25%读。
  • 更新服务器组件上的固件。 智能arraysRAID控制器固件的每个版本都会带来新的function。 这听起来像一个惠普智能arraysP410控制器,所以确保你在版本5.14 。

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

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

考虑到可用空间的大小和服务器的CPU规格,现有的EL6设置受到低端agcount限制。 关于这一点,请参阅红帽的笔记 。 在这样的硬件上, 如果存储不在多Terabyte范围内 ,我通常会指定一个每4GB分区空间的分配组 。 至less,到32来匹配你的EL5服务器…尝试用这些参数重新格式化EL6分区,看看是否有性能差异…

当你运行iotop时,在6.2盒子里读取的磁盘是什么?

另外你正在阅读的设备上有什么安装选项? 你可能想看看noatime和relatime