Linux服务器性能的重要指标:打开文件数的限制

文件是Linux系统中的一切事物的存在形式,计算机中的数据和硬件都是通过文件的形式进行管理,Linux的文件主要有普通文件、文件夹、设备文件、链接文件、管道文件、套接字文件(数据通信的接口)等类型,Linux 中的各种事物比如像文档、文件夹、键盘、监视器、硬盘、可移动媒体设备、打印机、调制解调器、虚拟终端等等都是定义在文件系统空间下的字节流。

因此在Linux系统上的web程序,在进行TCP连接时,系统为每个TCP连接创建一个socket句柄,而每个句柄也是一个文件句柄,所以web程序对文件的操作情况,是影响到服务器性能的重要指标,像网站在高流量高并发的场景下出现"Too many open files"的异常就是因为打开的文件数超过限制,而程序中对资源(包括图片、音视频资源)、网页、以及接口的请求在Linux系统里的表现为对文件的访问,如果打开文件数超出了系统限制(系统级和用户级)的数量,就会拒绝接下来的文件访问当前用户级的文件数限制,可以通过 ulimit -n 来查看,如图: 

而系统级别的文件数限制,则通过sysctl -a来查看,如下图: 


一般系统最大文件数会根据硬件资源计算出来的,如果强行需要修改最大打开文件数可以通过ulimit -n 10240来修改,当这种方式只对当前进程有效,如果需要永久有效则需要修改/etc/security/limits.conf(重启系统生效),如下图: 


其中:

root :指定用户,如对所有用户,则写 *

soft:软限制

hard:硬件限制

nofile 是代表最大文件打开数

除此之外,下面是一些打开文件数操作相关的指令,仅供参考:

1、查看所有进程的文件打开数:

lsof |wc -l 


2、查看某个进程打开的文件数:

lsof -p pid |wc -l


3、查看系统中各个进程分别打开了多少句柄数:

lsof -n|awk ‘{print $2}’|sort|uniq -c|sort -nr|more


觉得本文对你有帮助?请分享给更多人

关注「编程无界」,提升装逼技能

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Linux打开文件限制 1、修改用户进程可打开文件数限制 在linux平台上,无论是客户端程序还是服务器端程序,在...
    词穷又词贫阅读 19,005评论 1 9
  • 如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个专业的 Linu...
    七寸知架构阅读 11,310评论 1 71
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 13,087评论 2 33
  • 一些概念: 1.为了便于统一管理,系统将所有的输入/输出设备都视为文件,按文件方式提供给用户使用,如目录的检索、权...
    yydounai阅读 1,072评论 0 4
  • 林立高楼遮望眼, 仙居源深静无声。 借取东风传信笺, 小乔依旧桃花否?
    远方的云_48af阅读 198评论 0 1

友情链接更多精彩内容