ulimt 和 sysctl
ulimit : 对进程进行 资源限制 ,如打开文件数,进程数。
sysctl: 更改内核参数。
/proc/pid : 伪文件系统,以文件系统的方式 对 访问内核参数 提供接口。
1. ulimit
-a 查看,设置加响应参数,具体见 -a 结果 或 ulimit --help
常见参数 -n value 设置每个用户可以打开的最多的文件数:
-u value: 设置每个用户最多可以打开的进程数:
对于: /etc/security/limits.conf 这个文件,针对的是整个linux 系统设置 可以打开的文件数和进程数:
总结: ulimit 临时设置,针对用户,永久生效,将命令写入 /etc/profile:
limit.conf ,针对 整个系统设置:
是ulimit 设置永久生效发放:
放 /etc/profile 针对所有用户生效
放 ~/.bash_profile 针对指定客户生效
2. sysctl 更改内核参数:
配置文件: /etc/sysctl.conf 及/etc/sysctl.d 下的所有配置文件
sysctl -a 查看内核参数
sysctl value 查看value 的内核参数 ,如
sysctl net.ipv4.ip_forward
更改参数: 在配置文件里修改,sysctl -p 使之生效
3 ./proc 下的文件
/proc文件系统与sysctl.conf的对应关系
/proc/sys下内核文件与配置文件sysctl.conf中变量的对应关系:
- 去掉前面部分/proc/sys
- 将文件名中的斜杠变为点
例如:
- /proc/sys/net/ipv4/ip_forward -> net.ipv4.ip_forward
- /proc/sys/kernel/hostname -> kernel.hostname
更改 /proc/sys 下的配置是内核参数改变,不是所有的都能改,能改的 不能编辑,需要用echo ,如:
以下是/proc目录中进程N的信息:
- /proc/N pid为N的进程信息
- /proc/N/cmdline 进程启动命令
- /proc/N/cwd 链接到进程当前工作目录
- /proc/N/exe 链接到进程的执行命令文件
- /proc/N/fd 包含进程相关的所有的文件描述符,可使用ll 查看软链,主要是程序输出日志:
- /proc/N/status 进程状态信息,比stat/statm更具可读性
参考文章: https://www.jianshu.com/p/20a2dd80cbad,https://www.ibm.com/developerworks/cn/linux/l-cn-ulimit/