CentOS上Magento性能测试
CentOS下Magento性能测试
今天将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 为例
* 测试结果:
注:
* 以上四种测试均在开启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?
今天将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 为例
* 测试结果:
第一次 | 第二次 | 第三次 | 第四次 | |
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 |
注:
* 以上四种测试均在开启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?