我有一个see服务器,我希望在对它进行一些优化之前对其进行基准测试,看看它们是否有任何效果。
然而,我想知道基准测试的最佳实践是什么?
例如,一位同事告诉我用本地网络上的另一台机器对机器进行基准测试,以消除网络流量问题。
然而,我正在考虑使用一台场外机器进行基准测试,因为我想看看这些优化在现实世界中是否会有任何不同。
我的论点是,许多速度调整涉及优化网络连接。例如,在Apache中,KeepAlive值允许浏览器使用单个TCP连接请求多个对象,而不是为每个资源打开和关闭连接。
如果测试是在本地网络连接上进行的,那么这种调整就不会有那么大的区别了,对吗?同样,最小化js/css和从HTML中删除空白/注释也是如此。
另一方面,我确实看到了网络流量的问题,每次基准运行都是一致的。我真的不知道数字的变化是来自于调整,还是服务器之间的负载增加或减少。
谁是对的?基准测试的最佳实践是什么?我们应该两者兼得吗?
我应该在本地网络/场外/或者两者都使用机器进行基准测试吗?
发布于 2010-11-04 18:13:02
这很大程度上取决于你的网站。做离线和现场基准都不会有什么影响。但是,要调整什么,如何测试呢?
如果您主要是提供静态内容或一些非常简单的动态内容,并以疯狂的速度提供服务,那么在Apache超时/内核级别上进行调整是有意义的。
如果你有一个动态的网站,那么调整很快就会变成另一种野兽。当然,让所有的Apache和内核级别的优化仍然是一件明智的事情,但是不要被那些欺骗和冒烟。
当涉及性能调整/测试时,总是首先处理最慢的部分。对于动态站点,真正的瓶颈很可能是: 1)数据库,或者2)您的站点正在运行的脚本。
如果最慢的部分是数据库,那么在使数据库变得更快之前,对Apache进行性能优化是没有意义的。此外,您还需要确保您有适当的缓存技术,并在可能的情况下运行梅卡奇或类似的缓存技术。
所以,这就是要衡量和调整什么。现在,如何进行基准测试?
我喜欢运行两种基准。如果这些数字已经被知道--比如说,一个网站正在进行改造,那么你可以从旧网站上了解唯一的访问者、页面载入量和类似的统计数据--我运行了一个与当前网站相似的真实基准。我还以类似的利率*2作为基准,看看它能否承受一点未来的增长。
我喜欢运行的另一种基准是吸烟和焚烧网站。我将尽可能快地运行benchmark,以疯狂的同步请求来折磨它。如果它能忍受它,很好,如果它不能,我发现什么是断点。
我喜欢的工具: ab,攻城,JMeter。
发布于 2010-11-05 04:31:03
我使用了自定义日志格式,其%T (服务时间)是在持续的基础上指定的。se在格式中替换了%l (同名)。这可以用来识别需要调优的慢页。慢行上的大响应会导致误报,网络重试也是如此。
我使用一个自定义日志摘要脚本来识别响应最慢和平均响应时间最慢的页面。这些可能是优化的好目标。比较一段时间后的报告有助于发现即将出现的问题。
客户端工具可以提供良好的压力基准,并验证修复没有破坏网站。有些因素可以提供与生产中所得到的不匹配的基准。
https://serverfault.com/questions/198308
复制相似问题