2010-11-11 101 views
0

我正在對我製作的應用進行基準測試,該應用使用repcached(帶有複製的memcached)來存儲對象並從db中取出一些負載。php memcache客戶端性能

雖然基準索引頁我跑

AB -c 400 -n 5000 http://mysite

當我用

list($server, $port) = explode(':', $settings->memcached_servers[0]); 
$this->link = new Memcache(); 
$this->link->connect($server, (int) $port); 

只是一個內存緩存服務器,我得到1000請求數/秒

當我多出一臺服務器到池中時

$this->link = new Memcache(); 
foreach($settings->memcached_servers as $server){ 
    list($server, $port) = explode(':', $server); 
    $this->link->addServer($server, (int) $port, 0, 10); 
} 

我只得到300個請求數/秒

的差別是很大的

任何想法,爲什麼?

我真的需要有冗餘2服務器,但性能也至關重要

它正常的,有如此巨大的差異?

基本上,索引頁面只對數據庫進行2次調用,只獲得一行,所以行在運行測試時被緩存。

但是我很驚訝地看到memcached在測試中落後了很多。

+0

你的問題被切斷。你可以查看嗎? – 2010-11-11 19:54:07

+0

從永久連接(您的單個服務器的代碼)更改爲非永久連接(您的代碼與多個服務器)有什麼區別? – 2010-11-11 20:07:09

回答

0

那麼它似乎罪魁禍首是addServer

它更改爲1對1的服務器和2,第二次爲權重參數做到了,性能是目前同