limits.conf的工作原理:
limits.conf的后端是这样工作的:limits.conf是pam_limits.so的配置文件,然后/etc/pam.d/下的应用程序调 用pam_***.so模块。譬如说,当用户访问服务器,服务程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目录下选择一个 对应的服务文件,然后根据服务文件的内容选择具体的PAM模块进行处理。
limits.conf的后端是这样工作的:limits.conf是pam_limits.so的配置文件,然后/etc/pam.d/下的应用程序调 用pam_***.so模块。譬如说,当用户访问服务器,服务程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目录下选择一个 对应的服务文件,然后根据服务文件的内容选择具体的PAM模块进行处理。
pam_limits.so模块的主要功能是限制用户会话过程中对各种系统资源的使用情况。缺省情况下该模块的配置文件是/etc/security/limits.conf。而该配置文件的基本格式实际上是由4个字段组成的表,其中具体限制的内容包括:
Domain type item value 用户名/组名 软/硬限制 具体值 core——core文件大小 (KB) data——最大数据大小(KB) fsize——最大文件大小(KB) memlock——最大可用内存空间(KB) nofile——最大可以打开的文件数量 rss——最大可驻留空间(KB) stack——最大堆栈空间(KB) cpu——最大CPU使用时间(MIN) nproc——最大运行进程数 as——地址空间限制 maxlogins——用户可以登录到系统最多次数 locks——最大锁定文件数目
Ulimit命令
设置限制 可以把命令加到profile文件里,也可以在/etc/security/limits.conf文件中定义
限制。
命令参数
-a 显示所有限制
-c core文件大小的上限
-d 进程数据段大小的上限
-f shell所能创建的文件大小的上限
-m 驻留内存大小的上限
-s 堆栈大小的上限
-t 每秒可占用的CPU时间上限
-p 管道大小
-n 打开文件数的上限
-u 进程数的上限
-v 虚拟内存的上限
vi /etc/security/limits.conf加上:* soft nofile 8192* hard nofile 20480
要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:
session required /lib/security/pam_limits.so
重启ulimit -a查看 下 OK
vi /etc/security/limits.conf# 添加如下的行* soft noproc 11000* hard noproc 11000* soft nofile 4100* hard nofile 4100说明:* 代表针对所有用户noproc 是代表最大进程数nofile 是代表最大文件打开数
2)、让 SSH 接受 Login 程式的登入,方便在 ssh 客户端查看 ulimit -a 资源限制:a、vi /etc/ssh/sshd_config把 UserLogin 的值改为 yes,并把 # 注释去掉b、重启 sshd 服务:/etc/init.d/sshd restart3)、修改所有 linux 用户的环境变量文件:vi /etc/profileulimit -u 10000ulimit -n 4096ulimit -d unlimitedulimit -m unlimitedulimit -s unlimitedulimit -t unlimitedulimit -v unlimited如果你使用squid的话,你要在/etc/init.d/squid的文件加入ulimit -HSn 65535.另外,在squid.conf中也要加入max_filedesc 16384注:上面这种方式只是改变了用户登陆系统后的文件打开数,对于/etc/init.d/nginxphp这种的启动脚本并不起作用,像这种启动脚本,需要在脚本内加一行:
ulimit -HSn 65535
本文出自 “Mr_Z” 博客,请务必保留此出处http://zhangrong.blog.51cto.com/2196532/943343