Web系统的缓存机制的建立及优化.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Web系统的缓存机制的建⽴和优化 Web系统的缓存机制的建⽴和优化 刚刚我们讲完了Web系统的外部⽹络环境,现在我们开始关注我们Web系统⾃⾝的性 能问题。我们的Web站点 着访问量的上升,会遇到很多的挑战,解决这些问题不仅 仅是扩容机器这么简单,建⽴和使⽤合适的缓存机制才是根本。 最开始,我们的Web系统架构可能是这样的,每个环节,都可能只有1台机器。 我们从最根本的数据存储开始看哈。 ⼀、 MySQL数据库内部缓存使⽤ MySQL 的缓存机制,就从先从MySQL 内部开始,下⾯的内容将以最常见的InnoDB存 储引擎为主。 1. 建⽴恰当的索引 最简单的是建⽴索引,索引在表数据⽐较⼤的时候,起到快速检索数据的作⽤,但是 成本也是有的。⾸先,占⽤了⼀定的磁盘空间,其中组合索引最突出,使⽤需要谨 慎,它产⽣的索引甚⾄会⽐源数据更⼤。其次,建⽴索引之后的数据 insert/update/delete等操作,因为需要更新原来的索引,耗时会增加。当然,实际上我 们的系统从总体来说,是以select查询操作居多,因此,索引的使⽤仍然对系统性能有 ⼤幅提升的作⽤。 2. 数据库连接线程池缓存 如果,每⼀个数据库操作请求都需要创建和销毁连接的话,对数据库来说,⽆疑也是 ⼀种巨⼤的开销。为了减少这类型的开销,可以在MySQL 中配置thread_cache_size来 表⽰保留多少线程⽤于复⽤。线程不够的时候,再创建,空闲过多的时候,则销毁。 其实,还有更为激进⼀点的做法,使⽤pconnect (数据库长连接),线程⼀旦创建在 很长时间内都保持着。但是,在访问量⽐较⼤,机器⽐较多的情况下,这种⽤法很可 能会导致 数据库连接数耗尽” ,因为建⽴连接并不回收,最终达到数据库的 max_connections (最⼤连接数)。因此,长连接的⽤法通常需要在CGI和MySQL之间 实现⼀个 连接池”服务,控制CGI机器 盲⽬”创建连接数。 建⽴数据库连接池服务,有很多实现的⽅式,PHP的话,我推荐使⽤swoole (PHP的 ⼀个⽹络通讯拓展)来实现。 3. Innodb缓存设置 (innodb_buffer_pool_size ) innodb_buffer_pool_size这是个⽤来保存索引和数据的内存缓存区,如果机器是MySQL 独占的机器,⼀般推荐为机器物理内存的80%。在取表数据的场景中,它可以减少磁 盘IO 。⼀般来说,这个值设置越⼤,cache命中率会越⾼。 4 . 分库/分表/分区。 MySQL数据库表⼀般承受数据量在百万级别,再往上增长,各项性能将会出现⼤幅度 下降,因此,当我们预见数据量会超过这个量级的时候,建议进⾏分库/分表/分区等 操作。最好的做法,是服务在搭建之初就设计为分库分表的存储模式,从根本上杜绝 中后期的风险。不过,会牺牲⼀些便利性,例如列表式的查询,同时,也增加了维护 的复杂度。不过,到了数据量千万级别或者以上的时候,我们会发现,它们都是值得 的。 ⼆、 MySQL数据库多台服务搭建 1台MySQL机器,实际上是⾼风险的单点,因为如果它挂了,我们Web服务就不可⽤ 了。⽽且, 着Web系统访问量继续增加,终于有⼀天,我们发现1台MySQL服务器 ⽆法⽀撑下去,我们开始需要使⽤更多的MySQL机器。当引⼊多台MySQL机器的时 候,很多新的问题又将产⽣。 1. 建⽴MySQL主从,从库作为备份 这种做法纯粹为了解决 单点故障”的问题,在主库出故障的时候,切换到从库。不 过,这种做法实际上有点浪费资源,因为从库实际上被闲着了。 不过,这种⽅案,只能⽤在两台机器的场景。如果业务拓展还是很快的话,可以选择 将业务分离,建⽴多个主主互备。 三、 MySQL数据库机器之间的数据 步 每当我们解决⼀个问题,新的问题必然诞⽣在旧的解决⽅案上。当我们有多台 MyS

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档