簡體   English   中英

PHP的memcache無法關閉連接?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM