Linux 打开句柄限制的调整

参考文章:

Linux---进程句柄限制总结(http://blog.csdn.net/jhcsdb/article/details/32338953)

!! 本文内容仅在 RHEL6.4 上测试通过.

Linux 句柄限制分为1系统级限制和2用户级限制:

/proc/sys/fs/nr_open > /proc/sys/fs/file-max >= ulimit -Hn >= ulimit -Sn

1 系统级限制

1.1 /proc/sys/fs/nr_open

系统文件系统支持文件句柄总数上限, 默认值1048576 (1M). 该值上限受限于系统内存. 这个是所有限制的最大值.

1.2 /proc/sys/fs/file-max

系统文件系统支持文件句柄总数最大值, 必须小于 nr_open. 查看命令(下面3个命令等效):

[root@vm-cdh4 ~]# sysctl -a | grep -i file-max --color
fs.file-max = 188436
[root@vm-cdh4 ~]# cat /proc/sys/fs/file-max
188436
[root@vm-cdh4 ~]# sysctl -e fs.file-max
fs.file-max = 188436

查看当前系统使用的打开文件描述符数命令:

[root@vm-cdh4 ~]# cat /proc/sys/fs/file-nr
832    0    188436

其中file-max = 188436

1.3 更改 file-max

临时改变, 重启后消失:

[root@vm-cdh4 ~]# sysctl -w fs.file-max=102400

永久性的更改, 在/etc/sysctl.conf中加入(适用于 2.2 和 2.4 版内核):

fs.file-max=102400
#### 仅对于2.2 版内核:
#### fs.inode-max=102400

/etc/sysctl.conf改变之后,运行下面的命令使改变立即生效:

[root@vm-cdh4 ~]# sysctl -p

2 用户级限制

2.1 硬上限 ulimit -Hn

单个进程句柄数硬上限. <= file-max. 查看命令:

[root@vm-cdh4 ~]# ulimit -Hn
4096

临时更改, 重启后消失:

[root@vm-cdh4 ~]# ulimit -Hn 8192
[root@vm-cdh4 ~]# ulimit -Hn
8192

2.2 软上限 ulimit -Sn

单个进程句柄数软上限, <= ulimit -Hn. 查看命令:

[root@vm-cdh4 ~]# ulimit -Sn
1024
[root@vm-cdh4 ~]# ulimit -n
1024

临时更改, 重启后消失:

[root@vm-cdh4 ~]# ulimit -Sn 8000
[root@vm-cdh4 ~]# ulimit -n
8000

2.3 修改单个进程句柄数上限

同时临时修改软硬上限(<=file-max)重启后消失:

[root@vm-cdh4 ~]# ulimit-SHn 10240

永久修改软硬上限(RHEL6.4), 在 /etc/security/limits.conf 里设置(* 表示对所有用户):

#......
#@student        -       maxlogins       4

*    hard    nofile    10240
*    soft    nofile    10240

# End of file

Linux 打开句柄限制的调整的更多相关文章

  1. Linux 用户打开进程数的调整

    Linux 用户打开进程数的调整 参考文章: 关于RHEL6中ulimit的nproc限制(http://www.cnblogs.com/kumulinux/archive/2012/12/16/28 ...

  2. Linux系统句柄优化

    Linux系统句柄介绍 文件句柄,会随着进程数增加而增加.其实Linux是有文件句柄限制的,而且Linux默认一般都是1024.在生产环境中很容易到达这个值,因此这里就会成为系统的瓶颈. 在Linux ...

  3. linux打开文件数量的查看方法

    linux打开文件数量的查看方法 linux打开文件数量的查看方法在网上查到两种查看linux打开文件数量的查看方法,但结果不相同,linux查看文件打开数量是以那个文件或命令为标准呢? 搜索过关于u ...

  4. linux打开80端口及80端口占用解决办法

    linux打开80端口天客户那边有台服务器同一个局域网中都无法访问,排除lamp环境问题,发现时服务器中的防火墙没有开启80端口. 代码如下 复制代码vi /etc/sysconfig/iptable ...

  5. 在Linux上进行内核参数调整

    在Solaris上,使用工具mdb就可以直接修改内核内存里的内容.而在Linux上,则通常使用命令sysctl(8)做类似的事情. 本文以Fedora为例,介绍如何在Linux上进行内核参数调整. 常 ...

  6. Linux打开防火墙telnet端口

    检查端口情况:netstat -an | grep 22 关闭端口号:iptables -A INPUT -p tcp --drop 端口号-j DROP                    ipt ...

  7. 网络编程中TCP基础巩固以及Linux打开的文件过多文件句柄的总结

    1.TCP连接(短链接和长连接) 什么是TCP连接?TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议. 当网络通信 ...

  8. 查询修改linux 打开文件句柄数量

    查询系统支持最大可打开文件句柄数量: #vi /proc/sys/fs/file-max 查询当前连接用户最大可打开文件句柄数量: #ulimit -a 修改当前连接用户最大可打开文件句柄数量: #u ...

  9. linux修改句柄数

    linux服务器大并发调优时,往往需要预先调优linux参数,其中修改linux最大文件句柄数是最常修改的参数之一. 在linux中执行ulimit -a 即可查询linux相关的参数,如下所示: [ ...

随机推荐

  1. sublime text package control 被墙的解决办法

    似乎没有办法 只能碰运气, 时好时坏. 或者手动安装 趁着好的时候, 下载离线包 https://packagecontrol.io/Package%20Control.sublime-package ...

  2. JavaSE基础问答

    1.JAVA的基本数据类型有哪些? JAVA的基本数据类型分为4类8种,就是整形 byte.short.int.long.浮点型 float 跟double,字符型 char,跟布尔型 true和 f ...

  3. Linux下文件的mtime/atime/ctime研究

    概述 在Linux下,对于某一个文件或文件夹时间的描述有三种:文件修改时间mtime,文件访问时间atime,文件状态改变时间ctime.在Linux下无法获取到文件的创建时间,因为根本就没有保存这个 ...

  4. hadoop入门级总结二:Map/Reduce

    在上一篇博客:hadoop入门级总结一:HDFS中,简单的介绍了hadoop分布式文件系统HDFS的整体框架及文件写入读出机制.接下来,简要的总结一下hadoop的另外一大关键技术之一分布式计算框架: ...

  5. 【Unity Shader】新书封面 — Low Polygon风格的渲染

    写在前面 最近又开心又担心,因为我的书马上就要上市了,开心当然是因为等了这么久终于可以如愿了,担心是因为不少人对它的期待都很大,我第一次写书,能力也有限,不知道能不能让大家满意,让大家也都喜欢上它.不 ...

  6. Gradle 1.12用户指南翻译——第五十二章. Maven 插件

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上 ...

  7. Core Python Programming一书中关于深浅拷贝的错误

    该书关于深浅拷贝的论述: 6.20. *Copying Python Objects and Shallow and Deep Copies "when shallow copies are ...

  8. Scheme call/cc 研究

    目前尚不清楚实质,但已经能够从形式上理解它的某些好处,有个很简单的连乘函数可以说明: 为了展示究竟发生了什么,我包装了下乘法函数,将其变为mul. 我们将比较product和xproduct的区别. ...

  9. JQuery 网页选项卡制作

    网页选项卡可以较好的利用有限的页面来展示更多的元素,而使用JQuery来制作网页选项卡也是一件非常简单的事情.今天就来分享一个网页选项卡的制作小技巧. 引入所需库 选项卡原理 业务核心 完整小例子 引 ...

  10. JDBC-数据库的编程(一)

    因为我使用的mysql数据库客户端程序是workBench,所以会用workBench来进行讲解. create table tbl_user( id int(11) unsigned not nul ...