我有一個PHP腳本,可以處理大小不超過10MB的較小文件(> 100,000)。它基本上將請求的文件加載到內存中並將其提供給客戶端。由於訪問控制,我不能通過apache直接提供這些文件,並需要一個包裹它的腳本。減少PHP IO負載
如果流量很高(大於150mbit),我的硬盤驅動器會大量使用,並且表示縮放限制。我有想法,我可以使用memcached來減少硬盤加載,因爲我有10g的ram可用,但memcached的最大項目大小爲1MB。然後我認爲我可以使用PHP-APC,但是如果緩存內存不足(完全重置),它的行爲是不可接受的。
如何減少IO負載?
謝謝
或者我剛剛收到一封來自亞馬遜的郵件,他們現在有http://aws.amazon.com/elasticache/ - 你不是爲他們做腳步嗎? ;) – mjec
我剛試過。我已將apc.user_ttl和apc.ttl設置爲30,並多次使用apc_add。緩存在超過限制後總是被徹底清除:-( – Philip
@Philip令人失望,APC對於GC來說有點不可靠,您可以使用'apc_cache_info()'來確定緩存是否接近大小,並且不會在這種情況下添加?或者如果接近極限,用'apc_delete()'和一個包含項目,大小,年齡和訪問時間的數據庫來完成自己的GC,以便從最舊的項目中釋放所需的內存? – mjec