1. /proc/sys/fs/file-max 设置内核最大的文件句柄数
2. /proc/sys/fs/nr_open 设置进程最大的文件句柄数,不能超过1
3. /etc/security/limits.conf “work soft nofile xxxx”设置用户单个进程的最大的文件句柄数,不能超过2,否则ssh无法登录(今天的遇到的坑)。修改limit.conf前可以用 ulimit命令验证一下你将要设置的值是否合法。
4. ulimit -n xxx 该命令只对当前终端有效。
1.limit限制每个shell进程和它的子进程对资源的占用。每个登录,还是每个进程?
比如ulimit -n 10240 可以临时改变当前session的shell进程的文件句柄数限制,退出当前窗口后,限制恢复。
要每个shell都生效,添加到系统启动脚本中
也可以在进程启动脚本前添加ulimit -n 命令
2.修改 /etc/security/limits,可以设置用户级别的限制,包括软限制和硬限制
3. /proc/sys/fs/file-max,可以设置系统级别的限制
应用:修改网络连接数限制
http://blog.csdn.net/wh0426/article/details/52311683
1./etc/security/limits.conf中指定的nofile的值,nofile有上限,不是无穷大。nofile由内核参数nr_open定义的.
“在2.6.25内核之前有个宏定义,定义了这个值的最大值,为1024*1024,正好是100万,而在2.6.25内核及其之后,这个值是可以通过/proc/sys/fs/nr_open来设置。”
2.使用cat /proc/sys/fs/nr_open 查看nr_open值,可通过修改/ect/sysct.conf 修改fs.nr_open值,sysctl -p生效
3.fix_max linux内核定义的最大file handles(文件句柄数).nr_open定义是单进程最大file-handles,file-handles(即文件句柄)
4./proc/sys/fs/file-nr 记录系统中fd的使用情况,已分配文件句柄的数目
inode 或i节点是指对文件的索引。如一个系统,所有文件是放在磁盘或flash上,就要编个目录来说明每个文件在什么地方,有什么属性,及大小等。就像书本的目录一样,便于查找和管理。这目录是操作系统需要的,用来找文件或叫管理文件。许多操作系统都用到这个概念,如linux, 某些嵌入式文件系统等。当然,对某个系统来说,有许多i节点。所以对i节点本身也是要进行管理的。
在linux中,内核通过inode来找到每个文件,但一个文件可以被许多用户同时打开或一个用户同时打开多次。这就有一个问题,如何管理文件的当前位移量,因为可能每个用户打开文件后进行的操作都不一样,这样文件位移量也不同,当然还有其他的一些问题。所以linux又搞了一个文件描述符(file descriptor)这个东西,来分别为每一个用户服务。每个用户每次打开一个文件,就产生一个文件描述符,多次打开就产生多个文件描述符,一一对应,不管是同一个用户,还是多个用户。该文件描述符就记录了当前打开的文件的偏移量等数据。所以一个i节点可以有0个或多个文件描述符。多个文件描述符可以对应一个i节点。