[英]PHP memcache not closing connections?
我在各種Web服務器上使用PHP-memcache連接memcache服務器。
我這樣連接:
$memcache = new Memcache;
$memcache->addServer('memcache_host', 11211);
$memcache->addServer('memcache_host2', 11211);
然后使用get & set
獲取或設置數據。
在大多數情況下,它都可以正常工作,但是如果出現速度變慢的情況,那么我會發現內存緩存連接突然增加,這會產生問題。
我認為這是因為默認情況下, addServer
創建持久連接,並且在處理請求后可能無法快速關閉它們。
所以請讓我知道這僅僅是因為addServer
函數的默認行為。 我應該通過在addServer
函數addServer
false
作為第三個參數傳遞來使用非持久連接。
由於如果客戶端未明確關閉內存緩存打開的連接,則內核可能會將其保持為保活模式,因此降低以下參數可能會有所幫助,但會影響其他任何連接,例如SSH。 因此,將tcp_keepalive_time設置得太低不是一個好主意。
創建以下文件:
vim /etc/sysctl.d/low-tcp-timeout.conf
# Keep connections in keepalive for 600 seconds. Default 7200s = 2h.
net.ipv4.tcp_keepalive_time = 600
# 0 probes. Default 9
net.ipv4.tcp_keepalive_probes = 0
# Default 75 seconds between each probe
net.ipv4.tcp_keepalive_intvl = 75
並運行sysctl -p
以應用這些值。 您也可以看看net.ipv4.tcp_fin_timeout
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.