监视可以捕获几种不同类型的问题。它们包括:
- 服务器宕机。
- 服务器正在中断连接。
- 服务器的缓存丢失率很高。
- 服务器没有发送正确的内容。
像New Relic或Dynatrace这样的全局应用程序性能监视工具可以帮助您从远程位置监视页面加载时间,而NGINX可以帮助您监视应用程序交付端。应用程序性能数据告诉您,什么时候您的优化对用户产生了真正的影响,以及什么时候您需要考虑向基础设施添加容量来维持流量。
为了帮助快速识别和解决问题,NGINX Plus添加了应用程序感知的健康检查——经常重复的合成事务,用于提醒您注意问题。NGINX Plus还具有会话耗尽功能,在现有任务完成时停止新连接,启动速度较慢,允许恢复的服务器在负载平衡的组中加快速度。当有效使用时,健康检查允许您在问题严重影响用户体验之前识别问题,而会话耗尽和启动缓慢允许您替换服务器,并确保流程不会对感知的性能或正常运行时间产生负面影响。图中显示了内建的NGINX Plus活动监视仪表板,用于具有服务器、TCP连接和缓存的web基础设施。
结论-性能提高10倍
任何一个web应用程序的性能改进都有很大的不同,实际的收益取决于您的预算、您可以投入的时间和现有实现中的差距。那么,如何为自己的应用程序实现10倍的性能改进呢?
为了帮助您了解每种优化的潜在影响,这里有一些关于上述每种技巧可能带来的改进的提示,尽管您的经验几乎肯定会有所不同:
- 反向代理服务器和负载平衡——没有负载平衡,或者负载平衡不好,可能会导致性能非常差的情况。添加反向代理服务器(如NGINX)可以防止web应用程序在内存和磁盘之间发生抖动。负载平衡可以将处理从过载的服务器转移到可用的服务器,并使扩展变得容易。这些变化可以带来显著的性能改进,与当前实现中最糟糕的时刻相比,可以轻松实现10倍的性能改进,总体性能方面的成就虽小,但却很可观。
- 缓存动态和静态内容——如果您的web服务器负担过重,并且其性能是应用服务器的两倍,那么仅通过缓存动态内容就可以在峰值时间内提高10倍。静态文件的缓存也可以提高性能的个位数倍数。
- 压缩数据——使用媒体文件压缩,如照片的JPEG、图形的PNG、电影的MPEG - 4和音乐文件的MP3,可以大大提高性能。一旦这些都被使用,那么压缩文本数据(代码和HTML)可以将初始页面加载时间提高两倍。
- 优化SSL/TLS——安全握手对性能有很大的影响,因此优化握手可以使初始响应能力提高2倍,特别是对于文本较多的站点。在SSL/TLS下优化媒体文件传输可能只会带来很小的性能改进。
- 实现HTTP/2和SPDY——当与SSL/TLS一起使用时,这些协议可能会导致站点整体性能的增量改进。
- 调优Linux和web服务器软件(如NGINX)——诸如优化缓冲、使用keepalive连接和将耗费大量时间的任务卸载到单独的线程池等修复可以显著提高性能;例如,线程池可以将磁盘密集型任务的速度提高近一个数量级。
我们希望您亲自尝试这些技巧。我们希望听到您能够实现的应用程序性能改进。在下面的评论中分享你的结果,或者用#NGINX和#webperf的散列标签发布你的故事!
互联网统计资料
Resources for Internet Statistics
- Statista.com – Share of the internet economy in the gross domestic product in G‑20 countries in 2016
- Kissmetrics – How Loading Time Affects Your Bottom Line (infographic)
- Econsultancy – Site speed: case studies, tips and tools for improving your conversion rate
(编辑:ASP站长网)
|