linux系统的文件句柄数详解

 更新时间:2025年10月14日 14:15:33   作者:backzy  
文章讨论了Linux中文件句柄和文件描述符的限制问题,指出默认限制是1024,这对生产服务器来说较低,介绍了如何通过ulimit-n查看和提高文件句柄数限制,并提出了系统全局设置、用户局部设置和针对nginx服务的设置方法,最后简要提到了系统优化的必要性

1.文件句柄

文件句柄,文件描述符,会随着进程数增加而增加。

Linux是有文件句柄限制的,而且默认不是很高,一般都是1024,作为一台生产服务器,其实很容易就达到 这个数量,因此我们需要把这个值改大一些。我们可以用ulimit -n 来查看当前用户句柄数限制

2.设置文件句柄数

1)系统全局设置

[root@web01 ~]# vim /etc/security/limits.conf
* - nofile 65535
* soft nofile 65535
* hard nofile 65535

*		#代表所有用户
-		#超过文件句柄数时,什么都不干
soft	#超过文件句柄数时,仅提示
hard	#超过文件句柄数时,直接限制

2)用户局部设置

[root@web01 ~]# vim /etc/security/limits.conf
root - nofile 65535
root soft nofile 65535
root hard nofile 65535

3)针对nginx服务

[root@web01 ~]# vim /etc/nginx/nginx.conf 
user  www;
worker_processes  1;
#添加下面一行
worker_rlimit_nofile 65535;

3.系统优化

[root@web01 ~]# vim /etc/sysctl.conf
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000   65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
net.ipv4.ip_forward = 1

#配置立即生效
[root@web01 ~]# sysctl -p

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux file命令的使用

    Linux file命令的使用

    这篇文章主要介绍了Linux file命令的使用,帮助大家更好的理解和学习Linux,感兴趣的朋友可以了解下
    2020-08-08
  • Linux(CentOS7)使用 RPM 安装 mysql 8.0.11的教程

    Linux(CentOS7)使用 RPM 安装 mysql 8.0.11的教程

    这篇文章主要介绍了Linux(CentOS7)使用 RPM 安装 mysql 8.0.11的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Linux QT Kit丢失及Version为空问题解决方案

    Linux QT Kit丢失及Version为空问题解决方案

    这篇文章主要介绍了Linux QT Kit丢失及Version为空问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Linux按键驱动测试方式

    Linux按键驱动测试方式

    这篇文章主要介绍了Linux按键驱动测试方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • CentOS环境下安装PHPUnit的方法分析

    CentOS环境下安装PHPUnit的方法分析

    这篇文章主要介绍了CentOS环境下安装PHPUnit的方法,结合实例形式分析了CentOS环境下安装PHPUnit的步骤、相关问题与解决方法,需要的朋友可以参考下
    2018-05-05
  • 如何在Linux中route add命令添加路由(Linux route)

    如何在Linux中route add命令添加路由(Linux route)

    route add命令是用于管理Linux操作系统网络路由,允许用户添加、删除或修改网络路由表中的条目,在Linux系统上添加静态路由,静态路由是手动配置的路由,它指定了数据包从一个网络到达另一个网络的路径,通过添加静态路由,可实现网络分段、转发和通信等
    2024-06-06
  • Vim中文件编码处理与重新打开乱码文件详解

    Vim中文件编码处理与重新打开乱码文件详解

    这篇文章主要给大家介绍了关于Vim中文件编码处理与重新打开乱码文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04
  • CentOS7下 yum方式安装Nginx的实现步骤

    CentOS7下 yum方式安装Nginx的实现步骤

    这篇文章主要介绍了CentOS7下 yum方式安装Nginx的实现步骤的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-10-10
  • Linux下activeMQ的启动和停止命令方式

    Linux下activeMQ的启动和停止命令方式

    文章介绍了在Linux环境下启动和停止Apache ActiveMQ的步骤,启动前需要确保服务未运行,使用`./activemq start`命令启动,停止时使用`./activemq stop`命令,启动后可以通过访问`http://127.0.0.1:8161/admin/`来验证服务是否成功启动
    2024-12-12
  • apache后缀名支持 让apache支持apk ipk下载的方法

    apache后缀名支持 让apache支持apk ipk下载的方法

    一般都在mime.types文件中添加相应的后缀,重启apache后即可
    2012-04-04

最新评论