2010-11-17 26 views
2

我在我的服務器上使用Memcache來存儲一些有用的查詢結果。我的服務器性能有問題。我開始調查它,這是某種鎖定問題。應該在獲得價值後關閉與Memcache的每個連接?

我的第一個猜測是那是Memcache。

我使用了這種方式:

$memcacheRT = new Memcache; 
    if (not open) $memcacheRT->connect('localhost', 11221) or die ("Could not connect"); 
    get some values from memcache() 
    //not closing 

我打開連接到內存緩存我第一次從那裏需要一些數據,並把它打開,直到劇本的情況下結束時,我需要更多的東西,不要」不要每次都打開它。它會在腳本的末尾關閉它自己的權利?

那麼這種方法是否正確? 它可以作爲併發頁面請求之間的鎖嗎?一個本地端口(11221)可以連接多少個連接? 如果我在每次獲取值後將其更改爲關閉,它會影響每次連接時打開和關閉的性能?

+1

,你應該能夠保持連接而不受處罰開放,確保你沒有使用,嘗試queryout在平板上(列表,按鍵元信息的任何方法只是使),因爲那些查詢在該查詢的持續時間內鎖定了Memcache – FatherStorm 2010-11-17 15:21:17

+1

您是如何確定這是鎖定問題的?我懷疑memcache是​​你的瓶頸,除非你濫用它(每個負載1000個請求)。您可能想安裝Xdebug並嘗試查找花費最多的時間。 – 2010-11-17 15:25:46

+0

@tomaszs - 檢查你的查詢 - 如果沒有弄錯,你鎖定表格而不是鎖定memcache – ajreal 2010-11-17 15:30:17

回答

2

嘗試使用持久的memcache連接