首页 > 系统相关 >[ 总结 ] Linux 下文件描述符

[ 总结 ] Linux 下文件描述符

时间:2023-09-04 16:56:42浏览次数:36  
标签:总结 文件 fs sysctl max 描述符 file 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时,都需要对其进行优化调整。

标签:总结,文件,fs,sysctl,max,描述符,file,Linux
From: https://www.cnblogs.com/weipan/p/17677521.html

相关文章

  • [ 总结 ] Linux系统测试硬盘I/O
    检测硬盘I/O相对来说还是一个比较抽象的概念,但是对系统性能的影响还是至关重要的。(1)使用hdparm命令检测读取速度:   hdparm命令提供了一个命令行的接口用于读取和设置IDE和SCSI硬盘参数。   安装:      yuminstallhdparm   语法:      hdparm(选项......
  • 让linux shell显示命令执行结果
    vscode的shell可以用颜色来标记命令执行是否成功如图,蓝色圆点表示成功,红色表示失败。但是默认的shell不可以。通过设置PS1可以实现这个功能。在.bashrc文件中找到:if[-n"$force_color_prompt"];thenif[-x/usr/bin/tput]&&tputsetaf1>&/dev/null;then #We......
  • log4j结合commons-logging配置总结
    作者fbysss关键字:loggingcommons-logging是一个通用的日志接口,commons-logging.jar包中自带了一个simplelog的实现log4j也实现了这个接口使用通用接口,方便在于如果更换实现的方式,只要修改一个配置项即可配置过程:commons-logging.properties必须放置在WEB-INF/classes/下面log4j.pro......
  • MySQL修改密码方法总结
    MySQL修改密码方法总结作者:intphp<scripttype=text/javascript></script><scriptsrc="http://pagead2.googlesyndication.com/pagead/show_ads.js"type=text/javascript></script><scriptsrc="http://down.meety.com/asrep/......
  • 在Linux系统中如何删除用户组?
    Linux是一种开源的操作系统,被广泛应用于个人计算机和服务器中,在Linux系统中,用户组可以方便地管理和授权用户的权限,在实际运用中,我们可能需要删除不再使用的用户组,那么该如何操作呢?以下是详细的内容:删除用户组的方法有很多,可以通过命令行工具或图形界面来完成。一、命......
  • linux kernel mount rootfs失败问题
    linuxkernel在初始化末尾会mountrootfs。有时会mount失败,出现类似下面的log:[0.623289]/dev/root:Can'topenblockdev[0.624045]VFS:Cannotopenrootdevice""orunknown-block(0,0):error-6[0.625312]Pleaseappendacorrect"root="bo......
  • 分享实用工具源码--实现Windows IDE中查看Linux下编译信息
    作者:fbysss关键字:实用工具源码 Windows下查看Linux编译信息一、背景:本人写C程序不多,更不用说Linux下了。偶然一个机会,接了个这样的活,vi我用的还马马虎虎,但程序超过一千行,看起来就有些眼花了。于是只好在VC下编写代码,ftp传到Linux服务器,再用gcc编译,出错了再到VC下修改,再上传,如......
  • Linux下非阻塞getch实现示例
    作者:fbysss关键字:getch问题1:标准c中没有getch函数,等待键盘输入之后,总是需要按下回车才能得到值,如何解决?问题2:在等待键盘输入的时候,程序被阻塞了,下面的代码必须在输入处理之后才能执行。如果不使用线程,如何实现非阻塞模式?解决办法:#include<curses.h>#include......
  • Dotnet6 NPOI操作Excel基本操作总结
    背景需要对Excel进行读取和写入,目前使用Dotnet6开发环境,故直接使用。达到的效果:兼容.xls和.xlsx,识别行为空自动跳过,识别显示值,识别格式内容步骤Dotnet6Nuget安装NPOI,具体版本2.6.1,tips:搜索资料时,可能NPOI1与NPOI2可能有出入。使用方法获取相应文档对象......
  • linux学习 Centos 7(二)
    linux学习Centos7(二)常用的基本命令目录管理绝对路径、相对路径绝对路径路径的全称:C:\ProgramData\360safe\xxx.xx在360safe目录下,xxx.xx的相对路径就是\xxx.xxcd切换目录绝对路径:/开头相对路径:../homecd:切换目录命令cd./:当前目录cd..:返回上一级目录ls......