在四台相同的 4-CPU 主机上运行 ESX 服务器 3,客户机位于光纤 SAN VMFS 上。
客户操作系统是 Fedora 10。克隆它以创建 web、jboss、mysql 和 memcached 模板。将每个模板克隆到四个客户机中,每个服务器一个。
在这 16 个客户机中,一个 jboss 和一个 mysql 客户机运行速度非常慢,无法使用。我说的“慢”是指,无论启动的进程多么占用 CPU,它们的 CPU 使用率都不会超过 ~200Mhz。在主机之间移动它们没有影响——这似乎与这些客户机本身有关。
但是!今天我发现,如果我执行以下操作,它们将几乎全速运行:
- 按住控制台中的空格键
- 打开 SSH 会话并按住某些重复键
- 用 ICMP 数据包淹没它们
换句话说,任何类型的 I/O 活动似乎都会“唤醒它们”,在此期间,所有进程都以完全正常的速度运行。停止该 I/O 活动,它们又会变得非常缓慢。因此,显然,除非有某种中断活动,否则它们的进程不会被调度。
知道原因吗?
从今天起,所有客户机都已完全修补。openvm-tools 已安装,客户机时间同步已启用,内核参数为“notsc”(但更改它不会影响此问题)。
已使用 --dry-run 模式的 rsync 来验证 /bin、/usr/bin、/var/jboss 和 /var/lib/mysql 是否与正常运行的客户机相同,并且 /etc 仅在主机名、IP 地址和其他特定于实例的设置方面有所不同。
尝试将其资源利用率设置为“高”,但没有效果。(除所有 JBoss 和 MySQL 客户机上的内存预留外,所有客户机资源利用率均为“正常”。每台服务器的总内存预留约为主机内存的一半,所有客户机内存大小加在一起仅使用主机内存的约 70%。
*.vmx、*.vmxf 和 *.vmdk 文件仅在 uuid、displayName、MAC 地址和磁盘/交换文件名方面有所不同。
答案1
同一主机上的其他客户机之一错误地检查了主机上所有核心的 CPU 亲和性位。删除亲和性设置后,操作恢复正常。
我们五个人在这些主机上工作,我应该在发布之前自己检查配置。
编辑:我不能接受我的答案并关闭问题两天?
答案2
您是否从服务控制台查看过 esxtop?它可能会为您提供一些线索,让您知道发生了什么。