Web性能优化精品PPT课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
……
优化
门户构架采取的一些优化手段
❖ web防火墙,抵御ddos,sql注入,限制非法的网络爬虫 ❖ 根据业务优化设计,比如信息归档,过期等; ❖ 对数据库分库、分表的方法 ❖ 数据库集群 ❖ 文件静态化 ❖ 必要的时候分离文件服务 ❖ 缓存 ❖ 集群 ❖ Dns动态分配 ❖ 代理服务器 ❖ 其他
。 ❖ 典型的缓存算法有:最近最不常用(LFU)、最近最少使用(LRU)
❖ 信息时效性要求较高,内容更新频繁 ,检索方便准确;
❖ 瞬时并发访问数高,来自几方面的流 量(正常用户,搜索引擎爬虫,恶意攻 击等) ;
❖ 重复读内容较高 ❖ 无状态访问较多 ❖ 访客地域分布广,网络状况复杂
❖ clob字段的Like查询将耗费数据库的 80%以上的资源;
❖ 由于不良设计带来的复杂的sql;
01-01’,’yyyy-mm-dd’)), 12 partition part_02 values less than(to_date(’2010-
01-01’,’yyyy-mm-dd’)), 13 partition part_03 values less than(maxvalue) 14 ); Table created.
Web开发性能提升专题培训 (1)
研发中心 高可翔
榕
基
软
Байду номын сангаас
件
大纲 ❖门户的部份特征 ❖构架优化采取各种手段 ❖优秀的开源服务器与集群构架 ❖Cms3.5与5.0版本的改进 ❖Q&A
门户的部份特征
❖ 信息读写比例不对称 ❖ 耗资源的两类读
1. 数据库读,又以like查询与复杂sql最占 资源;
2. 文件读,直接造成系统的IO竞争。
❖ 文件共享、同步 (nfs、gfs 、rsync 、nas 、san )
❖ 优缺点;
❖ 需要识别一些常用的伎俩;(…)
❖ 和缓存策略的结合,一般使用静态文件处理能力强的web服务器。
缓存技术
网站架构和网站开发中的缓存也是非常重要。
❖ 缓存可以简单的看成一个Map,通过key在缓存里面找value。 ❖ Cache有从前到后有很多个层次,越靠近客户端,缓存的效果越明显
文件静态化
❖ 效率较高、消耗较小的就是纯静态化的html页面,所以我们尽可能使 我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是 最有效的方法;对于系统中频繁使用数据库查询但是内容更新很小的应 用,可以考虑使用html静态化来实现,这些信息其实大量被前台程序 调用,但是更新频率很小,可以考虑将这部分内容进行后台更新的时候 进行静态化,这样避免了大量的数据库访问请求。
❖ 目前由于seo及其他一些技术的影响,出现了一些伪静态技术(演示)
❖ 优缺点;
文件分离服务
❖ 图片、附件、视频文件等是最消耗web服务器资源的,于是我们有 必要将图片与页面进行分离,这是基本上大型网站都会采用的策略 ,他们都有独立的图片服务器,甚至很多台图片服务器。这样的架 构可以降低提供页面访问请求的服务器系统压力,并且可以保证系 统不会因为图片问题而崩溃,保证更高的系统消耗和执行效率。
根据业务优化设计
❖ 根据业务优化设计,比如信息归档,过期等; ❖ 比如cms3.5里可以对发布日期以外的数据做归档处理
数据库分库、分表设计
❖ 我们在应用程序中安装业务和应用或者功能模块将数据库进行 分离,不同的模块对应不同的数据库或者表,再按照一定的策 略对某个页面或者功能进行更小的数据库散列,比如用户表, 按照用户ID进行表散列,这样就能够低成本的提升系统的性能 并且有很好的扩展性。库和表,最终可以在配置文件中进行简 单的配置便能让系统随时增加一台低成本的数据库进来补充系 统性能。
by hash(transaction_id) 9 subpartitions 3 store in
(dinya_space01,dinya_space02,dinya_space03) 10 ( 11 partition part_01 values less than(to_date(’2006-
4. 改善查询性能:对分区对象的查询可以 仅搜索自己关心的分区,提高检索速度 。
❖ Oracle数据库提供对表或索引的分区方 法有三种:
1. ·范围分区 2. Hash分区(散列分区) 3. 复合分区
创建复合分区demo:
SQL> create table dinya_test 2( 3 transaction_id number primary key, 4 item_id number(8) not null, 5 item_description varchar2(300), 6 transaction_date date 7) 8 partition by range(transaction_date)subpartition
❖ 局限性
Oracle分区表技术
❖ Oracle等专业数据库服务器提供的实现 方式,使用分区的优点:
1. 增强可用性:如果表的某个分区出现故 障,表在其他分区的数据仍然可用;
2. 维护方便:如果表的某个分区出现故障 ,需要修复数据,只修复该分区即可;
3. 均衡I/O:可以把不同的分区映射到磁 盘以平衡I/O,改善整个系统性能;
数据库集群
❖ 数据库集群方面,很多数据库都有自己的解决方案,Oracle、Sybase 等都有很好的方案,常用的MySQL提供的Master/Slave也是类似的方 案,使用了什么样的DB,就参考相应的解决方案来实施即可。
❖ Oracle 10gR2 RAC 最多允许 32 个 nodes。 以 4 nodes 组成一个 Oracle RAC 效能最好。
web防火墙
❖ 全面的Web应用防护:防护各类 常见的Web应用攻击,如蠕虫、 黑客攻击、跨站脚本、网页盗链 等。基于智能特征分析技术,提 供对SQL注入的有效防护,从而 在事前有效遏制网页篡改;
❖ 细粒度DDoS攻击防护:对HTTP Get Flood等常见攻击行为进行 有效识别,并实时阻断;基于智 能关联分析技术对CC攻击进行检 测、防护;提供针对传奇游戏的 攻击防护,如常见的假人攻击、 创建帐号攻击、数据库攻击等;
优化
门户构架采取的一些优化手段
❖ web防火墙,抵御ddos,sql注入,限制非法的网络爬虫 ❖ 根据业务优化设计,比如信息归档,过期等; ❖ 对数据库分库、分表的方法 ❖ 数据库集群 ❖ 文件静态化 ❖ 必要的时候分离文件服务 ❖ 缓存 ❖ 集群 ❖ Dns动态分配 ❖ 代理服务器 ❖ 其他
。 ❖ 典型的缓存算法有:最近最不常用(LFU)、最近最少使用(LRU)
❖ 信息时效性要求较高,内容更新频繁 ,检索方便准确;
❖ 瞬时并发访问数高,来自几方面的流 量(正常用户,搜索引擎爬虫,恶意攻 击等) ;
❖ 重复读内容较高 ❖ 无状态访问较多 ❖ 访客地域分布广,网络状况复杂
❖ clob字段的Like查询将耗费数据库的 80%以上的资源;
❖ 由于不良设计带来的复杂的sql;
01-01’,’yyyy-mm-dd’)), 12 partition part_02 values less than(to_date(’2010-
01-01’,’yyyy-mm-dd’)), 13 partition part_03 values less than(maxvalue) 14 ); Table created.
Web开发性能提升专题培训 (1)
研发中心 高可翔
榕
基
软
Байду номын сангаас
件
大纲 ❖门户的部份特征 ❖构架优化采取各种手段 ❖优秀的开源服务器与集群构架 ❖Cms3.5与5.0版本的改进 ❖Q&A
门户的部份特征
❖ 信息读写比例不对称 ❖ 耗资源的两类读
1. 数据库读,又以like查询与复杂sql最占 资源;
2. 文件读,直接造成系统的IO竞争。
❖ 文件共享、同步 (nfs、gfs 、rsync 、nas 、san )
❖ 优缺点;
❖ 需要识别一些常用的伎俩;(…)
❖ 和缓存策略的结合,一般使用静态文件处理能力强的web服务器。
缓存技术
网站架构和网站开发中的缓存也是非常重要。
❖ 缓存可以简单的看成一个Map,通过key在缓存里面找value。 ❖ Cache有从前到后有很多个层次,越靠近客户端,缓存的效果越明显
文件静态化
❖ 效率较高、消耗较小的就是纯静态化的html页面,所以我们尽可能使 我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是 最有效的方法;对于系统中频繁使用数据库查询但是内容更新很小的应 用,可以考虑使用html静态化来实现,这些信息其实大量被前台程序 调用,但是更新频率很小,可以考虑将这部分内容进行后台更新的时候 进行静态化,这样避免了大量的数据库访问请求。
❖ 目前由于seo及其他一些技术的影响,出现了一些伪静态技术(演示)
❖ 优缺点;
文件分离服务
❖ 图片、附件、视频文件等是最消耗web服务器资源的,于是我们有 必要将图片与页面进行分离,这是基本上大型网站都会采用的策略 ,他们都有独立的图片服务器,甚至很多台图片服务器。这样的架 构可以降低提供页面访问请求的服务器系统压力,并且可以保证系 统不会因为图片问题而崩溃,保证更高的系统消耗和执行效率。
根据业务优化设计
❖ 根据业务优化设计,比如信息归档,过期等; ❖ 比如cms3.5里可以对发布日期以外的数据做归档处理
数据库分库、分表设计
❖ 我们在应用程序中安装业务和应用或者功能模块将数据库进行 分离,不同的模块对应不同的数据库或者表,再按照一定的策 略对某个页面或者功能进行更小的数据库散列,比如用户表, 按照用户ID进行表散列,这样就能够低成本的提升系统的性能 并且有很好的扩展性。库和表,最终可以在配置文件中进行简 单的配置便能让系统随时增加一台低成本的数据库进来补充系 统性能。
by hash(transaction_id) 9 subpartitions 3 store in
(dinya_space01,dinya_space02,dinya_space03) 10 ( 11 partition part_01 values less than(to_date(’2006-
4. 改善查询性能:对分区对象的查询可以 仅搜索自己关心的分区,提高检索速度 。
❖ Oracle数据库提供对表或索引的分区方 法有三种:
1. ·范围分区 2. Hash分区(散列分区) 3. 复合分区
创建复合分区demo:
SQL> create table dinya_test 2( 3 transaction_id number primary key, 4 item_id number(8) not null, 5 item_description varchar2(300), 6 transaction_date date 7) 8 partition by range(transaction_date)subpartition
❖ 局限性
Oracle分区表技术
❖ Oracle等专业数据库服务器提供的实现 方式,使用分区的优点:
1. 增强可用性:如果表的某个分区出现故 障,表在其他分区的数据仍然可用;
2. 维护方便:如果表的某个分区出现故障 ,需要修复数据,只修复该分区即可;
3. 均衡I/O:可以把不同的分区映射到磁 盘以平衡I/O,改善整个系统性能;
数据库集群
❖ 数据库集群方面,很多数据库都有自己的解决方案,Oracle、Sybase 等都有很好的方案,常用的MySQL提供的Master/Slave也是类似的方 案,使用了什么样的DB,就参考相应的解决方案来实施即可。
❖ Oracle 10gR2 RAC 最多允许 32 个 nodes。 以 4 nodes 组成一个 Oracle RAC 效能最好。
web防火墙
❖ 全面的Web应用防护:防护各类 常见的Web应用攻击,如蠕虫、 黑客攻击、跨站脚本、网页盗链 等。基于智能特征分析技术,提 供对SQL注入的有效防护,从而 在事前有效遏制网页篡改;
❖ 细粒度DDoS攻击防护:对HTTP Get Flood等常见攻击行为进行 有效识别,并实时阻断;基于智 能关联分析技术对CC攻击进行检 测、防护;提供针对传奇游戏的 攻击防护,如常见的假人攻击、 创建帐号攻击、数据库攻击等;