调整进程的最大linux文件描述符

1.介绍



ulimit 命令提供了针对 shell和或由该 shell 启动的进程占用资源的控制。

持久化修改生效是在/etc/security/limits.conf中进行数据写入.

写入的格式为:<domain><type><item><value>

domain:用户名/用户组名/其他(查看man limits.conf)

type: hard / soft ,分别指实际最大值类型和预警值类型,一个是max,一个是threshold,在threshold会产生warning.

item:core/data/fsize/memlock/nofile/rss/stack/cpu/nproc/as/maxlogins/maxsyslogins/priority/locks/sigpending/msgqueue/nice/rtprio/

value: -1/unlimited/infinity/ 具体值

要修改最大文件描述符重点在于item和value

2.修改



2.1 先查看当前用户最大文件描述符数量:

1 ulimit -Hn
2 ulimit -Sn

2.2 修改当前用户进程的最大文件描述符数量:

1 vim /etc/security/limits.conf
2 在末尾添加
3 user  soft   nofile  4096  (user为用户名)
4 user  hard   nofile  10240
5 保存后退出登录再重新登录
6 使用上面的命令查看新的limit 
时间: 2024-10-07 15:26:39

调整进程的最大linux文件描述符的相关文章

Linux 文件描述符问题

昨天解了个bug,关于文件描述符的,这种问题很久之前也遇到过,这次再犯真的不该. 问题是这样的. fopen()打开一个文件,然后做了一些操作,然后函数执行结束...没有调用fclose()导致了,再执行此函数时,系统提示,文件描述符分配完毕. 分析了下: 根据以前的知识储备, 1.linux打开文件描述符的最大个数为1024,根据这次发现, 2.这是针对于单独进程的, 3.是从/proc/{pid}/fd/这个文件夹下可以看到. 4.分配文件描述符是递增的顺序.(看我之前的博客会发现这是那个b

[转帖]linux文件描述符文件/etc/security/limits.conf

linux文件描述符文件/etc/security/limits.conf https://blog.csdn.net/fanren224/article/details/79971359 需要多学习了解一下. 文件描述符是什么?和文件句柄有啥区别? 文件描述符是linux/unix操作系统中特有的概念.相当于windows系统中的文件句柄.一个意思不同叫法. Linux系统中, 每当进程打开一个文件时,系统就为其分配一个唯一的整型文件描述符,用来标识这个文件.标准C中每个进程默认打开的有三个文

[性能分析]linux文件描述符(转)

1.什么是文件和文件描述符 Linux中文件可以分为4种:普通文件.目录文件.链接文件和设备文件.1.普通文件是用户日常使用最多的文件,包括文本文件.shell脚本.二进制的可执行和各种类型的数据.ls -lh 来查看某个文件的属性,可以看到有类似 -rw-r--r-- ,值得注意的是第一个符号是 - ,这样的文件在Linux中就是普通文件.这些文件一般是用一些相关的应用程序创建,比如图像工具.文档工具.归档工具... .... 或 cp工具等.这类文件的删除方式是用rm 命令:2.目录文件在l

[性能分析]linux文件描述符

1.什么是文件和文件描述符 Linux中文件可以分为4种:普通文件.目录文件.链接文件和设备文件.1.普通文件是用户日常使用最多的文件,包括文本文件.shell脚本.二进制的可执行和各种类型的数据.ls -lh 来查看某个文件的属性,可以看到有类似 -rw-r--r-- ,值得注意的是第一个符号是 - ,这样的文件在Linux中就是普通文件.这些文件一般是用一些相关的应用程序创建,比如图像工具.文档工具.归档工具... .... 或 cp工具等.这类文件的删除方式是用rm 命令:2.目录文件在l

关于Linux文件描述符的笔记

当某个程序打开文件时,操作系统返回相应的文件描述符,程序为了处理该文件必须引用此描述符.所谓的文件描述符是一个低级的正整数.最前面的三个文件描述符(0,1,2)分别与标准输入(stdin),标准输出(stdout)和标准错误(stderr)对应.因此,函数 scanf() 使用 stdin,而函数 printf() 使用 stdout.你可以用不同的文件描述符改写默认的设置并重定向进程的 I/O 到不同的文件. 首先说什么是文件描述符,它有什么作用? 文件描述符是一个简单的整数,用以标明每一个被

Linux 文件描述符

////////////////////////////////////////////////////////////////////////////////////////////////////// 1.UNIX文件描述符 Unix操作系统或者Linux操作系统的文件描述符使用一个非负整数来表示,但是文件描述符不仅仅是一个非负数,Unix对于文件IO有以下几个数据结构: A.       每个进程都有一个进程表,其中有个记录表项,这个记录表项指向的是一个打开文件描述符表,这个文件描述符表是

Linux --- 文件描述符和重定向

1.预备知识 标准输入(stdin).标准输出(stdout)和标准错误(stderr)是编写脚本的时候经常使用的,因为输出的信息可能是上述的一种. 文件描述符 是与打开的某个文件或者数据流相关联的整数.文件描述符0,1,2是系统预留的. 0 - stdin(标准输入) 1 - stdout(标准输出) 2 - stderr(标准错误) 2.实例 echo This is a sample. > temp.txt 可将文本输出到 temp.txt 中,是通过截断文件的方式,也就是说在echo命令

linux文件描述符open file descriptors与open files的区别

一个文件被打开,也可能没有文件描述符,比如current working diretories,memory mapped files and executable text files ;losf可以查岀某个进程打开的文件数目: [email protected] ~]# sh sh-4.1# lsof |grep 1407 rpcbind 1407 rpc cwd DIR 253,0 4096 2 / rpcbind 1407 rpc rtd DIR 253,0 4096 2 / rpcbi

Linux 文件描述符设置为非阻塞的方法

通过fcntl设置文件描述符属性 fcntl即F_SETFL,F_GETFL的使用,设置文件的flags,阻塞设置成非阻塞,非阻塞设置成阻塞(这连个在server开发中可以封装为基本函数) 1.获取文件的flags,即open函数的第二个参数: flags = fcntl(fd,F_GETFL,0); 2.设置文件的flags: fcntl(fd,F_SETFL,flags); 3.增加文件的某个flags,比如文件是阻塞的,想设置成非阻塞: flags = fcntl(fd,F_GETFL,0