Linux系统超出文件句柄限制数量怎么办?
/etc/security/limits.conf
这个文件规定了最大进程数,root无限制,普通用户有限制,当前环境的用户所有进程能打开的最大文件数量由ulimit -n决定。
修改
Linux
的最大文件句柄数限制的方法:1)ulimit -n 65535
在当前session有效,用户退出或者系统重新后恢复默认值
2)修改profile文件:在profile文件中添加:ulimit -n 65535
只对当个用户有效
3)修改文件:/etc/security/limits.conf,在文件中添加:(立即生效-当前session中运行ulimit -a命令无法显示)
* soft nofile 32768 #限制单个进程最大文件句柄数(到达此限制时系统报警)
* hard nofile 65536 #限制单个进程最大文件句柄数(到达此限制时系统报错)
4)修改文件:/etc/sysctl.conf。在文件中添加:
fs.file-max=655350 #限制整个系统最大文件句柄数
运行命令:/sbin/sysctl -p 使配置生效
Linux下如何查看进程打开的文件以及修改进程打开文件数上限?
Linux文件数打开数 查看当前系统最大的文件打开数, 在linux终端中输入ulimit -a “open files”参数选项后面的数值就是当前系统支持的最大打开文件数 修改linux最大文件打开数 如果要修改linux最大文件打开数,可以通过参数命令 unlimit -n 后面接需要设置的文件数量。
设置好之后,再次查看 unlimit -a 你会发现已经设置为新的数量了 设置好之后,再次编辑修改重启设置的服务,已经没有刚刚那个1024文件数限制的报错提示 其他修改方法 除此之外,如果针对不同的用户。
也可以通过编辑修改 /etc/rc.local文件设置环境变量,添加 unlimit -n ,重启之后一般就自动设置好了 查看系统句柄文件数 当前系统文件句柄的最大数目,只用于查看,不能设置修改 cat /proc/sys/fs/file-max 查看进程打开文件数 如果需要查看所有进程的文件打开数,命令lsof |wc -l
1. 查看进程打开文件 在/proc下,对应每个进程有一个以进程号命名的目录,该目录下有一个fd目录,该目录下面的每个文件是一个符号连接,其文件名对应该进程占用的一个文件描述符,而连接指向的内容表示文件描述符对应的实际文件。 2. 修改进程打开文件数上限Linux默认的进程打开文件上限是1024个,可以通过ulimit 把所有用户的进程打开文件上限改为65536,可以加入下面两行 * soft nofile 65535 还可以只真对某个用户或某个组做修改,具体方法参见文件注释。修改后需要重新启动系统才能生效。
socket的fd是什么?
fd 是(file descriptor),这种一般是BSD Socket的用法,用在Unix/Linux系统上。
在Unix/Linux系统下,一个socket句柄,可以看做是一个文件,在socket上收发数据,相当于对一个文件进行读写,所以一个socket句柄,通常也用表示文件句柄的fd来表示。