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中变量的对应关系:

  1. 去掉前面部分/proc/sys
  2. 将文件名中的斜杠变为点

例如:

  • /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/20a2dd80cbadhttps://www.ibm.com/developerworks/cn/linux/l-cn-ulimit/

原文地址:https://www.cnblogs.com/brucewhite/p/11607973.html