[ 总结 ] Linux 下文件描述符
1、概述:
文件描述符是内核为了高效管理已被打开的文件所创建的索引。是一个非负整数,用于代指被打开的文件。所有通过I/O操作的系统调用都通过文件描述符。
文件描述符用以表明每一个被进程所打开的文件和socket
2、文件描述符的限制:
Linux下最大文件描述符的限制有两个:
(1) 系统级限制:sysctl命令和proc文件系统中查看到的数值是一样的,这属于系统限制,它是限制所有用户打开文件描述符的总和
(2) 用户级限制:ulimit命令看到的是用户级的最大文件描述符限制,也就是说每一个用户登录后执行的程序占用的文件描述符总数不得超过这个限制。
3、修改文件描述符:
(1)修改用户级文件描述符
临时修改:ulimit -SHn 10240 重启失效
[root@super ~]# ulimit -SHn 10240
[root@super ~]# ulimit -n
10240
永久修改:修改 /etc/security/limits.conf 在末尾添加如下:
test soft nofile 10240
test hard nofile 20480
修改完生效
上面设置的意思是:test用户文件描述符达到10240个的时候,触发告警。
test用户文件描述符达到20480个的时候,达到最高上限。
(2)修改系统级文件描述符
临时修改:sysctl fs.file-max=40000 或 echo 40000 > /proc/sys/fs/file-max
[root@super ~]# sysctl fs.file-max=40000
[root@super ~]# sysctl -a | grep fs.file-max
fs.file-max = 40000
永久生效:echo "fs.file-max=40000" >> /etc/sysctl.conf 使用 sysctl -p 修改生效,不用重启
[root@super ~]# echo "fs.file-max=50000" >> /etc/sysctl.conf
[root@super ~]# sysctl -p
[root@super ~]# sysctl -a | grep fs.file-max --color
fs.file-max = 50000
当服务器运行,Apache、squid、Mysql、Oracle时,都需要对其进行优化调整。
相关文章
- Linux(入门)---001.desktop文件教程
- Linux 文件基本属性
- Ubuntu Linux 系统的分区方案
- Linux 双网卡绑定实践
- 在 Ubuntu 中如何安装或升级 Linux 内核到4.2
- shell:Linux易错点
- linux下如何映射宿主机中的文件到容器中?
- Windows下记事本编辑的Shell脚本放到Linux下执行出错,格式问题(/bin/bash^M: bad interpreter: 没有那个文件或目录)
- 【Linux】ubuntu 20无法打开终端的解决方法
- Linux动态库的导出控制
- linux 使用 ioctl 参数
- linux通常使用的 rc 和 .(点)文件
- Linux运维之——每日小技巧,获取网站请求数的前20个IP
- linux问题——linux下误用rm删除文件解决方案
- Linux 安装和配置Docker
- Linux中文件权限(有图详细讲解)
- Linux常用命令
- 解读linux的/proc下的statm、maps、memmap内存信息文件
- linux du查看文件所占大小