通常,如果在通过终端连接到linux系统后运行ulimit -n命令,则此次登录的session的文件描述符限制将如下所示:
$ulimit -n
1024
当然,可以使用ulimit -SHn 102400命令更改此限制,但此更改只对当前session有效,断开连接并重新连接后更改将不再有效。
如果需要永久修改/etc/security/limits.conf文件,请执行以下操作:
vi /etc/security/limits.conf
*硬件通告102400
* soft nofile 102400
保存后再次登录时,最大文件描述符已永久更改。
这只是更改用户级别的最大文件描述符限制。 这意味着每个用户登录后运行的程序占用的文件描述符总数不能超过此限制。
系统级限制
这限制了所有用户打开的文件描述符的总数,可以通过更改内核参数进行更改。
sysctl -w fs.file-max=102400
使用sysctl命令进行的更改也是临时的,必须将其添加到/etc/sysctl.conf中才能永久更改
fs.file-max=102400
保存后,使用sysctl -p命令将其启用。
与文件-最大参数相对应的还有文件- NR。 此参数是只读的,可以查看当前文件描述符的使用情况。
不需要直接修改内核参数并重新启动系统。
sysctl -w fs.file-max 65536
或者
echo ' 65536 '/proc/sys/fs/file-max
两者的作用相同,前者更改了内核参数,后者只是内核参数直接作用于虚拟文件系统(procfs,psuedo file system )上对应的文件。
可以使用以下命令查看新限制
sysctl -a | grep fs.file-max
或者
cat /proc/sys/fs/file-max
更改内核参数
/etc/sysctl.conf
echo ' fs.file-max=65536 '/etc/sysctl.conf
sysctl -p
查看当前文件硬件的使用情况:
sysctl -a | grep fs.file-nr
或者
cat /proc/sys/fs/file-nr
825 0 65536
另一个命令:
lsof | wc -l
以下是从kernel document的文件最大和文件最大参数中摘录的说明
file-maxfile-nr:
thekernelallocatesfilehandlesdynamically,butasyetitdoesn'tfreethemagain。
内核可以动态分配文件句柄,但在以前是不会释放的
evalue infile-maxdenotesthemaximumnumferoffilehandlesthatthelinuxkernelwillallocate.whenyougetlotsoferrormessagesaboutruncaboutruncate
file-max的值是linux内核可以分配的最大文件数。 如果您收到许多错误消息,指出打开的文件数已达到最大值,请尝试增加该值的限制
Historically,thethreevaluesinfile-nrdenotedthenumberofallocatedfilehandles,thenumberofallocatedbutunusedfilehandles, thenumberofallocatedbutunusedfilehandles,andthemaximumnumberoffilehandles.Linux 2.6 always reports0asthenumberoffreeefilehandles
在kernel2.6之前的版本中,file-nr的值由三个部分组成:1.已经分配的文件的文件数;2 .已经分配的文件的文件数;3 .最大文件的文件数。 但是,在kernel2.6版本中,第二个项目的值始终为0。 这不是错误,而是意味着实际上分配的文件句柄正在被无浪费地使用
同时-修理
改Linux系统下的最大文件描述符限制通常我们通过终端连接到linux系统后执行ulimit -n 命令可以看到本次登录的session其文件描述符的限制,如下: $ulimit -n1024 当然可以通过ulimit -SHn 1024 ...
Linux系统学习笔记:文件描述符标志
文件描述符标志的概念 文件描述符标志(目前就只有一个close-on-exec): 它仅仅是一个标志,当进程fork一个子进程的时候,在子进程中调用了exec函数时就用到了这个标志.意义是执行exec ...
Linux系统下查看某文件修改的时间戳
Linux系统下查看某文件修改的时间戳查看文件时间戳命令:stat awk.txt File: `awk.txt' Size: 20 Blocks: 8 I ...
脚本_修改 Linux 系统的最大打开文件数量
#!zgdmt/bash#作者:liusingbon#功能:修改 Linux 系统的最大打开文件数量#追加两行配置参数到文件/etc/security/limits.conf的末尾,修改最大打开文件数量为 ...
Linux 进程级开启最大文件描述符 调优
开启最大文件数 系统可以开启的最大文件描述符(可同时开启最多的文件数),最大开启65535,可根据需求进行调优. 查看系统当前可开启最大文件描述符数 ulimit -n [root@localhost ...
Linux 利用进程打开的文件描述符(/proc)恢复被误删文件
Linux 利用进程打开的文件描述符(/proc)恢复被误删文件 在 windows 上删除文件时,如果文件还在使用中,会提示一个错误:但是在 linux 上删除文件时,无论文件是否在使用中,甚至是还 ...
Linux 套接字与文件描述符
端口和套接字,用于确定指定主机上的哪个本地进程使用了哪个协议和哪台远程主机上的哪个进程进行了通信.端口和套接字的使用可以基于以下几点: ①为每个应用过程分配一个过程标识符(Process ID),每次 ...
Unix系统编程()文件描述符和打开文件之间的关系
目前学习到的是一个文件描述符对应着一个打开的文件,似乎是对应的关系.但是实际上并不是这样的.多个文件描述符指向同一个打开的文件,是可能的也是必要的.这些文件描述符可以在相同或者不同的进程中打开. 要理 ...
Linux内核笔记--深入理解文件描述符
内核版本:linux-2.6.11 文件描述符(file descriptor)在Linux编程里随处可见,设备读写.网络通信.进程通信,fd可谓是关键中的关键. 深入理解可以增加我们使用它的信心. ...
随机推荐
system verilog中的跳转操作
在verilog中,使用disable声明来从执行流程中的某一点跳转到另一点.特别地,disable声明使执行流程跳转到标注名字的声明组末尾,或者一个任务的末尾. verilog中的disable命令 ...
Python之路-Day2
二进制 1bit = 一个二进制位 8bit = 1byte 循环 for while 数据类型 数字.字符串.列表.元祖.字典.集合 字符编码 文件处理 for循环: for i in range( ...
设计模式之美:Role Object(角色对象)
索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):Role Object 的示例实现. 意图 通过明确地附加角色对象到目标对象中,以使对象可以适配不同的客户需求.每个角色对象都代 ...
简单的Web留言本