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

服务器
Linux的文件主要有普通文件、文件夹、设备文件、链接文件、管道文件、套接字文件(数据通信的接口)等类型,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、查看所有进程的文件打开数:

  1. lsof |wc -l 

 

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

  1. lsof -p pid |wc -l 

 

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

  1. lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more 

 


责任编辑:武晓燕 来源: 编程无界
相关推荐

2021-03-25 12:15:12

Linux服务器内存

2021-04-02 10:50:03

Linux服务器工具

2021-04-09 09:40:41

Linux服务器工具

2017-01-12 20:52:19

Linux服务器运维

2019-08-26 10:42:15

Linux服务器运维

2017-10-13 12:10:57

Linux服务器性能CPU和内存类

2010-05-07 17:50:31

Unix服务器

2009-10-21 09:47:40

UbuntuLinux服务器

2012-05-08 10:36:48

服务器评测

2022-05-05 09:27:31

Linux服务器优化

2018-01-04 09:23:21

WEB服务器性能

2010-10-14 15:29:56

MySQL服务器

2014-04-23 16:43:05

Linux服务器性能分析

2018-09-26 08:28:16

Linux服务器性能

2010-03-22 16:50:21

2021-01-06 09:14:20

Linux服务器操作系统

2020-12-14 10:50:13

Linux命令文件

2021-11-26 09:10:19

Linux文件命令

2020-10-24 15:31:10

Linux服务器工具

2010-12-17 09:22:01

Linux服务器性能监控Munin
点赞
收藏

51CTO技术栈公众号