Linux系統中的最大進程數,最大文件描述,最大線程數

linux系統參數

單機支持上萬鏈接,還須要修改系統參數,兩個層面,一個是全局的文件句柄,還有一個是單進程的文件句柄,linux

全侷限制bash

在 Linux 下執行:服務器

cat /proc/sys/fs/file-nrspa

會打印出相似下面的一行輸出:.net

5100 0 101747進程

第三個數字 101747 就是當前系統的全局最大打開文件數(Max Open Files), 能夠看到, 只有 10 萬, 因此, 在這臺服務器上沒法支持超過10W的鏈接. 不少系統的這個數值更小, 爲了修改這個數值, 用 root 權限修改 /etc/sysctl.conf 文件:ip

fs.file-max = 1000000 net.ipv4.ip_conntrack_max = 1000000 net.ipv4.netfilter.ip_conntrack_max = 1000000it

須要重啓系統服務生效:io

$ sudo sysctl -p /etc/sysctl.conf登錄

進程限制

執行:

ulimit -n

輸出:

1024

說明當前 Linux 系統的每個進程只能最多打開 1024 個文件. 爲了支持更多鏈接, 你一樣須要修改這個限制.

臨時修改

ulimit -n 1000000

不過, 若是你不是 root, 可能不能修改超過 1024, 會報錯:

-bash: ulimit: open files: cannot modify limit: Operation not permitted

永久修改

編輯 /etc/security/limits.conf 文件, 加入以下行:

# /etc/security/limits.conf work hard nofile 1000000 work soft nofile 1000000

第一列的 work 表示 work 用戶, 你能夠填 *, 或者 root. 而後保存退出, 從新登陸服務器.

 

https://mp.weixin.qq.com/s/7uem8pLeHu8aeNu7n99NdQ

相關文章
相關標籤/搜索