我有2个服务器,使用Web(IIS)或数据库(MySQL)更快的服务器?

我目前有2个1U机架服务器,其中一个运行IIS另一个MySQL。 我正在更换数据库服务器,因为硬件是旧的。 我购买的新服务器也比我的networking服务器快,所以我试图决定哪个服务器应该承担每个angular色。

我目前的Web服务器是一台带有英特尔XEON X3220和4GB内存的戴尔R200。 我购买的新服务器是Dell Poweredge 1950,具有双Intel XEON X5460和16GB内存。

我还买了英特尔固态硬盘,用于任何服务器成为专用数据库服务器。 目前这两款服务器都有10k SAS硬盘。

X3220 CPU密码分数是3,000,X5460 CPU密码分数是10,000

在我看来,PHP比MySQL使用更多的CPU。 我在IIS上托pipe了30多个站点,所有这些站点都是PHP,还有一些在Drupal上运行。 看起来这可能是一个简单的select,但它将大量的工作从一台服务器转移到另一台服务器上。 也许我的想法不正确,MySQL可以从更快的CPU中获益。

答案很依赖于你如何使用服务器。 你应该花时间弄清楚什么是限制每台服务器的性能。 您可以使用New Relic或Munin或monitor.us(以新用户的身份从链接中跑出)跟踪统计信息,并确定哪些是CPU绑定的,哪些是内存绑定的,哪些是IO绑定的。

根据我的经验,你的Web服务器将被CPU绑定,你的数据库服务器将被磁盘IO和内存绑定,所以它会被折腾起来,因为新的服务器在这两方面都更好。 比说,升级内存通常比处理器更容易,所以我会在数据库服务器上添加更多的内存,并将Web服务器放在新的服务器上。

如果两台服务器都是windows(即使是运行MySQL的服务器),也可以轻松监视perfmon的瓶颈。 您需要测量%CPU时间,每秒页数(这是衡量交换和内存压力的度量)以及平均磁盘队列长度(这是衡量未完成磁盘IO的度量)。

我的猜测是你会发现,既不是CPU绑定,数据库服务器将有更高的磁盘队列长度和每秒页数。 意味着在数据库服务器上添加更多的RAM或更快的磁盘将会给您带来更好的体验。

注意查看你的统计信息中的峰值 ,并使用一个小的时间片进行采样(比如10秒钟)。 logging到文件/数据库,而不是只显示GUI,并使用Excel中的数据。 更长期的样本是平均值,所以即使60秒也可以隐藏非常难看的用户体验。 另外请注意,增加更多的RAM通常会减less磁盘队列的长度,因为更多的读取可能来自RAMcaching而不是磁盘。