系统优化

一. Web前端优化:

    1.浏览器访问优化:

            1.1 减少http请求:

                  http是无状态的应用层协议,意味着每次HTTP请求都需要建立通信链路,进行数据传输,而在服务器端,每个http都需要启动独立的线程区处理,这些通信和服务的开销都很贵,减少http请求的数目可以有效提高访问性能。

                 减少http的主要手段是合并css,合并javascript,合并图片。将浏览器一次访问需要的javascript,css合并成一个文件,这样浏览器就只有一个请求,图片也可以合并,多张图片可以合并成一张图片,如果每张图片都有不同的超链接,可通过css偏移响应鼠标的点击操作,构成不同的URL

           1.2 使用浏览器缓存

                    对于一个网站而言,css,javascript,logo图标这些静态资源文件更新的频率都比较低,而这些文件又都是每次http请求都需要的,如果将其缓存在浏览器中,可极大的提高效率,通过设置http的Cache-Control和Expires属性,可设定浏览器缓存,缓存时间可以是整天也可以是整月。

                    在某些时候,    静态资源文件变化需要及时应用到客户端浏览器中,这种情况可以通过改变文件名来实现,即更新javascript文件并不是更新javascript文件内容,而是生成一个新的js文件并更新html文件中的引用。

                    使用浏览器缓存策略的网站在更新静态资源时,应采用批量更新的方法,比如需要更新10个图标文件,不宜把10个文件一次全部更新,而是一个一个的更新,并有一定的间隔时间,以免用户浏览器突然大量缓存失效,集中更新缓存,造成服务器负载骤增,网络阻塞的情况。

            1.3 启用压缩

                    在服务器端,对文件进行压缩,在浏览器端对文件进行解压缩,可有效减少通信传输的数据量。文本文件的压缩效率可达到80%以上,因此HTML,css,javascript文件启用GZip压缩达到较好的效果。但是压缩对服务器和浏览器产生一定的压力,通信宽带良好,而服务器资源不足的情况下要权衡考虑。

            1.4 css放在页面最上面,js放在页面最下面

                    浏览器在下载完整个css后才会对整个页面做渲染,因此将css放在最上面,让浏览器尽快加载css。js则相反,浏览器在加载js后,立即执行,有可能会阻塞整个页面,造成整个页面显示缓慢,但如果页面解析时需要用到js,那放在最下面就不太合适了

            1.5 减少cookie传输:

                    一方面,cookie包含在每次的请求和响应中,太大的cookie影响数据传输,因此在哪些数据需要写入cookie要慎重考虑,尽量减少cookie的传输的数据量,另一方面,对于某些静态资源的访问,如css,js等,发送cookie没意义,可以考虑静态资源使用独立域名访问,避免请求资源发送cookie,减少cookie的传输数据量。

        2.CDN加速(content distribute network----内容分发网络):

            本质上是个缓存,而且将数据缓存在离用户最近的地方,使用户可以快速获取数据,即网络访问第一跳。由于CDN部署在网络运营商的机房,这些运营商又是终端用户的网络服务提供商,因此用户请求路由的第一跳就到达了 CDN服务器,当CDN中存在浏览器请求资源时,从CDN之间返回给浏览器,最短路径返回响应。加快用户访问速度,减少数据中心负载压力。CDN缓存静态资源,如图片文件脚本静态网页等

        3.反向代理

                传统代理服务器位于浏览器一侧,代理浏览器将HTTP请求发送到互联网,而反向代理服务器位于机房一侧,代理网站web服务器接收HTTP请求,反向代理也可以实现负载均衡功能,而通过负载均衡构建的应用集群可以提高系统的总体处理能力,进而改善网站高并发情况下的性能。

 

二.应用服务器的性能优化:

        2.1 分布式缓存(网站优化优先考虑缓存)

               分布式缓存架构:分布式缓存指的是将缓存部署在多个服务器组成的集群中,以集群的方式提供缓存的服务,其架构有两种形式  : 一种是以Jboss Cache为代表的需要更新同步的分布式缓存框架,一种是以Memcached为代表的不互相通信的分布式缓存框架。

        2.2 异步操作:

               使用消息队列将调用异步化,可改善网站的扩展性。通过异步处理,将短时间高并发产生的事务消息存储在消息队列中,从而削平高峰期的并发事务。

        2.3 使用集群:

                网站高并发访问时,使用负载均衡技术为一个应用构建一个由多台服务器组成的服务器集群,将并发访问请求分支到多台服务器上处理,避免单一服务器由于负载压力过大而响应缓慢。

        2.4 代码优化:

                多线程,资源复用,数据结构,垃圾回收

 

三.存储性能优化:

        3.1 机械硬盘和固态硬盘:

        3.2 B+树 和LSM 树: 

                作为存储结构,B+树不是关系型数据库所独有的,Nosql数据库也可以使用B+树,同理,关系型数据库也可以使用LSM树,而且随着SSD硬盘的日趋成熟及大容量持久存储的内存技术的出现,相信B+树这一古老的存储结构会再次焕发青春。

        3.3 RAID 和HDFS:

待补充------------------------------------------------------------------------------------------------------

 

转载于:https://my.oschina.net/u/3110937/blog/1573873

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值