2011-05-13 41 views
0

我很確定這是一個CakePHP錯誤,但想到這裏的某個人可能碰到過這個問題並且知道如何解決。僅供參考 - 我創建了一個ticketcakePHP + php5-fpm + memcached =大量開放的到memcached的TCP連接?

我運行PHP作爲fastcgi在nginx下通過php5-fpm。當我使用'Memcache'作爲我的Cake緩存的引擎時,我注意到TCP連接沒有關閉。我注意到蛋糕的MemcacheEngine不曾打電話給PHP memcache::close()

對於在非fastcgi進程下運行PHP的人,我認爲這是可以的,因爲PHP請求結束時進程結束,並且「斷開」PHP和memcached之間的TCP連接。

使用php5-fpm不是這種情況,因爲PHP進程一直在運行以供重用。

有沒有人知道這個最佳做法?我正在考慮修改CakePHP代碼以在處理結束時關閉連接 - 但我想知道是否有更好的方法。

注意:CakePHP的MemcacheEngine不使用pconnect

我的版本信息:

Ubuntu 10.10 64bit 
PHP 5.3.3 
PECL memcache 3.0.5 
memcached 1.4.5 
cakephp 1.3.8 
+0

HWO許多FastCGI的工作進程,你看,有多少連接的memcache?你是否得到同一個工作人員打開多個連接而不是重用其現有的連接? – 2011-05-13 19:56:42

+0

我對FPM使用pm = dymamic,因此子進程發生變化。在確定MemcacheEngine使用addServer()後,我能夠驗證工作人員與memcached的連接確實正在被重用。 – rynop 2011-05-16 14:58:22

回答