很早前開始使用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。
评论