系统级配置
1、查看系统最大文件描述符
$ cat /proc/sys/fs/file-max
186405
2、设置系统最大文件描述符
临时性设置
$ echo 1000000 > /proc/sys/fs/file-max
永久性设置
在/etc/sysctl.conf中设置,应该设什么值是最佳实践?比如8G的内存,设为8192/2 * 256 = 524288
fs.file-max = 1000000
2、查看系统最大线程数配置
- 系统允许的最大线程数
/proc/sys/kernel/threads-max
cat /proc/sys/kernel/pid_max (默认32768)
cat /proc/sys/vm/max_map_count (默认65530)
用户级配置
用户资源配置
/etc/security/limits.d/90-nproc.conf
与/etc/security/limits.conf
的区别:
- 都是系统用户资源配置文件,可配置文件可限制文件打开数,系统进程等资源。
/etc/security/limits.d/
下的配置会覆盖/etc/security/limits.conf
的配置。- 只有root用户才有权限修改/etc/security/limits.conf
- 如果limits.conf没有做设定,则默认值是1024
可以配置的资源包括:
core
- 限制内核文件的大小(kb)date
- 最大数据大小(kb)fsize
- 最大文件大小(kb)memlock
- 最大锁定内存地址空间(kb)nofile
- 打开文件的最大数目rss
- 最大持久设置大小(kb)stack
- 最大栈大小(kb)cpu
- 以分钟为单位的最多CPU 时间noproc
- 进程的最大数目as
- 地址空间限制- maxlogins - 此用户允许登录的最大数目
以/etc/security/limits.d/90-nproc.conf
为例:
* soft nproc 1024
root soft nproc unlimited
该配置表示,系统其它普通用户最多进程默认是1024个,而root用户是unlimited(不受限制)。
soft
和hard
的区别:
soft xxx: 代表警告的设定,可以超过这个设定值,但是超过后会有警告。
hard xxx: 代表严格的设定,不允许超过这个设定的值。
soft不能比hard大,大于hard时会报错。
nproc
和nofile
的区别:
nproc: 是操作系统级别对每个用户创建的进程数的限制
nofile:是每个进程可以打开的文件数的限制
用户的线程数配置
- 查看当前用户的线程数限制
ulimit -a
-
修改最大线程数配置:
vi /etc/security/limits.d/90-nproc.conf[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yvo8UzhR-1627819637753)(images/image-20210801195851464.png)]
-
修改可打开的最大文件数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BJBruge0-1627819637762)(images/max_open_files.png)]