当前位置

试用阿里云的开放缓存服务OCS

James Qi 在 2015年1月22日 - 21:41 提交
内容摘要:很早前开始使用MediaWiki的时候就听说了MemCache,但一直没有用过,直到前几个月下力气做Drupal优化,才安装尝试了Memcache,果然是效果明显,对数据库的压力下降了很多,命中率在8......

  很早前开始使用MediaWiki的时候就听说了MemCache,但一直没有用过,直到前几个月下力气做Drupal优化,才安装尝试了Memcache,果然是效果明显,对数据库的压力下降了很多,命中率在80%左右,这样即使安装在单台服务器上,也会让该服务器的负载下降不少。当时记录了一篇博客《Drupal单服务器设置Memcache缓存》。

  而Memcache的典型应用其实是部署在专门的缓存服务器上,我曾经看过Wikipedia的服务器拓扑图,缓存服务器的数量还不少。我们近期在准备撤掉部分以前的独立服务器转用云平台,所以在试用阿里云的时候留意了有专门的开放缓存服务OCS。

  算了一算费用也不算太高,就准备申请一个低配置的试一试,没有想到还有一种128M的最低配置OCS目前是免费的,就马上开启,设置自己的云服务器ECS可以免密码访问,在同一个网络区域青岛机房。

  有了以前自己设置的经验,这次相对来说要简单一些,在php中安装memcache的插件,再在Drupal或者MediaWiki中设置。

  从 Drupal Community Documentation Memcache Installation 中摘录:

D6:

<?php 
  $conf['cache_inc'] = './sites/all/modules/memcache/memcache.inc';
  $conf['memcache_servers'] = array(
   '10.1.1.1:11211' => 'default',
   '10.1.1.1:11212' => 'default',
   '10.1.1.2:11211' => 'default',
   '10.1.1.3:11211' => 'cluster2',
   '10.1.1.4:11211' => 'cluster2' );
  $conf['memcache_bins'] = array(
   'cache' => 'default',
   'cache_filter' => 'cluster2',
   'cache_menu' => 'cluster2'
  );
?>

D7:

<?php
  $conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc';
  $conf['cache_default_class'] = 'MemCacheDrupal'; // The 'cache_form' bin must be assigned no non-volatile storage.
  $conf['cache_class_cache_form'] = 'DrupalDatabaseCache';
  $conf['memcache_servers'] = array(
   '10.1.1.1:11211' => 'default',
   '10.1.1.1:11212' => 'default',
   '10.1.1.2:11211' => 'default',
   '10.1.1.3:11211' => 'cluster2',
   '10.1.1.4:11211' => 'cluster2'
  );
  $conf['memcache_bins'] = array(
   'cache' => 'default',
   'cache_filter' => 'cluster2',
   'cache_menu' => 'cluster2' );
?>

  MediaWiki中更简单,将默认的localhost:11211改为123.m.cnqdalicm9pub001.ocs.aliyuncs.com:11211或者内网IP:11211就可以。

  实际效果看上去还不错,OCS后台可以查看各种统计监控数据,包括每秒请求次数、已用缓存大小、记录数、吞吐量、读取命中率、逐出等,不过可能是因为权限的原因,在Drupal的Memcache Statistic菜单中就显示无法连接缓存服务器获取统计数据,只是如果打开每页缓存显示的话,可以看到每一个页面中有很多hit。

  先这样试着用一用,以后会在更大网站中选用高配置的OCS。