mysql 文件描述符_MySQL没有发布临时文件描述符

几天前,我们遇到了

MySQL安装的一些严重问题:

MySQL不断打开临时文件(正常行为)但这些文件从未发布过.结果是,最终磁盘空间耗尽,我们必须重新启动服务并手动清理/ tmp.

使用lsof,我们看到这样的事情:

mysqld 16866 mysql 5u REG 8,3 0 692 /tmp/ibyWJylQ (deleted)

mysqld 16866 mysql 6u REG 8,3 0 707 /tmp/ibf5adsT (deleted)

mysqld 16866 mysql 7u REG 8,3 0 728 /tmp/ibGjPRyW (deleted)

mysqld 16866 mysql 8u REG 8,3 0 5678 /tmp/ibMQDLMZ (deleted)

mysqld 16866 mysql 13u REG 8,3 0 5679 /tmp/ibQAnM42 (deleted)

也许它没有关系,但是当我们关闭服务器时,文件最终被释放,我们可以在MySQL日志中看到以下警告:

121029 7:44:27 [Warning] /usr/local/mysql/bin/mysqld: Forcing close of thread 1333 user: 'xxx'

121029 7:44:27 [Warning] /usr/local/mysql/bin/mysqld: Forcing close of thread 1156 user: 'yyy'

121029 7:44:27 [Warning] /usr/local/mysql/bin/mysqld: Forcing close of thread 1151 user: 'zzz'

其中’xxx’,’yyy’和’zzz’是不同的mysql用户(以及只有3个与数据库有活动连接的用户).

我们有一些理论:

>操作系统出现问题,导致文件处理程序保持打开状态. OS“删除”操作是否有可能阻塞线程直到关闭?这可以解释关闭时的警告以及在进程终止时最终删除文件的事实.

>到目前为止,数据集非常小,临时文件相对较小,并且有足够的时间释放文件句柄而不会耗尽磁盘空间.

我们在RHEL 6.2上使用Mysql 5.5和默认内核.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值