浅谈10个提升应用程序10倍性能的技巧
有两种不同类型的缓存需要考虑:
例如,如果一个页面每秒有10个视图,而您将其缓存1秒,那么对该页面的90%的请求将来自缓存。如果单独缓存静态内容,即使是新生成的页面版本也可能主要由缓存的内容组成。 缓存web应用程序生成的内容有三种主要技术:
web应用程序的缓存可以从内部(web应用程序服务器)到外部实现。首先,缓存用于动态内容,以减少应用服务器上的负载。然后,缓存用于静态内容(包括动态内容的临时副本),进一步卸载应用服务器。然后缓存将从应用服务器转移到速度更快和/或更接近用户的机器上,从而减轻应用服务器的负担,减少检索和传输时间。 改进的缓存可以极大地加快应用程序的速度。对于许多web页面,静态数据(如大型图像文件)占内容的一半以上。在没有缓存的情况下,检索和传输这样的数据可能需要几秒钟,但是如果数据是本地缓存的,那么只需要几秒钟。 作为在实践中如何使用缓存的示例,NGINX和NGINX Plus使用两个指令来设置缓存:proxy_cache_path和proxy_cache。您可以指定缓存位置和大小、缓存中保存的最大时间文件以及其他参数。使用第三个(也是非常流行的)指令proxy_cache_use_陈腐,您甚至可以在提供新鲜内容的服务器繁忙或宕机时直接使用缓存来提供陈旧的内容,从而为客户机提供一些内容,而不是什么也没有。从用户的角度来看,这可能会极大地提高站点或应用程序的正常运行时间。 NGINX Plus具有高级缓存功能,包括支持缓存清除和在仪表板上显示缓存状态,以便实时监控活动。 有关NGINX缓存的更多信息,请参阅参考文档和NGINX Plus管理指南。 注意:缓存跨越了开发应用程序的人员、进行资本投资决策的人员和实时运行网络的人员之间的组织界线。复杂的缓存策略(如这里提到的那些)是DevOps透视图价值的一个很好的例子,在DevOps透视图中,应用程序开发人员、体系结构和操作透视图被合并,以帮助满足站点功能、响应时间、安全性和业务结果(如完成的事务或销售)的目标。 技巧4 -压缩数据 压缩是一个巨大的潜在性能加速器。对于照片(JPEG和PNG)、视频(MPEG - 4)和音乐(MP3)等,都有精心设计和高效的压缩标准。这些标准中的每一个都将文件大小减少一个数量级或更多。 文本数据——包括HTML(包括纯文本和HTML标记)、CSS和JavaScript等代码——通常是未压缩传输的。压缩这些数据可能会对web应用程序的性能产生不成比例的影响,特别是对于移动连接缓慢或受限的客户端。 这是因为文本数据通常足以让用户与页面交互,而在页面中,多媒体数据可能更具支持性或装饰性。智能内容压缩可以减少HTML、Javascript、CSS和其他基于文本的内容的带宽需求,通常可以减少30%或更多,并相应地减少加载时间。 如果使用SSL,压缩会减少必须经过SSL编码的数据量,从而抵消了压缩数据所需的一些CPU时间。 压缩文本数据的方法各不相同。例如,请参阅技巧6了解SPDY和HTTP/2中的一个新的文本压缩方案,该方案专门针对头数据进行了调整。作为文本压缩的另一个例子,您可以在NGINX中打开GZIP压缩。在预压缩服务上的文本数据之后,可以使用gzip_static指令直接提供压缩后的.gz文件。 技巧5 -优化SSL/TLS 安全套接字层(SSL)协议及其后续协议传输层安全(TLS)协议正在越来越多的网站上使用。SSL/TLS对从源服务器传输到用户的数据进行加密,以帮助提高站点安全性。影响这一趋势的部分原因是,谷歌现在使用SSL/TLS作为对搜索引擎排名的积极影响。 尽管越来越受欢迎,但SSL/TLS涉及的性能问题仍然是许多站点的症结所在。SSL/TLS降低网站性能有两个原因:
为了鼓励使用SSL/TLS, HTTP/2和SPDY(在下一篇技巧文章中描述)的作者设计了这些协议,使浏览器在每个浏览器会话中只需要一个连接。这大大减少了SSL开销的两个主要来源之一。然而,现在可以做更多的工作来改进通过SSL/TLS交付的应用程序的性能。 优化SSL/TLS的机制因web服务器而异。例如,NGINX使用OpenSSL在标准的商用硬件上运行,以提供类似于专用硬件解决方案的性能。NGINX SSL性能有良好的文档记录,并将执行SSL/TLS加密和解密的时间和CPU消耗降到很低。 此外,有关如何提高SSL/TLS性能的详细信息,请参阅本文。简而言之,这些技术是:
NGINX和NGINX Plus可用于SSL/TLS终止——处理客户机流量的加密和解密,同时与其他服务器进行明文通信。要设置NGINX或NGINX Plus来处理SSL/TLS终止,请参阅HTTPS连接和加密TCP连接的说明。 技巧6 -实现HTTP/2或SPDY (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |