今天将Magento性能测试搬到了Linux上
* 环境:
1. Apche2.2.3 + PHP5.2.13(With APC extension) + Mysql5.0.77(操作系统等并未特别优化) + Memcache.
2. Magento 1.4.1.1 + 官方的Sample Products.
以访问前端的“家具”分类页 http://localhost/mage/furniture.html 为例
* 测试结果:
[table]
| | 第一次 | 第二次 | 第三次 | 第四次
| 1. 禁止Cache | 5,266ms | 5,655ms | 5,763ms ||
| 2. 开启Cache:配置使用FILE(默认)作为Cache | 2,450ms | 2,454ms| 2,494ms ||
| 3. 开启Cache:配置使用APC作为Cache |2,309ms |2,347ms|2,718ms||
| 4. 开启Cache:配置使用Memcache作为Cache |2,612ms |2,738ms|2,857ms||
| 5. 开启Cache:配置使用APC作为Cache,允许GZIP(开启DEFLATE)|2,057ms |2,110ms|2,042ms |1,958ms|
| 6. 开启Cache:配置使用APC作为Cache,允许GZIP(开启DEFLATE)在Magento中设置Block Cache(局部页面缓存)|1,612ms |1,554ms |1,531ms |1,560ms|
[/table]
注:
* 以上四种测试均在开启APC系统缓存(optcode)下进行(我尝试将APC代码缓存禁止,但是却发现几乎没有什么性能影响), 所以以上缓存影响系统响应速度响主要是源于数据缓存!
* 这里提到的"数据缓存"主要是指页面中使用的公用数据(PHP变量)的缓存、一些公用的局部页面(Block)缓存:如页面的navigation部分.
从以上测试中可以看出开启缓存之后(无论是APC还是Memcahe),性能几乎都提高了50%, APC和Memcache差不多,APC还略高。这是由于APC使用内存来缓存数据,而Memcahce尽管装在同一台服务器却由于Socket连接开销而性能略低于APC.不过由于Memcahe支持分布式的环境,所以在分布式环境下还是建议略损失点性能而使用Memcache.
测试5的结果速度略快(0.3s左右的时间)是因为启动了gzip压缩。
测试6由于启动了Magento的Block缓存(页面主要部分将静态输出), 页面加载时间稳定在1.5~1.6s.
测试6的配置已经基本使Magento单页访问时间控制在2s之内,这个速度对当今互联网B2C网站仍然不令人满意。经简单测试:易迅和京东产品分类页访问时间基本控制在700ms~1s之间。
所以,Mageneto需要进一步性能优化,否则无法用在国内生产环境。
下一步优化:
1. 针对每一个页面小心设置更多局部缓存(Block缓存)
2. 整页缓存(Whole Page) + AJAX/SSI?
* 环境:
1. Apche2.2.3 + PHP5.2.13(With APC extension) + Mysql5.0.77(操作系统等并未特别优化) + Memcache.
2. Magento 1.4.1.1 + 官方的Sample Products.
以访问前端的“家具”分类页 http://localhost/mage/furniture.html 为例
* 测试结果:
[table]
| | 第一次 | 第二次 | 第三次 | 第四次
| 1. 禁止Cache | 5,266ms | 5,655ms | 5,763ms ||
| 2. 开启Cache:配置使用FILE(默认)作为Cache | 2,450ms | 2,454ms| 2,494ms ||
| 3. 开启Cache:配置使用APC作为Cache |2,309ms |2,347ms|2,718ms||
| 4. 开启Cache:配置使用Memcache作为Cache |2,612ms |2,738ms|2,857ms||
| 5. 开启Cache:配置使用APC作为Cache,允许GZIP(开启DEFLATE)|2,057ms |2,110ms|2,042ms |1,958ms|
| 6. 开启Cache:配置使用APC作为Cache,允许GZIP(开启DEFLATE)在Magento中设置Block Cache(局部页面缓存)|1,612ms |1,554ms |1,531ms |1,560ms|
[/table]
注:
* 以上四种测试均在开启APC系统缓存(optcode)下进行(我尝试将APC代码缓存禁止,但是却发现几乎没有什么性能影响), 所以以上缓存影响系统响应速度响主要是源于数据缓存!
* 这里提到的"数据缓存"主要是指页面中使用的公用数据(PHP变量)的缓存、一些公用的局部页面(Block)缓存:如页面的navigation部分.
从以上测试中可以看出开启缓存之后(无论是APC还是Memcahe),性能几乎都提高了50%, APC和Memcache差不多,APC还略高。这是由于APC使用内存来缓存数据,而Memcahce尽管装在同一台服务器却由于Socket连接开销而性能略低于APC.不过由于Memcahe支持分布式的环境,所以在分布式环境下还是建议略损失点性能而使用Memcache.
测试5的结果速度略快(0.3s左右的时间)是因为启动了gzip压缩。
测试6由于启动了Magento的Block缓存(页面主要部分将静态输出), 页面加载时间稳定在1.5~1.6s.
测试6的配置已经基本使Magento单页访问时间控制在2s之内,这个速度对当今互联网B2C网站仍然不令人满意。经简单测试:易迅和京东产品分类页访问时间基本控制在700ms~1s之间。
所以,Mageneto需要进一步性能优化,否则无法用在国内生产环境。
下一步优化:
1. 针对每一个页面小心设置更多局部缓存(Block缓存)
2. 整页缓存(Whole Page) + AJAX/SSI?
本文通过在Linux环境下对Magento 1.4.1.1进行性能测试,对比不同缓存方式的效果,发现使用APC缓存并开启GZIP压缩及Block缓存能显著提升性能。
356

被折叠的 条评论
为什么被折叠?



