linux句柄数管理
在linux系统设计里面遵循一切都是文件的原则,即磁盘文件、目录、网络套接字、磁盘、管道等,所有这些都是文件,在我们进行打开的时候会返回一个文件句柄。
如果频繁的打开文件,或者打开网络套接字而忘记释放就会有句柄泄露的现象,从而句柄数量超限,将产生拒绝服务的严重问题。
以下是对linxu句柄数管理的常用命令:
1.查看句柄限制
- ulimit -a : 查看所有限制
- ulimit -n : 一个进程打开的最大打开文件句柄数,这个句柄数包含socket连接的数量,进而影响Mysql的并发数量限制,默认值是1024.
[dev@iZ2310wqq66Z ~]$ ulimit -n
65533
[dev@iZ2310wqq66Z ~]$ ulimit -n 65535
-bash: ulimit: open files: cannot modify limit: Operation not permitted
[dev@iZ2310wqq66Z ~]$ ulimit -n 65532
[dev@iZ2310wqq66Z ~]$
ulimit命令修改的数值只对当前登录用户的目前使用环境有效,系统重启或者用户退出后就会失效
查看整个系统当前句柄数量:
cat /proc/sys/fs/file-nr
或:
cat /proc/sys/fs/file-max
2. 查看进程使用的句柄
查看每个进程开了哪个句柄:
lsof : 查看所有
lsof