<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[静怡家园]]></title> 
<link>http://www.zhanghaijun.com/index.php</link> 
<description><![CDATA[书山有路勤为径，学海无涯苦作舟！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[静怡家园]]></copyright>
<item>
<link>http://www.zhanghaijun.com/post//</link>
<title><![CDATA[/etc/security/limits.conf的相关说明]]></title> 
<author>碟舞飞扬 &lt;webmaster@zhanghaijun.com&gt;</author>
<category><![CDATA[Linux技术]]></category>
<pubDate>Thu, 05 Jul 2012 05:55:00 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post//</guid> 
<description>
<![CDATA[ 
	　　limits.conf 文件实际是 Linux PAM（插入式认证模块，Pluggable Authentication Modules）中 pam_limits.so 的配置文件，而且只针对于单个会话。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;limits.conf的格式如下：<br/><br/>username&#124;@groupname type resource limit<br/>username&#124;@groupname：设置需要被限制的用户名，组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。<br/><br/>　　type：有 soft，hard 和 -，soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比hard 限制高。用 - 就表明同时设置了 soft 和 hard 的值。<br/><br/>resource：<br/><br/>　　core - 限制内核文件的大小<br/><br/>　　date - 最大数据大小<br/><br/>　　fsize - 最大文件大小<br/><br/>　　memlock - 最大锁定内存地址空间<br/><br/>　　nofile - 打开文件的最大数目<br/><br/>　　rss - 最大持久设置大小<br/><br/>　　stack - 最大栈大小<br/><br/>　　cpu - 以分钟为单位的最多 CPU 时间<br/><br/>　　noproc - 进程的最大数目<br/><br/>　　as - 地址空间限制<br/><br/>　　maxlogins - 此用户允许登录的最大数目<br/><br/>　　要使 limits.conf 文件配置生效，必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有：<br/><br/>　　session required /lib/security/pam_limits.so<br/><br/>　　按下面说的,可以用ulimit -n 32768设置最大描述符,不过只对当前会话有用,而且要root,这个不好办，或者修改/etc/security/limits.conf,但要重启<br/><br/>　　另外,没查到linux究竟最大描述符有没有限制,其他几个限制要不要改<br/><br/>http://www.nsfocus.net/index.php?act=magazine&do=view&mid=134<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如何限制和监视用户<br/><br/>　　PAM 大多数的LINUX都内建了PAM支持。PAM的一个功能是系统环境设置，例如设置某个用户允许使用的系统内存大小等。在Red Hat和Caldera这两个发行版本的 /etc/security/ 目录下包含了许多可配置文件。最有趣的当属 /etc/security/limits.conf 文件，它允许你定义用户或用户组规则，规则是“软(soft)”或“硬(hard)”，规则的内容（如CPU、内存、最大文件大小等）。例如：<br/><br/>*&nbsp;&nbsp;&nbsp;&nbsp;hard&nbsp;&nbsp;&nbsp;&nbsp;core&nbsp;&nbsp;&nbsp;&nbsp;0<br/><br/>bob&nbsp;&nbsp;&nbsp;&nbsp;soft&nbsp;&nbsp;&nbsp;&nbsp;nproc&nbsp;&nbsp;&nbsp;&nbsp;100<br/><br/>bob&nbsp;&nbsp;&nbsp;&nbsp;hard&nbsp;&nbsp;&nbsp;&nbsp;nproc&nbsp;&nbsp;&nbsp;&nbsp;150<br/><br/>　　第一行规则禁止所有人产生core文件，第二行规则（软）定义用户bob的最大进程数为100，第三行规则（硬）定义用户bob的最大进程数为150。可以超出软规则的限制（警告），但不能超过硬规则的限制。你可以想像得到，这些规则定义到所有用户的登录SHELL和FTP等服务时是很有帮助的。<br/><br/>Bash<br/><br/>　　Bash内建了一个限制器"ulimit"。注意任何硬限制都不能设置得太高，因此如果你在/etc/profile或用户的 .bash_profile （用户不能编辑或删除这些文件）中定义了限制规则，你就能对用户的Bash shell实施限制。这对于缺少PAM支持的LINUX旧发行版本是很有用的。你还必须确保用户不能改变他们的登录shell。限制的设置与PAM相似。例如：<br/><br/>ulimit –Sc 0<br/>ulimit –Su 100<br/>ulimit –Hu 150<br/><br/>http://www.ringkee.com/jims/read_folder/books/LinuxHackingExposed<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ulimit命令<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;设置限制<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;可以把命令加到profile文件里，也可以在/etc/security/limits.conf文件中定义限制。<br/><br/>命令参数：<br/><br/>　　-a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;显示所有限制<br/>　　-c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;core文件大小的上限<br/>　　-d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;进程数据段大小的上限<br/>　　-f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell所能创建的文件大小的上限<br/>　　-m&nbsp;&nbsp;&nbsp;&nbsp; 驻留内存大小的上限<br/>　　-s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;堆栈大小的上限<br/>　　-t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;每秒可占用的CPU时间上限<br/>　　-p&nbsp;&nbsp;&nbsp;&nbsp; 管道大小<br/>　　-n&nbsp;&nbsp;&nbsp;&nbsp; 打开文件数的上限<br/>　　-u&nbsp;&nbsp;&nbsp;&nbsp; 进程数的上限<br/>　　-v&nbsp;&nbsp;&nbsp;&nbsp; 虚拟内存的上限<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;除可用Ulimit命令设置外，也可以在/etc/security/limits.conf文件中定义限制。<br/><br/>domino type item value<br/><br/>　　domino是以符号@开头的用户名或组名，*表示所有用户，type设置为hard or soft。item指定想限制的资源。如cpu,core nproc or maxlogins。value是相应的限制值。<br/><br/>http://tech.blogchina.com/123/2005-06-10/372941.html<br/><br/>Unix、Linux下常用监控和管理命令工具<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;检查编写的程序打开的文件数。 　　<br/><br/>　　sysctl：显示（或设置）系统内核参数 　　<br/><br/>　　sysctl -a 显示所有内核参数 　<br/><br/>　　sysctl -w 参数名=参数值 　　<br/><br/>　　例如：sysctl -w fs.file-max=10240 设置系统允许同时打开的最大文件数为10240。 　　<br/><br/>　　内核参数fs.file-nr包括三个参数值，第一个参数表示系统中曾经同时打开过的文件数峰值，　　<br/>　　第二个参数表示空闲（分配后已释放）的文件数，<br/>　　第三个参数表示可以打开的最大文件数，其值等于fs.file-max。　　<br/><br/>　　当前打开的文件数 = 第一个参数值 - 第二个参数值 　　<br/><br/>　　例如： 　　<br/><br/>　　fs.file-nr = 977 223 10240 　　<br/><br/>　　当前打开的文件数 = 977 - 233 = 744 　　<br/><br/>　　设置内核参数时务必小心，如果设置不当会导致系统异常，甚至当机。　　<br/><br/>　　ulimit：显示（或设置）用户可以使用的资源限制 　　<br/><br/>　　ulimit -a 显示用户可以使用的资源限制 　　<br/><br/>　　ulimit unlimited 不限制用户可以使用的资源，但本设置对可打开的最大文件数（max open files） 　　<br/><br/>　　和可同时运行的最大进程数（max user processes）无效　　<br/><br/>　　ulimit -n <可以同时打开的文件数> 设置用户可以同时打开的最大文件数（max open files）<br/><br/>　　例如：ulimit -n 8192 　　<br/><br/>　　如果本参数设置过小，对于并发访问量大的网站，可能会出现too many open files的错误 　　<br/><br/>　　ulimit -u <可以运行的最大并发进程数> 设置用户可以同时运行的最大进程数（max user processes） 　　<br/><br/>　　例如：ulimit -u 1024　<br/><br/>http://www-128.ibm.com/developerworks/cn/linux/es-JavaVirtualMachinePerformance.html?ca=dwcn-newsletter-linux<br/><br/>IBM JVM for Linux on POWER 的性能调优技巧<br/><br/>用户限制设置<br/><br/>为了获得最佳性能，让运行 JVM 进程的用户拥有经过正确配置的用户设置是很重要的。这些参数可以设置成以下两种形式之一：<br/><br/>暂时地，适用于通过 ulimit 命令登录 shell 会话期间。<br/><br/>永久地，通过将一个相应的 ulimit 语句添加到由登录 shell 读取的文件之一（例如 ~/.profile），即特定于 shell 的用户资源文件；或者通过编辑 /etc/security/limits.conf。<br/><br/>建议设置成无限制（unlimited）的一些重要设置是：<br/>数据段长度：ulimit –d unlimited<br/>最大内存大小：ulimit –m unlimited<br/>堆栈大小：ulimit –s unlimited<br/>CPU 时间：ulimit –t unlimited<br/>虚拟内存：ulimit –v unlimited<br/><br/>对于需要做许多套接字连接并使它们处于打开状态的 Java 应用程序而言，最好通过使用 ulimit –n，或者通过设置<br/>/etc/security/limits.conf 中的 nofile 参数，为用户把文件描述符的数量设置得比默认值高一些。<br/><br/>提高 Oracle 用户的 shell 限制<br/><br/>/etc/security/limits.conf<br/>oracle soft nproc 2047<br/>oracle hard nproc 16384<br/>oracle soft nofile 1024<br/>oracle hard nofile 65536<br/>/etc/pam.d/login<br/>session required /lib/security/pam_limits.so<br/>/etc/profile<br/>if [ $USER = "oracle" ]; then<br/>if [ $SHELL = "/bin/ksh" ]; then<br/>ulimit -p 16384<br/>ulimit -n 65536<br/>else<br/>ulimit -u 16384 -n 65536<br/>fi<br/>fi<br/>Tags - <a href="http://www.zhanghaijun.com/tags/ulimit/" rel="tag">ulimit</a> , <a href="http://www.zhanghaijun.com/tags/%255Berror%255D/" rel="tag">[error]</a> , <a href="http://www.zhanghaijun.com/tags/setuid%253A/" rel="tag">setuid:</a> , <a href="http://www.zhanghaijun.com/tags/resource/" rel="tag">resource</a> , <a href="http://www.zhanghaijun.com/tags/temporarily/" rel="tag">temporarily</a> , <a href="http://www.zhanghaijun.com/tags/unavailable/" rel="tag">unavailable</a>
]]>
</description>
</item><item>
<link>http://www.zhanghaijun.com/post//#blogcomment</link>
<title><![CDATA[[评论] /etc/security/limits.conf的相关说明]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>