当前位置: 首页 > Linux

LinuxFS

时间:2023-04-07 00:30:49 Linux

文件描述符(filedescrition)文件句柄号(filehandle)每个进程都有一个打开的文件表(fdtable)。表中的每一项都是一个structfiletype,里面包含了打开文件的一些属性,比如偏移量,读写访问模式等,这是一个真正的文件句柄。文件描述符是一个整数。表示fdtable中的索引位置(下标),指向具体的struct文件(文件句柄)。文件描述符(fd)在Linux系统中打开文件时,会得到一个文件描述符,它是一个小的正整数。每个进程在PCB(ProcessControlBlock)中都有一个文件描述符表。文件描述符是这个表的索引,每个表项都有一个指向打开文件的指针。最大文件描述符限制cat/proc/sys/fs/nr_opensetmaximumfiledescriptorvi/etc/security/limits.confsoftnofile999999hardnofile999999ulimit-aviewfiledescriptor查看一个进程的文件描述符终端进程1800640,打开15个文件,占用5个文件描述符。即使打开一个文件,也可能没有文件描述符,比如当前工作目录、内存映射文件、可执行文本文件等。查看当前文件打开数lsof-P-n|wc-l统计排序lsof-P-n|awk'{print$2}'|排序-n|uniq-c|sort-nr|head-10统计一个进程打开的文件数lsof-ppid|wc-l文件句柄数设置最大句柄数vi/etc/sysctl.confs.file-max=10240默认值该参数的大小与内存大小有关,可以用公式:file-max≈内存大小(KB)/10cat/proc/sys/fs/file-max查看最大打开文件句柄数cat/proc/sys/fs/file-nr查看当前使用的句柄Allocatedunusedhandles最大句柄数哪些地方会分配文件句柄)socket套接字(sock_alloc_file函数)管道(create_pipe_files函数)epoll/inotify/signalfd等函数使用的匿名inode文件系统(anon_inode_getfile函数)参考来源:https://juejin.im/entry/5b56f...https://blog.csdn.net/u013256...https://blog.csdn.net/qq_2935...