企业级电子商务与供应链解决方案供应商.
联系我们

+86-13006619568

info@cnopencart.com

深圳,苏州,成都,上海,杭州

扫二维码加微信
wechat

深圳,苏州

+86-16606168892

Top

opencart性能提速解决方案 缓存加速(打造高可用的opencart电商平台)(转载)

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:                  2014-7-10 17:19:44
Run on:                       2014-7-10 17:19:44
Run length:                   00:01:00

Web Application Stress Tool Version:1.1.293.1

Number of test clients:       1

Number of hits:               1770
Requests per Second:          29.43

Socket Statistics
--------------------------------------------------------------------------------
Socket Connects:              1826
Total Bytes Sent (in KB):     559.55
Bytes Sent Rate (in KB/s):    9.30
Total Bytes Recv (in KB):     17552.60
Bytes Recv Rate (in KB/s):    291.84

Socket Errors
--------------------------------------------------------------------------------
Connect:                      3
Send:                         0
Recv:                         0
Timeouts:                     0

RDS Results
--------------------------------------------------------------------------------
Successful Queries:           0

Script Settings
================================================================================
Server:                       180.169.58.214
Number of threads:            400

Test length:                  00:01:00
Warmup:                       00:00:00
Cooldown:                     00:00:00

Use Random Delay:             No

Follow Redirects:             Yes
Max Redirect Depth:           15

Clients used in test
================================================================================
localhost

Clients not used in test
================================================================================

Result Codes
Code      Description                   Count
================================================================================
200       OK                            1770

Page Summary
Page                            Hits      TTFB Avg  TTLB Avg  Auth      Query
================================================================================