opencart性能提速解决方案 缓存加速(打造高可用的opencart电商平台)(转载)
有很多人来问,opencart是不是一个小系统,只能做个人电子商务网站,在2013年时候就有几个客户让我帮着做opencart站点优化。 总结下来是这样: opencart原系统本身适合做中小企业,数据库也就是几十张表,从安装文件大小也能看出都比其它任何一个电商系统小,当然大家希望它能撑起一个地球。 最近花了一周时间和一家高科技公司联合测试了其性能情况。 基础硬件环境: CPU: Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz (2核) 物理内存:2 GB (集成显卡会占用一部分,真实为1.833 GB) 空间大小:7.451 GB(含操作系统) 系统配置是不是比较差? 软件环境: OS版本:CentOS release 6.4 PHP版本: 5.3.28 mysql版本: 5.5.37 nginx版本: 1.7.3 网络环境: 服务器位置:国内 网络带宽:共享50M 测试情况: 1、在没有做任何优化情况下 1.1当商品数量比较少,只有几十个情况 结果:这种情况下响应在3S内,都还正常。 1.2当商品数量增加到2000个后 结果:响应开始变慢,客户需要等待,页面请求响应在4S左右。 1.3当商品数量增加到10000个后 结果:响应变的很慢,客户访问不流畅,不能正常浏览。 网站慢的原因是什么?主要是网络带宽,数据库响应慢造成的,同样的网络环境,当增加商品数量后,瓶颈主要在数据库响应方面; 很多人增加网络带宽,提高服务器空间等做法都是徒劳的。 我检查了,发现都是数据库返回数据慢造成的,其中有很多表的关联(有的时候是业务逻辑复杂,有的时候是表设计上的问题),很多的统计数据类似 count(distinct *) 这样的,玩过数据库的人都知道这是致命的。 解决方案可以从几个方面入手: 1. 数据库缓存,使用一些缓存技术如 memory cache,这项技术需要占用较多的主机服务器内存。 2. 页面缓存, 将动态页面全部变成静态页面,客户访问的是静态文件,如: page chche 使用sphinx技术进行缓存。 3. 程序优化,优化SQL,全面优化后台的表,这个比较捞命,很少人这样做,除非是个大公司。 不过有些简单的SQL优化还是可以动手做做,提速也比较明显的 opencart提速优化(商品数小于5000个) 3. 高速缓存服务器,把数据库表加入缓存中,读写进行分离,并保持数据一致性,专门为对数据库访问性能有较高要求,需要承载大量商品信息,轻松应对复杂应用程序而设计。 下面我们在高速缓存服务器做了些测试,情况如下: 测试主机(资源已回收了) 将商品数量添加到20000个,用户页面浏览响应在 1S 左右。 我起了 400 个并发,返回测试记录如下: Overview ================================================================================ Report name: ...