Sql 用于真实web服务器性能基准测试的真实硬件或虚拟硬件

Sql 用于真实web服务器性能基准测试的真实硬件或虚拟硬件,sql,performance,haskell,webserver,n-tier-architecture,Sql,Performance,Haskell,Webserver,N Tier Architecture,我对执行真实的web服务器性能测试感兴趣。根据实际情况,我定义了当今中大型网站的典型场景,这些网站提供动态内容,这些内容通常基于存储在关系数据库中的数据。想想大型电子商务网站、大型web论坛等,在这些地方会出现性能问题 不感兴趣的是像博客这样的低流量网站,或者是web服务器的任何一个方面,都与服务静态内容的性能有关。此外,我将使用高度分布式方法的大型网站(如faceobook、google、amazon、reddit等)或任何使用nosql数据库的网站排除在本场景之外 问题是,在上述定义的“现实

我对执行真实的web服务器性能测试感兴趣。根据实际情况,我定义了当今中大型网站的典型场景,这些网站提供动态内容,这些内容通常基于存储在关系数据库中的数据。想想大型电子商务网站、大型web论坛等,在这些地方会出现性能问题

不感兴趣的是像博客这样的低流量网站,或者是web服务器的任何一个方面,都与服务静态内容的性能有关。此外,我将使用高度分布式方法的大型网站(如faceobook、google、amazon、reddit等)或任何使用nosql数据库的网站排除在本场景之外

问题是,在上述定义的“现实场景”中,web服务器(如apache、编程逻辑、关系数据库等)是在真实硬件上运行还是在虚拟硬件上运行?对于虚拟化,我指的是“基于内核的虚拟机(KVM)”或类似的东西

我之所以想到这一点,是因为在我的主观眼里,web性能测试往往做得很差。例如,所有性能测试都在一个包含12行和2列的关系数据库表上运行,例如,请参见:以及关于的相关讨论

我想研究在上述现实场景中执行更现实的web服务器基准测试

(我这么想的原因是:在我的工作中,我们的web服务器硬件上没有任何虚拟化。我们的服务器有超过100gb的ram和超过100个内核。我们设置的虚拟化意味着性能上的巨大损失。)

问题是,我是否应该对以下内容运行性能分析:

  • 真实硬件(非虚拟化,尽可能多的“裸机”)
  • 虚拟化硬件
  • 两方面
根据我的主观工作经验,我认为在真实(非虚拟化)硬件上进行性能测试就足够了。对两者进行测试将意味着更多的努力,所以除非有必要,否则我会避免


(通过我的性能分析,我稍后会有兴趣测试基于haskell的web框架。)

这与haskell编程语言有什么关系?@dfeur理想情况下,人们希望为基于haskell的web框架提供一个公平的性能基准,以及它们与其他设置的比较,请参阅讨论,链接和错误信息:请注意:虚拟化硬件通常具有不同的磁盘I/O和网络I/O性能。就CPU而言,只要没有其他VM或主机加载物理CPU,您可能可以在“真实”或“虚拟”硬件上运行,没有太大区别。除非你决定网络和磁盘在测试中扮演什么角色,否则很难说清楚。例如,你有数据库吗?Haskell没有任何特定的执行处罚,如解释;不过,它确实有GC暂停,这与大多数其他东西没有什么不同。@9000谢谢你的精彩表现。网络I/O性能对于设置来说并不重要,一切都不受网络I/O的限制。磁盘对于关系数据库非常重要。在真正的硬件上,我可以看到奇怪的效果,即两倍的内核,从~60到~120个内核的切换,将web服务器性能降低了一半(!!)。这是一种与中断相关的奇怪效应。也许在这种情况下,CPU的“真实”与“虚拟”会有所不同。