假设我有 5 个虚拟机(4 个 tomcat 服务器和一个数据库)。不是很拥挤(高峰时段有 100 个不同的用户)。我想知道是使用 4 核 3GHz CPU 还是 8 核 2GHz CPU 更好?
另外,如果 1 分钟 CPU 负载峰值超过 3,平均约为 0.9,但总体 CPU 利用率远低于 20%,您是否会说问题出在内核不够?我的直觉是,更多的内核(即使 GHz 低得多)会降低 CPU 负载并使服务器响应更快……但不确定。
哦,有一件事可能很重要——就我而言,虚拟化基于 Proxmox 4 和 LXC。但我猜其他虚拟化不会有太大不同。
答案1
在其他所有条件相同的情况下,选择 8 核 x 2 GHz = 16“GHz”核,而不是 3 x 4 = 12“GHz”核。看来您的负载适合多个核(大量用户、多个虚拟机,更不用说线程了),因此您的系统将利用额外的核。
当然,这是假设频率是核心的唯一重要因素。事实并非如此。我会查看 www.cpubenchmark.net 上每个 CPU 的资料,然后选择“通过分数”更快的那个。
仅从 CPU 负载无法判断太多性能问题 - 尤其是在多核 CPU 上。“天真地”你可以将负载除以核心数,如果该值小于 1,则没问题。当然,这不会描绘出任何有意义的画面 - 我会运行“vmstat”并查看占用资源的是什么 - 除非 SYS + User 很高,否则我会在其他地方查找瓶颈。(磁盘 IO、数据库锁定)。也就是说,4 核 CPU 上的峰值负载小于 4 通常意味着服务器正在应对 - 但不是最佳状态。更多核心可以使系统更快,而不一定影响“负载”数字。
您可能会发现您的系统受到 IO/磁盘限制 - 但这只是猜测。