这是一个非常幼稚的问题,我猜。我经常需要弄清楚网络应用程序的问题,或者仅仅是网络问题 - 丢包或连接速度缓慢,例如,你的老板在机场的糟糕 wifi 连接和网络服务器之间,或者 CDN 和 Web 服务器,或者 MySQL 和 Web 服务器,或者 memcached 盒子……你明白了。另外,你如何判断它是否是DNS服务器?
你们中有些人没有抓住重点。这不是关于衡量 Web 应用程序性能的问题。这是一个关于衡量网络性能作为 Web 应用程序性能的一个组成部分的问题。
这是一个非常幼稚的问题,我猜。我经常需要弄清楚网络应用程序的问题,或者仅仅是网络问题 - 丢包或连接速度缓慢,例如,你的老板在机场的糟糕 wifi 连接和网络服务器之间,或者 CDN 和 Web 服务器,或者 MySQL 和 Web 服务器,或者 memcached 盒子……你明白了。另外,你如何判断它是否是DNS服务器?
你们中有些人没有抓住重点。这不是关于衡量 Web 应用程序性能的问题。这是一个关于衡量网络性能作为 Web 应用程序性能的一个组成部分的问题。
设置跟踪(可能由查询字符串切换),显示在代码繁重部分中花费的时间量,以及整体服务器时间。如果服务器在 0.2 秒内创建页面并且加载需要 10 秒,那么您知道它要么是网络,要么是用户的浏览器。
您还可以使用 Firebug 中的 Net 选项卡或 Fiddler 中的时间线视图来查看各个组件的关闭情况以及它们需要多长时间。
要查看是否是 DNS 服务器,您可以尝试绕过 DNS 服务器。您可以通过将相关主机名添加到主机文件中来做到这一点。如果当您在 hosts 文件中有地址时,Web 服务器的响应速度似乎要快得多,那么请进一步调查 DNS。如果网站性能仍然很糟糕,那么问题很可能出在其他地方。
更先进; 您也可以使用 nslookup 或 dig 直接查询 DNS。确保您直接查询您网站域的权威 DNS 服务器以查看它们的响应时间,而不是本地 DNS 服务器的响应时间,后者可能具有条目的缓存副本。
最好的方法是从具有已知良好连接性的站点确定您的 Web 性能基准。一旦确定了这一点,您就可以开始相当简单的过程,从相关客户端确定特定客户端 <--> Web 应用程序问题的延迟原因。
我对基线延迟的建议是 pingdom.com - 每月 10 美元让您坚如磐石(过去六个月我一直在使用它们 - 他们报告的每个问题都是真实的)来自 Internet 上多个位置的延迟分析以及网站关闭问题的监控/通知。
对您的要求特别重要的是,他们从美国和国际的多个地点建立了您网站性能的审计日志。如果您遇到暂时性问题并且希望回顾历史,这可能会很有用。
能够向您的老板(问题中的目标受众)提供来自 12 个不同位置的平均延迟图表,为识别客户端问题(WiFi、DNS、笔记本电脑问题)与网站问题提供了坚实的基础。基本性能和互联网连接。
当然,DNS 服务器问题可以通过让客户端在本地 /etc/hosts 中放置适当的主机名->IP 映射(或者,对于 Windows,C:\windows\system32\drivers\etc\ hosts) 文件 - 如果配置了适当的 /etc/hosts 文件后问题消失了,则表明您的解析器链(本地解析器、链中的第一个 DNS 服务器或规范)中存在问题。
从多个位置执行实际负载测试也无妨。运行本地负载测试,然后从数据中心外的不同位置运行。本地测试应该为您在 LAN/本地条件下的预期提供一个良好的基准。然后你可以将它与你从外部得到的进行比较,你可以看到你在网络端得到了什么样的损失。显然,外部测试的加载时间会更长,但您必须确定在该领域中什么是可接受的。
除了其他建议之外,我还喜欢使用 Fiddler 来准确查看单个请求需要多长时间以及使用了多少 badwidth。它从客户端运行,因此它向我展示了每个请求需要多长时间。
另外,试试 YSlow,一个很棒的 Firebug 插件:
http://developer.yahoo.com/yslow/
在我看来,您需要知道每个进程的网络连接、每个套接字连接的流量、每个套接字的响应时间以及可视化数据的方法。
appfirst.com 为我们工作。