使用redis-benchmark做基準測試時提示錯誤:
Could not connect to Redis at 127.0.0.1:13141: Cannot assign requested address
測試命令爲:
./redis-benchmark -h 127.0.0.1 -p 13141 -a iDvKW33333 -c 9000 -n 500000 -d 50 -q
原因:
服務端設置openfile後,還是會出現這個錯誤提示,查看ulimit -a
redis maxclients:
執行壓測
./redis-benchmark -h 192.168.12.113 -p 13133 -a iD44421 -c 5000 -n 50000 -d 50
一段時間後客戶端報錯:
Could not connect to Redis at 192.168.12.113:13141: Cannot assign requested address
connected_clients連接數沒有超,如下圖
客戶端TIME-WAIT端口也很多
sysctl -w net.ipv4.tcp_timestamps=1 開啓對於TCP時間戳的支持,若該項設置爲0,則下面一項設置不起作用
sysctl -w net.ipv4.tcp_tw_recycle=1 表示開啓TCP連接中TIME-WAIT sockets的快速回收
結論:
壓測的服務端和客戶端機器都要設置openfile 和 快速回收策略