网站性能分析及优化方法

负载均衡

            原创---总结网站性能分析及方法

     LVS

   简介:

LVS是一个开源的软件,可以实现LINUX平台下的简单负载均衡。LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。

分为三层结构 1.负载调度器 2.服务器池 3.共享存储

   优点:

  1、开源,免费

  2、在网上能找到一些相关技术资源

  3、具有软件负载均衡的一些优点

  缺点:

  1、具有开源产品常有的缺点,最核心的就是没有可靠的支持服务,没有人对其结果负责;

  2、功能比较简单,支持复杂应用的负载均衡能力较差,如算法较少等;

  3、开启隧道方式需重编译内核;

  4、配置复杂;

5、只支持LINUX,如果应用还包括WINDOWS、 SOLIRIS等就不行了。

 

反向代理

     简介:

     指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器

 

DNS

  简介:

DNS负载均衡的优点是经济简单易行,并且服务器可以位于internet上任意的位置。但它也存在不少缺点:

1. 为了使本dns服务器和其他dns服务器及时交互,保证dns数据及时更新,使地址能随机分配,一般都要将dns的刷新时间设置的较小,但太小将会使dns流量大增造成额外的网络问题。

2. 一旦某个服务器出现故障,即使及时修改了dns设置,还是要等待足够的时间(刷新时间)才能发挥作用,在此期间,保存了故障服务器地址的客户计算机将不能正常访问服务器。

3. dns负载均衡采用的是简单的轮循负载算法,不能区分服务器的差异,不能反映服务器的当前运行状态,不能做到为性能较好的服务器多分配请求,甚至会出现客户请求集中在某一台服务器上的情况。

4. 要给每台服务器分配一个internet上的ip地址,这势必会占用过多的ip地址

服务器集群

         LVS可以实现服务器集群功能

        原创---总结网站性能分析及方法

 

CDN

     简介:

    Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。

包括分布式存储、负载均衡、网络请求的重定向和内容管理4个部分

   特点

   1、本地Cache加速 提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性

  2、镜像服务消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量。

  3、远程加速远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问的速度

  4、带宽优化自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能。

  5、集群抗攻击广泛分布的CDN节点加上节点之间的智能冗于机制,可以有效地预防黑客入侵以及降低各种DDoS攻击对网站的影响,同时保证较好的服务质量。

  关键技术包含以下几个方面;

  (1)内容发布:它借助于建立索引、缓存、流分裂、组播(Multicast)等技术,将内容发布或投递到距离用户最近的远程服务点(POP)处;

  (2)内容路由:它是整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程POP上均衡用户的请求,以使用户请求得到最近内容源的响应;

  (3)内容交换:它根据内容的可用性、服务器的可用性以及用户的背景,在POP的缓存服务器上,利用应用层交换、流分裂、重定向(ICP、WCCP)等技术,智能地平衡负载流量;

(4)性能管理:它通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的端到端性能(如包丢失、延时、平均带宽、启动时间、帧速率等),保证网络处于最佳的运行状态

 

 原创---总结网站性能分析及方法

IDC

     简介:

         Internet Data Center,就是电信部门利用已有的互联网通信线路、带宽资源,建立标准化的电信专业级机房环境,为企业、政府提供服务器托管、租用以及相关增值等方面的全方位服务。

作用:

就像骨干网、接入网一样,它提供了一种高端的数据传输(Data Delivery)的服务,提供高速接入的服务

它不仅是数据存储的中心,而且是数据流通的中心,它应该出现在Internet网络中数据交换最集中的地方。所以在网络中的位置和总的网络带宽容量,它构成了网络基础资源的一部分。它提供了一种高端的数据传输(Data Delivery)的服务,提供高速接入的服务

原创---总结网站性能分析及方法

 

图片服务器

       简介:

            图片服务器需要与应用服务器相分离。因为页面中包含太多图片,每次的图片请求会增大服务器压力。把图片服务器分离出来,会降低提供页面访问请求的服务器系统压力,并且可以保证系统不会因为图片问题而崩溃。图片服务器我们也会应用不同的应用策略,比如多台集群等

 

镜像服务器

       简介:

            镜像服务器(Mirror server)与主服务器的服务内容都是一样的,只是放在一个不同的地方,分担主的负载

           原创---总结网站性能分析及方法

 

 

