LinuxEye - Linux系统教程

LinuxEye - Linux系统教程

当前位置: 主页 > Linux教程 >

limits.conf配置文件详解

时间:2012-09-18 10:01来源:未知 编辑:admin 点击:
limits.conf的工作原理: limits.conf的后端是这样工作的:limits.conf是 pam_limits.so的配置文件,然后/etc/pam.d/下的应用程序调用pam_***.so模块。譬如说,当用户访问服务器,服务程序将请求发送
limits.conf的工作原理:
  limits.conf的后端是这样工作的:limits.conf是 pam_limits.so的配置文件,然后/etc/pam.d/下的应用程序调用pam_***.so模块。譬如说,当用户访问服务器,服务程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目录下选择一个对应的服务文件,然后根据服务文件的内容选择具体的PAM模块进行处理。
     
实验:limits实验!关于能打开的最大文件数和能并发的最大进程数:
[研究背景: nginx 与 php 的连接, 以及对其做压力测试的时候! 由于php-cgi是单进程的,影响nginx的效率,  然后便使用产蛋程序 spawn.
                   但是它依然受到限制, 怎么办? 系统最大并发进程数的控制, 也就是下面实验的目的了! ]
[注意, 先将系统的默认全局参数调大 sysctl.conf -->kernel.threads-max = xxxxx .... ]

实验结论:
a. nofile的配置,可以用 * 来通配对所有的用户的设置!
b. noproc的配置,不能用 *  无效, 只能指定特定的用户!

温馨提醒: 最大进程并发数的设置很危险的,如果你的机器性能不是很好的话,用spawn产出5000个cgi进程,然后用ab并发出上万个查询请求进行压力测试!
最后你发现,并发数小于5000的时候错误率为零,再高点儿,就有错了!
1> limits.conf
* soft nofile 1000000  
* hard nofile 1000000  
root soft nproc  20000  
root hard nproc  20000  
* soft nproc  20000  
* hard nproc  20000  
  
实验结果:  
[root@lin /]# ulimit -u   //20000  
[root@lin /]# ulimit -n   //1000000  
[root@lin /]# su - test  
[test@lin ~]$ ulimit -u   //1024  
[test@lin ~]$ ulimit -n   //1000000

2> limits.conf   
* soft nofile 1000000  
* hard nofile 1000000  
root soft nproc  20000  
root hard nproc  20000  
* soft nproc  20000  
* hard nproc  20000  
test soft nproc  20000  
test hard nproc  20000  
 
实验结果:  
[root@lin /]# ulimit -u   //20000  
[root@lin /]# ulimit -n   //1000000  
[root@lin /]# su - test  
[test@lin ~]$ ulimit -u   //20000  
[test@lin ~]$ ulimit -n   //1000000

3> limits.conf
* soft nofile 1000000  
* hard nofile 1000000  
root soft nproc  30000  
root hard nproc  30000  
 
实验结果:  
[root@lin /]# su - root  
[root@lin ~]# ulimit -u  //30000  
[root@lin ~]# ulimit -n  //1000000  
[root@lin /]# su - test  
[test@lin ~]$ ulimit -u  //1024  
[test@lin ~]$ ulimit -n  //1000000

4> limits.conf 
* soft nofile 1000000  
* hard nofile 1000000  
* soft nproc  20000  
* hard nproc  20000  

实验结果:  
[root@lin /]# su - root  
[root@lin ~]# ulimit -u  //1024  
[root@lin ~]# ulimit -n  //1000000  
[root@lin ~]# su - test  
[test@lin ~]$ ulimit -u  //1024  
[test@lin ~]$ ulimit -n  //1000000 

转载请保留固定链接: https://linuxeye.com/Linux/797.html

------分隔线----------------------------
标签:limits.conf
栏目列表
推荐内容