我正在两台相同的服务器上对一个应用程序进行基准测试,一台是 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 …Run Code Online (Sandbox Code Playgroud) 我试图了解各种虚拟化供应商(特别是 Amazon EC2,还有 VMware 和 Xen)如何使软件供应商能够在服务器虚拟化的环境中提供真正的 HA 解决方案。
具体来说,如果我正在运行任何 HA 应用程序(交换、数据库等),我需要确保我的冗余虚拟“服务器”不在同一台物理服务器上。
使用内部虚拟化解决方案(VMware、Xen 等),我可以相应地进行配置并检查虚拟 -> 物理安排。但是,我可能会意外地“vmotion”到相同的物理硬件。
使用 EC2,我什至无法在配置时选择不同的物理服务器。由于他们的集群计算实例是每台物理服务器 1 个虚拟服务器,这似乎是保证我没有错误冗余感的唯一方法。
任何想法或想法都会有所帮助。其他人如何解决这个问题?如果供应商提供了一个 API,我可以在其中获得像唯一物理系统标识符这样简单的东西,我至少可以知道我是否会遇到问题。
-蒂姆