我們的設置如下:截斷PHP-HandlerSocket的結果,當值過大
- 主數據庫服務器,亞馬遜EC2實例m2.xlarge(17GB RAM,CPU 2x3.25ecu)上運行的Percona的5.5.x 運行PHP 5.4
- 應用服務器(一個或多個),亞馬遜EC2實例m1.large(7.5GB RAM,CPU 2x2ecu)
php-handlersocket
PECL庫中找到這裏http://code.google.com/p/php-handlersocket/
爲它工作的大部分,但一個即使我用相對流量加載應用程序服務器,結果在結果記錄具有中等到大值的字段的查詢上開始失敗。在我們的例子中,兩個主要的罪魁禍首是大約5Kb的XML字符串和以5-500Kb的二進制對象存儲的媒體文件。症狀是如果我請求10個字段並且XML在第8個字段中,我將獲得7個數據結果,並且第8個將是空的,根本不包括9和10。
有一個關於這種問題的php-handlersocket庫的報告問題,但也有一個建議的修復,我已經實現了,我認爲它有所幫助,但它似乎並不完全。問題的詳細信息和修復在這裏http://code.google.com/p/php-handlersocket/issues/detail?id=28
我的HandlerSocket設置與默認值略有不同,應該設置這些不同嗎?
loose_handlersocket_port = 9998
loose_handlersocket_port_wr = 9999
loose_handlersocket_threads = 4
loose_handlersocket_threads_wr = 1
open_files_limit = 65535
我已經減少了默認read
線程4,因爲他們建議磁芯* 2,默認值是16.我想反應較慢會比沒有好,但這似乎並沒有做出區別。
php-handlersocket
項目看起來已經死了,它本身有點令人驚訝,最近的更新源於一年多前,但似乎沒有任何其他PHP庫可用,所以我被卡住了。
我想知道是否有人有類似的問題,如果有其他庫可用,或者如果我應該探索跳過庫和創建我自己的接口像CURL。