linux操作系统的文件句柄

1、什么是文件句柄

百度百科:

在文件I/O中,要从一个文件读取数据,应用程序首先要调用操作系统函数并传送文件名,并选一个到该文件的路径来打开文件。该函数取回一个顺序号,即文件句柄(file handle),该文件句柄对于打开的文件是唯一的识别依据。要从文件中读取一块数据,应用程序需要调用函数ReadFile,并将文件句柄在内存中的地址和要拷贝的字节数传送给操作系统。当完成任务后,再通过调用系统函数来关闭该文件。

2、linux下文件句柄

linux下文件句柄是有限制的,默认并不会太高,一般都是1024。linux指令ulimit -n可以查看文件句柄限制。

3、相关命令

ulimit -a   用来显示当前的各种用户进程限制

ulimit -n 查看当前用户默认的最大文件句柄数

lsof |wc -l  查看所有进程的文件打开数

lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more 查看当前进程打开了多少句柄数,注意第一列是句柄数,第二列是进程id

4、linux 硬限制和软限制

硬限制是实际的限制,而软限制,是warnning限制,只会做出warning,可以通过ulimit来设定这两个参数,用root用户执行ulimit -HSn 65534(H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量)

阿里云的服务器一般都设置了65535,避免句柄过少导致的大型应用资源不足的情况;

你可能感兴趣的:(linux,运维,服务器,句柄)