linux資源限制配置文件是/etc/security/limits.conf;限制用戶進程的數(shù)量對于linux系統(tǒng)的穩(wěn)定性非常重要沐序。
limits.conf文件限制著用戶可以使用的最大文件數(shù),最大線程晶密,最大內(nèi)存等資源使用量鱼喉。
* soft nofile 655350 #任何用戶可以打開的最大的文件描述符數(shù)量秀鞭,默認1024,這里的數(shù)值會限制tcp連接
* hard nofile 655350
* soft nproc 655350 #任何用戶可以打開的最大進程數(shù)
* hard nproc 650000
@student hard nofile 65535
@student soft nofile 4096
@student hard nproc 50 #學生組中的任何人不能擁有超過50個進程扛禽,并且會在擁有30個進程時發(fā)出警告
@student soft nproc 30
- hard和soft兩個值都代表什么意思呢锋边?
soft是一個警告值,而hard則是一個真正意義的閥值编曼,超過就會報錯
一豆巨、所有用戶創(chuàng)建的進程數(shù):
$ ps h -Led -o user | sort | uniq -c | sort -n
2 shtermuser
11 zabbix
206 elasticsearch
490 root
二、系統(tǒng)最大打開文件描述符數(shù):
- 查看
$ cat /proc/sys/fs/file-max
6553600
- 設(shè)置
$ vim /etc/sysctl.conf
fs.file-max = 6553600
三掐场、進程最大打開文件描述符數(shù)
- 查看
ulimit -n默認查看的是soft limit
$ ulimit -n
170000
- 查看hard limit
$ ulimit -Hn
170000
- 設(shè)置
- 臨時設(shè)置
#通過ulimit -Sn設(shè)置最大打開文件描述符數(shù)的soft limit往扔,注意soft limit必須小于hard limit
$ ulimit -Sn 160000
#同時設(shè)置soft limit和hard limit。對于非root用戶只能設(shè)置比原來小的hard limit熊户。
$ ulimit -n 180000
- 永久設(shè)置
#root權(quán)限下萍膛,在/etc/security/limits.conf中添加如下兩行,表示所有用戶最大打開文件描述符數(shù)的soft limit為102400敏弃,hard limit為104800卦羡。重啟生效
* soft nofile 102400
* hard nofile 104800
- 注意:設(shè)置nofile的hard limit還有一點要注意的就是hard limit不能大于/proc/sys/fs/nr_open噪馏,假如hard limit大于nr_open麦到,注銷后將無法正常登錄。
四欠肾、查看當前系統(tǒng)使用的打開文件描述符數(shù)
$ cat /proc/sys/fs/file-nr
5664 0 186405
其中第一個數(shù)表示當前系統(tǒng)已分配使用的打開文件描述符數(shù)瓶颠,第二個數(shù)為分配后已釋放的(目前已不再使用),第三個數(shù)等于file-max刺桃。
五粹淋、知道了/etc/security/limits.conf中的參數(shù)含義之后,那么如何配置nofile,確定nofile的最大值呢桃移。
解答:使用ulimt -n命令進行測試屋匕,如果小于系統(tǒng)允許的最大值,設(shè)置成功借杰,大于最大值过吻,系統(tǒng)會報錯提示。
$ ulimit -n 1100000
-bash: ulimit: open files: cannot modify limit: Operation not permitted
$ ulimit -n 1048576
$ ulimit -n 1048577
-bash: ulimit: open files: cannot modify limit: Operation not permitted
$ ulimit -n 1048575
$ ulimit -n 1048576
六蔗衡、ulimit -a/n/H/S 都有什么含義
ulimit -a 顯示當前所有的資源限制
ulimit -H 設(shè)置硬件資源限制
ulimit -S 設(shè)置軟件資源限制
ulimit -n 設(shè)置進程最大打開文件描述符數(shù)
ulimit -u <程序數(shù)目> 用戶最多可開啟的程序數(shù)目
總結(jié)
a. 所有進程打開的文件描述符數(shù)不能超過/proc/sys/fs/file-max
b. 單個進程打開的文件描述符數(shù)不能超過user limit中nofile的soft limit
c. nofile的soft limit不能超過其hard limit
d. nofile的hard limit不能超過/proc/sys/fs/nr_open