资源限制ulimit随笔

2018-08-07  本文已影响0人  午觉不眠Orz

1.概念

ulimit命令,用来限制用户对shell资源的访问。

思考:进程都是用户打开的,所以限制用户对shell资源的访问,也就是限制了进程对资源的访问。

2.hard ulimit和soft ulimit的区别

1)man ulimit,查看英文释义: A hard limit cannot be increased by a non-root user once it is set; a soft limit may be increased up to the value of the hard limit.
从定义上看出,hard limit无法被非root用户修改,soft limit,可以随意修改,但是不能超过hard limit.
实验结果:
2)查看方法:
ulimit -Ha; # 查看所有资源限制
ulimit -Sa; # 查看所有资源限制
ulimit -Hn; # 查看文件句柄限制
ulimit -Sn; # 查看文件句柄限制

3)设定方法:
ulimit -Hn 4096
ulimit -Sn 4096
ulimit -n 4096
ps:ulimit -n设定的最大值为$((2**20))=1048576;再多加个一都会报错。

3.关联参数file-max

参数说明:
This file defines a system-wide limit on the number of open files for all processes. (所有进程同一时间能打开的最大文件句柄数。)
参数修改方法:
/etc/sysctl.conf, 加入
fs.file-max = 6553560 重启生效

4. 修改ulimit的方法

1)方式一:ulimit -n 65535;
仅在当前session生效;代码中建议用该方法。ps:子shell无效。

2)方式二:修改/etc/profile
ulimit -n 65535;对每个用户生效;

3)方式三:修改/etc/security/limits.conf

5.如何查看某个服务或进程的最大句柄数

1)查看某个进程占用的文件句柄数
方法一:cat /proc/pid/fd
方法二:lsof -p pid
2)如何查看正在运行的进程的ulimit资源限制
cat /proc/pid/limits;

上一篇 下一篇

猜你喜欢

热点阅读