CentOS 6 比 CentOS 5 执行更多的 IO

CentOS 6 比 CentOS 5 执行更多的 IO

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

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

两个系统都运行 XFS,我的基准测试也正在运行。两者都是 HP 服务器,配有 512MB 缓存 RAID 控制器,8 x 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

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

答案1

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

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

  • 将您的 XFS 挂载更改为包含noatime禁用写屏障。下面nobarrier我经常使用的样本安装字符串
  • 输入/输出电梯不同 Linux 版本的行为有所不同。尝试在 CentOS 6 服务器上使用deadline或I/O 提升器。您可以通过在 grub 启动项中添加或来noop动态更改它。echo deadline > /sys/block/cciss\!c0d0/queue/schedulerelevator=deadline
  • 确保您的读/写缓存最适合您的工作负载。我通常将写入设置为 75%,将读取设置为 25%。
  • 更新服务器组件上的固件。智能阵列 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 分区,看看是否存在性能差异......

答案2

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

另外,您正在读取的设备上有哪些挂载选项?您可能需要研究 noatime 和 relatime

相关内容