性能调优之系统结构优化

负载均衡

负载均衡器作为反向代理服务器,接收网络流量,并把请求转交给另一个服务器。我们让负载均衡器支持两台以上的应用服务器,利用选择算法在服务器间分配请求。最简单的方法就是轮询,每个新请求发送给列表中的下一台服务器,或者把请求发送给活动连接数量最少的服务器。例如通过DNS的负载均衡器可以把用户的访问均匀地分散在多个Web服务器上,减少服务器的请求负载。

多层次的缓存

缓存的引入可以多层次,从前端、应用内部、数据库等,缓存通过更快地向客户端提供内容来改善Web应用的性能。比如:前端页面可以利用缓存技术减少页面刷新;数据库前可以采用Redis等;应用自身同样可以用缓存代替数据库的读操作。

例如:

静态内容的缓存:不经常变化的文件,比如图像文件(JPEG,PNG)和代码文件(CSS,JavaScript),可以存在一个边缘服务器上,以便在内存或磁盘上进行快速检索。

动态内容的缓存:通过简单地将已经生成HTML的副本保存一小段时间,就可以大幅度减少需要生成页面的总数。

优化 SSL/TLS

加密套接字层(SSL)协议及传输层安全(TLS)协议,加密了服务器发送给用户的数据,大大提升网站安全性,被越来越多的网站所采用。然而SSL/TLS影响了网站性能,主要的因素:

每当打开一个新的连接,最初的握手都需要建立加密密钥。浏览器使用 HTTP/1.x 和服务器建立多条连接,随着服务器的增多,连接会成倍增加。
服务器上加密数据,客户端解密数据,这些都是持续的开销。

预处理

预处理是在预定计划上由系统激发主动执行的计算模式,通过提前处理时限数据生成时间和访问时间的隔离,在数据访问的时候不再需要为那大结果而执行任何计算,大大增强系统的访问性能,有效利用系统的闲置时间。例如月底系统生成月报表需要消耗12个小时,利用预处理我每天把当天的数据计算好了后和前一天的报表合并,每天仅需花20分钟,节省了系统计算时间。

建立web集群

反向代理服务器工作在HTTP层,类似代理服务器,与普通的代理服务器不同的是,服务器在代理的后端,而不是客户端在代理的后端,可以考虑使用EGINX做反向代理服务器实现web服务器的负载均衡。



留言