MySQL:活动不多,但数千个网络连接仍处于 TIME_WAIT 状态”

MySQL:活动不多,但数千个网络连接仍处于 TIME_WAIT 状态”

我们在 FreeBSD 7.2-RELEASE 上运行 MySQL 5.1.33。

这是一个开发数据库服务器,连接到运行银条和 PHP 5.3。

今天早上,开发网络服务器抱怨无法连接到数据库服务器。PHP 错误是“无法连接到‘host.example.gov’上的 MySQL 服务器”。

我们发现数据库服务器上有数千个打开的文件,考虑到该服务器大部分时间处于空闲状态,这也很不寻常。

# lsof |grep /var/db/mysql/DATABASE  |wc -l
5135

还有数千个处于 TIME_WAIT 状态的连接,这很不寻常。我预计这些 TIME_WAIT 连接会超时,但它们在过去 20 分钟内没有结束。

# netstat -an | grep 3306 | grep -c TIME_WAIT 
2650

数据库服务器上似乎没有发生太多活动:

# mysql -e "show full processlist;"
+------+------+-----------+------+---------+------+-------+-----------------------+
| Id   | User | Host      | db   | Command | Time | State | Info                  |
+------+------+-----------+------+---------+------+-------+-----------------------+
| 2489 | root | localhost | NULL | Query   |    0 | NULL  | show full processlist | 
+------+------+-----------+------+---------+------+-------+-----------------------+

我的问题:在 MySQL 中,我如何知道哪些文件被保存了?也许打开的文件只是个幌子。

答案1

事实证明,该问题是由本地主机防火墙故障引起的。mysql 客户端最初能够连接(或建立一些连接),但后续数据包被忽略。

我仍在尝试弄清楚有关打开文件的问题,但该问题已经消失。

相关内容