You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Percona Server 5.7.36-39-log出现errno:24文件打开过多问题求助

排查Percona Server 5.7.36-39-log文件句柄持续增长问题

1. 先确认当前文件句柄限制

  • 查看MySQL自身配置的最大文件句柄数:SHOW VARIABLES LIKE 'open_files_limit';
  • 查看MySQL进程实际能使用的系统限制:cat /proc/$(pidof mysqld)/limits | grep 'Max open files'
  • 对比当前已打开的文件数:SHOW GLOBAL STATUS LIKE 'open_files';,确认是否已接近阈值,这是判断问题严重性的基础。

2. 定位MySQL打开的具体文件

用lsof工具精准定位哪些文件在占用句柄:

  • 统计总打开数:lsof -p $(pidof mysqld) | wc -l
  • 按文件类型分组统计:
    lsof -p $(pidof mysqld) | awk '{print $NF}' | grep -E '(\.ibd|\.frm|\.log|socket|pipe|#sql-)' | sort | uniq -c
    
    重点关注:
    • 以#sql-开头的临时表文件,如果数量持续增长,说明临时表未被自动清理
    • InnoDB数据文件(.ibd)是否异常增多,比如分区表未清理、ALTER TABLE遗留的旧表空间
    • 二进制日志、中继日志是否堆积,未按配置自动轮转

3. 检查MySQL核心配置与运行状态

  • 临时表相关:
    执行SHOW GLOBAL STATUS LIKE 'Created_tmp_%';,如果Created_tmp_disk_tables持续飙升,说明大量临时表落地磁盘。同时检查tmp_table_size和max_heap_table_size是否过小,导致内存临时表频繁转磁盘;另外查看tmpdir目录是否有大量未清理的临时文件。
  • 连接与线程:
    查看SHOW GLOBAL STATUS LIKE 'Threads_%';,如果Threads_connected持续上升,说明闲置连接未正常释放。检查wait_timeout和interactive_timeout配置,是否设置过长导致连接长期占用句柄。
  • InnoDB状态:
    执行SHOW ENGINE INNODB STATUS\G,重点看FILE I/O段,是否有大量pending的文件操作,或者Tablespace部分显示未回收的旧表空间;同时检查innodb_open_files配置,若值过小可能导致MySQL重复打开表空间文件,加剧句柄消耗。
  • 日志清理:
    执行SHOW BINARY LOGS;查看binlog是否堆积,检查expire_logs_days或binlog_expire_logs_seconds是否配置合理;主从架构下,查看SHOW SLAVE STATUS\G的Relay_Log_Space,确认中继日志是否未自动清理。

4. 排查版本相关已知问题

Percona Server 5.7.36-39存在几个可能导致句柄泄漏的场景:

  • 某些复杂查询(如带DISTINCT、GROUP BY的子查询)导致磁盘临时表句柄未释放
  • MyISAM表在频繁打开/关闭场景下的.frm文件句柄泄漏
  • 线程池模式下(若开启thread_handling=pool-of-threads)的连接句柄泄漏

5. 临时缓解与验证操作

  • 执行FLUSH TABLES;,观察open_files是否下降:若下降,说明是表缓存未及时释放,可调整table_open_cache和table_definition_cache至合理值(建议根据表数量设置,一般为表数的1.5-2倍)
  • 临时调高文件句柄限制:系统级修改/etc/security/limits.conf添加mysql soft nofile 65535和mysql hard nofile 65535,MySQL配置文件中设置open_files_limit=65535,重启后观察是否还会快速触达阈值,验证是否为持续性泄漏。

内容的提问来源于stack exchange,提问作者ChrisK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 04:56:28