Web服务器基准testing的最佳实践

我有一个networking服务器,我希望基准之前,我做了一些优化,看看它们是否有任何效果。

但是,我想知道什么是基准testing的最佳实践

例如,一位同事告诉我用本地networking上的另一台机器对机器进行基准testing,以消除networkingstream量问题。

不过,我正在考虑使用非现场机器进行基准testing,因为我想了解优化是否会在实际情况中产生任何影响。

我认为,许多速度调整处理优化networking连接。 例如,在Apache中,KeepAlive值允许浏览器使用单个TCP连接来请求多个对象,而不是打开和closures每个资源的连接。

如果testing是在本地networking连接上完成的,那么调整就不会有太大的改变,对吧? 与最小化js / css和从HTML中删除空格/注释一样。

另一方面,我确实看到互联网stream量的问题,使得基准testing每次都是一致的。 我真的不知道数字的变化是从调整,还是在两者之间的服务器增加或减less的负载。

谁是对的? 基准testing的最佳做法是什么? 我们应该这样做吗?

tl; dr – 我应该使用本地networking/异地/或两者的机器进行基准testing吗?

  • 在Linux上将Jetty部署为端口80守护进程
  • build议使用非标准SSL端口
  • 我如何pipe理多个用户在我的服务器上编辑相同的代码的权限?
  • 在日志中奇怪的“GET / api / levels /”和“GET / play /”请求
  • linux webserver在小型企业的备份计划?
  • KeepAliveclosures时的Apache MaxClients设置
  • 2 Solutions collect form web for “Web服务器基准testing的最佳实践”

    这一切都取决于你的网站。 同时执行脱机和现场基准不会受到影响。 但是,什么调整,如何testing?

    如果你主要提供静态内容或一些非常简单的dynamic内容,并以疯狂的速度进行操作,那么在Apache超时/内核级别调整内容是有道理的。

    如果你有一个dynamic网站,那么很快就会变成另一个野兽。 当然,做所有的Apache和内核级别的优化仍然是一个明智的事情,但不要被这些愚弄和镜像。

    当涉及性能调整/testing时,请首先处理最慢的部分。 对于一个dynamic站点来说,真正的瓶颈很可能是1)数据库或2)你的站点运行的脚本。

    如果最慢的部分是数据库,那么在使数据库变得更快之前,对Apache进行性能调整是没有意义的。 除此之外,你需要确保你有正确的caching技术,如果可能的话,你运行memcached或类似的。

    所以,这是关于什么基准和调整。 现在, 如何进行基准testing?

    我喜欢运行两种基准。 如果这些数字已经知道 – 比方说一个网站正在改版,所以你知道独立访问者,页面加载和旧网站的类似统计数据 – 我运行一个现实的基准,其速度类似于当前的网站。 我也用类似的速度* 2来衡量它的未来增长能否保持一点。

    我喜欢运行的另一种基准是吸烟和烧伤的网站。 我只是用尽可能快的速度跑疯狂的同步请求来折磨他们。 如果它能够承受的话,那么很好,如果不能的话,我会发现什么是突破点。

    我喜欢的工具:ab,围攻,JMeter。

    我使用了持续指定的%T(服务时间)的自定义日志格式。 我用格式replace了%l(identd name)。 这可以用来识别调整的慢页面。 慢速线路上的大量响应可能导致误报,networking重试也是如此。

    我使用自定义日志摘要脚本来确定页面响应速度最慢,平均响应时间。 这些可能是优化的好目标。 比较报告随着时间的推移有助于确定即将出现的问

    客户端工具可以提供良好的压力基准,并validation修复程序没有破坏网站。 有些因素可以提供与您在生产中获得的不匹配的基准。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.