Docker Engine Max Open files
最近在觀察到不知道什麼原因,在 Centos7 安裝 docker engine,Docker Engine 的 Max Open files 最多只有 65536
,當在高併發的環境下,這個數值是遠遠不夠的,所以這邊手動調整一下設定。
1. 首先,如何觀察當前 docker engine 的 max open files 數值是多少?
獲取 docker engine 的 PID
systemctl status docker
查詢
root$ cat /proc/${pid}/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size unlimited unlimited bytes
Max resident set unlimited unlimited bytes
Max processes unlimited unlimited processes
Max open files 65535 65535 files
Max locked memory unlimited unlimited bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 7277 7277 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
2. 因為 docker engine 是透過 systemd 來啟動的,為了不想以後升級 docker engine,都需要修改一次 docker.service unit file, 我們打算建立一個新的 docker unit file, 讓這個 unit file 可以覆蓋原本的值,我們將這個 file 放到 /etc/systemd/system/docker.service.d/override.conf
[Service]
LimitNOFILE=1000000
LimitMEMLOCK=infinity
3. 重啟 docker engine
systemctl daemon-reload
systemctl restart docker