不合理的繁荣
  • 金沙手机APP
  • 测量单个和多服务器性能

    2009年2月18日。
    Apache(5), nginx(5), mod_wsgi(2), 实验(1)

    关于服务器设置的永恒辩论之一是用于服务动态Web应用程序的多服务器和单服务器配置。

    单服务器和多服务器设置。“></p>
     <p>我决定运行一些性能测试,以努力在讨论中抛出一些数字。</p>
     <h3>测试条件</h3>
     <ol>
      <li><p>在每次运行数据收集脚本之前,服务器重新启动,但在每个测试之间没有任何内容到机器。</p></li>
      <li><p>每次测试之间暂停30秒,每个测试运行三次,每个配置八次测试(从25个并发用户最多200个当前用户,按增量为25),并且共有八个不同的配置。</p><p>总而言之,有192个测试运行,一半反对阿帕奇&<code>mod_wsgi.</code>配置,并对nginx,apache&<code>mod_wsgi.</code>配置。</p></li>
      <li><p>原始数据包含每个测试的所有三个运行,但对于我的图表和图,我选择每秒最高平均交易的运行。</p></li>
      <li><p>测试的机器是Slicehost的256大vps,设置为这些<a href=这个脚本。

  • 关于测试条件的备注

    这些条件是Apache&mod_wsgi.配置以优于nginx,apache&mod_wsgi.配置。查询非常轻便(适用于具有较少工作线程的服务器),它们非常快(再次为Work Winters更少的服务器良好)。

    这些条件应表示完美的风暴单个服务器设置以优于多服务器方法。

    结果

    最初,我选择评估每秒交易的结果。一个简短的结果是解释为什么这是一个相当沉闷的主张。

    客户 配置 交易/秒
    75. nginx,apache,mod_wsgi调试?真实的db?错误的 16.66
    75. Apache,mod_wsgi调试?真实的db?错误的 17.16
    75. nginx,apache,mod_wsgi调试?假数据库?错误的 15.68
    75. Apache,mod_wsgi调试?假数据库?错误的 16.27
    75. nginx,apache,mod_wsgi调试?真实的db?真的 17.22
    75. Apache,mod_wsgi调试?真实的db?真的 16.43

    在交易/秒之方面,配置的差异(和启用调试,并击中数据库)几乎没有影响。回到绘图板。

    我的第二种方法是将时间经过的时间进行比较所有请求。遗憾的是,每秒经过的时间和事务由重叠数据计算,因此两个设置之间的差异基本相同。有时多服务器设置优于单个服务器性能。有时单个服务器设置优于多服务器性能。什么都没有得出决定。

    这一趋势遍历全部由负载测试记录的各种指标。也许通过平均三次运行而不是采取最佳价值,可以实现更多不同的数字。也就是说,甚至在这些条件下痴迷地寻求两者之间的偏好,只会以一种方式发现最小的偏好。对于将性能视为难题的人 - 而不是拼图本身的人 - 这种数据点的值几乎没有发生。

    我很奇怪地看到这些测试复制和完成了越来越有趣的比较(nginx和`mod_wsgi与nginx和fcgi与apache和apache和mod_wsgi.等等),甚至可能甚至这个实验甚至在我表现出一些恶意的错误时重复,这些数字是以某种方式失效的。

    暂时,我的结论是为了在良好的条件下为动态内容提供服务,性能大致相当于单个和多服务器设置。

    原始数据

    可以在此处下载原始数据以CSV格式。

    以下是我用于将数据隔离在一个度量标准(并发,时间才完成等)中,从三个等价运行中选择最强的值,然后吐出一个CSV文件。

    进口CSV鳍=打开('结果.csv'那'r')博士=CSV。Dictreader.(鳍)结果=[]场地='并发'#'交易率'尽管真的:尝试:测试=[博士。下一个(),博士。下一个(),博士。下一个()]测试。种类(lambda.一种那B.:CMP.(一种[场地],B.[场地]))测试=测试[-1]概括={}概括[场地]=测试[场地]。分裂('')[0.]概括['客户']=测试['用户']去世=“%S.调试?%S.D b?%S.“%(测试['config'],测试['debug_on'],测试['use_db'])概括['描述']=去世结果。附加(概括)除了终止:休息鳍。关闭()纠纷=打开('cleaned.csv'那'W')领域=结果[0.]。钥匙()领域。种类()Field_dict.={}为了场地在领域:Field_dict.[场地]=场地作家=CSV。dictwriter.(纠纷那领域)作家。写作(Field_dict.)作家。作者(结果)纠纷。关闭()

嗨伙计。我是将要阿卡@lethain.。
如果你想向我联系,那么我提供帮助的方式。如果您想从我这里收到电子邮件,请订阅我的每周时事通讯金沙手机APP。

我写一个优雅的拼图。

也,员工工程师。

受欢迎的

  • 写五,然后合成:良好的工程战略很无聊。
  • 管理Codebase中的技术质量。
  • 致力于重要的事情。
  • 您的第一个90天作为CTO或VP工程。
  • Digg团队如何被剥夺。

最近的

  • Mailbag:我们应该打电话给他们建筑师吗?
  • RSS饲料更换!接下来几天迁移博客。
  • sands金沙直营赌场
  • 工程造成措施。
  • 数字园艺在旺盛的草图。

有关的

  • Django和Ubuntu Intepid Almanac
  • 单个与多服务器架构的概述
  • 梦幻梦想与nginx服务器
  • 使用nginx重写参数化URL
  • apache / lighttpd混乱
©将金沙手机网larson 2021 标签 金沙手机APP rss. 关于