MySql进程使用的文件描述符数量的问题
在CentOS 6.5, mysql版本为5.1的机器上,查看mysql进程的文件描述符使用量
使用命令
1 | // grep 后面跟的是mysql进程号 |
可以看到每个数据库文件打开的文件数量只占用了一个文件描述符,即使当前mysql启动了多个子进程
但在CentOS7.2, mysql版本为5.6的机器上,重复上面命令,得到的 结果为
可以看到打开的文件描述符的数为mysql以及他的子进程数量
一开始以为是mysql版本问题,每个子进程自己又去打开相应的数据库文件,于是就在CentOS 7.2上装了个mysql 5.1版本,重复上面命令,得到的结果为
结果还是一样,搜索了下资料,找到了原因。
因为lsof版本的原因,在lsof为4.8版本的时候,dup的文件描述符都算为新的文件描述符
为了验证这个原因的正确性,从CentOS 6.5系统拷贝了lsof到CentOS 7.2中,执行结果
从图中可以看到,正是lsof版本的原因导致在CentOS 7上查看mysql文件描述符会比CentOS 6多很多