日期:2014-05-16  浏览次数:20699 次

linux下查看文件打开数

一、查看资源限定

? ulimit -a 查看系统目前资源限制的设定。

?

二、修改资源限定

linux 打开文件句柄时可能出现“Too many open files”的提示,可以修改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??

??? 使用通配符*表示所有用户,*号可以换成具体的用户名或者用户组的名称。
??? 这个文件里的限制对root以外的用户在新登陆是立即生效,不用reboot。
??? soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用 - 就表明同时设置了 soft 和 hard 的值。
??? nofile - 打开文件的最大数目, noproc - 进程的最大数目

4)修改文件:/etc/sysctl.conf。在文件中添加:
??? fs.file-max=655350 #限制整个系统最大文件句柄数?
??? 运行命令:/sbin/sysctl -p 使配置生效

?

三、查看文件打开数

/proc/sys/fs/file-nr
该文件与 file-max 相关,它有三个值:

已分配文件句柄的数目
已使用文件句柄的数目
文件句柄的最大数目
该文件是只读的,仅用于显示信息。

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

查看某个进程打开的文件数
lsof -p pid |wc -l