一、問題
在使用redis-benchmark進行redis基準測試時,模擬了10萬的客戶端請求,然後報錯提示:
Can't create socket: Too many open files
./redis-benchmark -h 192.168.0.60 -c 100000 -n 1000000 -d 50
二、原因
linux系統默認open file是1024,程序打開的文件/socket連接數量超過系統設定值。可以用命令查看:ulimit -a,如下圖
三、解決方法
臨時生效方法(僅當前會話有效):
ulimit -n 2048
永久生效方法:
vim /etc/security/limits.conf
在文件最後加上以下代碼,然後重新打開會話即可:
* soft nofile 40960
* hard nofile 40960
openfile 最大數:655350
unlimited 是一個特殊值,用於表示不限制。