基本上我想知道是否可以通过使用像 squid 这样的缓存来加速我的服务器,检查配置中可能出现的错误,优化各种服务器软件参数等。
如果我知道服务器的 ping 时间和时钟速度以及其他硬件参数,是否可以预测提供 1MB 数据的时间。
例如,在我的情况下,我有 1GHz AMD 和 75ms ping,我在 0.6 秒内从核心内存获得 16 kB 页面 - 我可以让它更快吗?-只是在空载时显示页面的时间。
为此目的是否存在任何基准/工具?
编辑我尝试添加 squid 并没有获得任何性能提升。
谢谢。
在处理 Web 时,单个请求的速度通常并不重要,因为它不是服务器在负载下如何执行的实际指标。
您真正想知道的是您的服务器是否可以足够快地提供页面,以便用户在预期的负载条件下获得良好的体验。
要回答这个问题,您应该使用WCAT或JMeter之类的工具并针对您的服务器模拟负载,然后查找瓶颈发生在哪里(如果有的话)。
例如,通过查看您的 Google Analytics(分析)或统计信息帐户,您知道一天中最多的用户是 500。然后您决定要支持每天大约 750 个用户的峰值。如果您将其分解(取决于您的网站是 24x7 还是 9x5 使用),您可能会发现您需要支持的最大同时页面请求数约为 10。
然后使用 WCAT 或 Jmeter 运行一个测试,让 10 个用户同时使用该站点并执行各种操作。如果响应时间可以接受(您可以判断,但我会说页面加载时间少于 2 秒),那么您可以停在那里或继续添加用户以查看性能下降的时间点。
一旦您看到性能下降,您就可以将该下降与当时服务器的情况相关联。你有很多硬页面错误吗?CPU使用率高吗?您的数据库不堪重负吗?
一旦你发现了瓶颈(如果有的话),那么你就可以寻找减少瓶颈的方法。例如,如果您遇到硬页面错误和磁盘抖动,那么缓存可能是要走的路。
但这一切都是为了了解您需要达到哪些指标,针对这些指标进行测试,以及发现和解决瓶颈。
你有很多概念在这里飞来飞去。CPU 处理能力、内存、缓存、反向代理服务器和网络带宽都是导致最终性能好或差的独立因素。
纯粹在网络层,现代 PC 或服务器可以在几毫秒内处理成千上万的请求。但那是在您向其添加“做事”的应用程序之前。这个等式中产生最大差异的部分是:
因此,如果 1 和 2 已经很好,并且您的页面实际上正在快速生成和服务,那么 3 可能是最大的瓶颈。如果 2 很糟糕,那么 1 也会很糟糕,即使 3 很棒。如果 1 是瓶颈,那么您无法在 2 或 3 上进行优化以产生影响。