数据库端

Mysql cluster(mysql 簇)

       简介:

            该技术允许在无共享的系统中部署“内存中”数据库的簇。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。

NDB是一种“内存中”存储引擎,它具有可用性高和数据一致性好的特点。能够使用多种故障切换和负载平衡选项配置NDB存储引擎

集群中的每个数据库服务器可以用廉价PC代替,可以节约成本

 

 原创---总结网站性能分析及方法

数据库分布式系统

       读写分离

            简介:

               设置主从服务器,主服务器负责增删改操作,从服务器负责查询操作。

               页面对数据库进行不同类型的操作,可以访问不同的数据库,从而缓解主服务器的压力

                主从服务器数据同步,可以用MySQL Proxy来完成之间的操作。因为服务器负载、网络拥堵等方面的原因,主与从之间的数据同步延迟是完全没有保证的。

                MySQL Proxy:

                MySQL Proxy是基于MySQL Client 和 MySQL Server之间的代理程序,能够完成对Client所发请求的监控、修改。从Client角度看,通过Proxy访问Server和直接访问Server没有任何区别

 

 原创---总结网站性能分析及方法

       垂直拆分库:

            简介:

                认为是根据表,功能来拆分,如系统功能模块一个库,轨迹功能模块一个库,报警模块一个库等,那这些就可以根据功能拆分了。

拆分的优点有:

1.       数据库清析明确,相对程序模块也跟着清析,有点象模块化了

2.       维护也方便,问题定位快,

缺点:

1.       若有库之关的关联就不能使用数据库的关联完成,需要程序完成了

2.       数据库的事务处理也变复杂,维护也会带来困难了

水平拆分库

       简介:

         根据某一些表的行来拆分库,如用户表,有1亿一数据,若是放在一张表中,查死,可以根据某一规则拆分,如用户id小于多少一个库,id小于多少与大于多少一个库(这个可以为以后用户不断的增多时),也可以通过其它规则,如取模之类,这种拆分要求所有关系的数据表跟着一起拆分(只能尽量作到),如BBS中,1-10W的用户发的贴都会跟着存放到同一个库中,10W-20W的存在另一个库,,这样,可以应用到数据库的关系查询之类,也很好的事务处理了

优点:

表关联,事务处理,应用程序处理方便,基本不会有很大的表处理

缺点:

切分相对复杂,后期维护人员难度增加,问题跟踪也比较难,系统中各模块耦合度较高,可能会对后面数据的适移拆分造成一下的困难

 

内存数据库

            简介:

用内存来支撑IOPS。将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。同时,内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在10倍以上。内存数据库的最大特点是其“主拷贝”或“工作版本”常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道

相关产品

内存数据库有美国MCObject公司的eXtremeDB、Oracle公司的TimeTen

Oracle公司的timeten示意图

 原创---总结网站性能分析及方法

 

代码端

动态页面静态化

     简介

     1.加快页面打开浏览速度,静态页面无需连接数据库打开速度较动态页面有明显提高;

2.减轻服务器负担,浏览网页无需调用系统数据库;

3.有利于搜索引擎优化SEO,Baidu、Google都会优先收录静态页面,不仅被收录的快还收录的全;

4.安全,静态页面从理论上讲是没有攻击漏洞的

        Smarty

            简介:

            它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离

1. 速度:采用Smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的。

2. 编译型:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下)

3. 缓存技术:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件

 原创---总结网站性能分析及方法

     Rewrite模块

        简介:

        一种服务器的重写脉冲技术,它使得服务器可以支持 URL 重写,是一种最新流行的服务器技术

     Memorycache

            简介:

                   是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。通过memcached协议与守护进程通信。但是它并不提供冗余(例如,复制其hashmap条目);当某个服务器S停止运行或崩溃了,所有存放在S上的键/值对都将丢失。

              原创---总结网站性能分析及方法



 

     Sql语句优化

1.       分析sql语句,把常用的sql建立索引

2.  根据个人经验,有若干技巧sql写法的技巧。例如select 不要写*,需要写出每一个表中列名称

 

     Js/css文件优化

            Js/css 文件用工具(YUI yuicompressor-x.y.z.jar )进行压缩,以压缩包的形式嵌入网页中。这样可以减少css/js加载时间,提高网页速度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章