我想,这是一个相当幼稚的问题。我经常需要弄清楚问题出在 Web 应用程序上还是仅仅是网络问题 - 丢失数据包或连接速度慢,比如,你的老板在机场使用糟糕的 wifi 连接与 Web 服务器之间,或者 CDN 与 Web 服务器之间,或者 MySQL 与 Web 服务器之间,或者 memcached 盒之间……你明白了。另外,你如何判断它是否是 DNS 服务器的问题?
你们中有些人没有抓住重点。这不是关于测量 Web 应用程序性能的问题。这是一个关于测量作为 Web 应用程序性能组成部分的网络性能的问题。
答案1
设置跟踪(可能可以通过查询字符串切换),显示代码繁重部分所花费的时间以及服务器总时间。如果服务器在 0.2 秒内创建页面,而加载需要 10 秒,则您知道问题出在网络或用户浏览器上。
您还可以使用 Firebug 中的“Net”选项卡或 Fiddler 中的时间线视图来查看各个组件的运行情况以及它们运行所需的时间。
答案2
要查看是否是 DNS 服务器的问题,您可以尝试绕过 DNS 服务器。您可以通过将相关主机名添加到 hosts 文件来实现这一点。如果在 hosts 文件中有地址时,Web 服务器似乎响应得更快,则进一步调查 DNS。如果网站性能仍然很差,则问题很可能出在其他地方。
更高级;您还可以使用 nslookup 或 dig 直接查询 DNS。请确保直接查询您网站域的权威 DNS 服务器以查看其响应时间,而不是本地 DNS 服务器的响应时间,因为本地 DNS 服务器可能具有条目的缓存副本。
答案3
最好的方法是根据已知连接良好的网站来确定 Web 性能的基准。确定基准后,您就可以开始相当简单的过程,即确定特定客户端延迟的原因 <--> 有问题的客户端的 Web 应用程序问题。
我对于基准延迟的建议是 pingdom.com - 每月 10 美元可以获得来自互联网上多个位置的稳定延迟分析(我已经使用它们六个月了 - 他们报告的每个问题都是真实的)以及对网站宕机问题的监控/通知。
对您的要求来说,特别重要的是,他们要从美国乃至国际上的多个地点建立您的网站性能审计日志。如果您遇到暂时性问题并希望回顾历史,这将非常有用。
能够向您的老板(问题中的目标受众)提供来自十二个不同位置的平均延迟图表,为识别客户端问题(WiFi,DNS,笔记本电脑问题)与网站基本性能和互联网连接问题提供了坚实的基础。
当然,DNS 服务器问题可以通过让客户端在本地 /etc/hosts(或者,在 Windows 的情况下,在 C:\windows\system32\drivers\etc\hosts)文件中放置适当的主机名->IP 映射来立即解决 - 如果在配置了适当的 /etc/hosts 文件后问题消失,则这是一个非常强烈的指标,表明解析器链(本地解析器、链中的第一个 DNS 服务器或规范)中存在问题
答案4
除了其他建议之外,我喜欢使用 Fiddler 来准确查看单个请求所用的时间以及占用的带宽。它从客户端运行,因此它从该角度向我显示每个请求所用的时间。