戴尔的定价,看来我可以选择一台 R430 或 3 台 R220。R220 有 4C/8T 处理器,提供 24 个线程。R430 有 2 台 6C/12T 处理器,同样提供 24 个线程。
对于使用 Php 处理大部分动态内容的 CentOS 6 apache 网络服务器(因此需要一些后端 php 计算),在成本相同的情况下哪个选择更好。
可以进行裸机安装或虚拟化(OpenStack)。显然,单个 R430 占用的机架空间更小、更易于管理且功耗更低。但假设负载相同,与 3 个 R220 相比,R430 上的 Linux 内核可能需要处理 3 倍的进程。
顺便说一句,这不是一个重复的问题,因为答案需要了解 Linux 内核和调度程序如何随着进程数量而扩展。
答案1
至于Linux的内核调度程序,不用担心,从2.6稳定内核系列开始的Linux采用了O1调度程序:https://en.wikipedia.org/wiki/O%281%29_scheduler
简而言之,这意味着在出现大量进程之前,您甚至不会注意到内核调度程序对性能的影响,您会首先开始交换(PHP 有点耗内存)。
这次,您可以通过避免缓存未命中来充分利用 CPU,因此请检查核心的缓存大小,但是当您部署 Web 应用程序时,我认为这并不重要,因为它完全超出了您的控制范围,并且您会更早地达到其他性能限制,例如,您的应用程序采用的算法、最终的数据库、内存限制等等。
答案2
如果您有一个负载平衡器,则多服务器方法将会更快 - 多个 NIC 连接到(大概)更大的上行链路。
如果您没有负载均衡器,那么单服务器方法会更快......因为您无法在多服务器场景中将某些流量引导至另外两台服务器。