【问题标题】:Mysql Server daemon have opened or accessing too many files is that an issueMysql Server daemon has open or access too many files 是一个问题
【发布时间】:2014-09-23 02:23:45
【问题描述】:

我有一个 mySQL 数据仓库,大小接近 1.4 TB 当我检查 mysql 服务器守护进程正在访问的文件数量时,我感到很惊讶。

cmd 用户:lsof | grep mysql cnd2 使用 : lsof | grep mysql | wc -l 2598 请建议如何减少这种情况。这对mysql性能有什么影响。

【问题讨论】:

  • 您可以尝试在 dba.stackexchange.com 上发布此问题。

标签: mysql linux data-warehouse lsof


【解决方案1】:

很有可能,可以减少 MySQL 打开的文件数量。但请注意,这可能会降低性能。在性能方面,(比打开文件的数量)更重要的是文件的关闭和打开。 (这比打开文件更昂贵。)

MySQL 缓存打开的表,保持最近使用的文件打开。这避免了与关闭文件相关的性能开销,然后再重新打开它们。使用table_open_cache 变量设置保持打开的表数量的限制。

MySQL 打开的文件数量限制在max_open_files 变量中设置。

参考:http://dev.mysql.com/doc/refman/5.5/en/table-cache.html


请注意,MyISAM 表作为三个文件存储在磁盘上:tablename.frm、tablename.MYD 和 tablename.MYI。如果表是分区的,每个分区需要单独的文件。

使用 InnoDB 引擎,如果在创建表时设置了 innodb_file_per_table 选项,则为两个文件,tablename.frm 和 tablename.idb。

如果多个会话正在访问一个表,则该表将有多个“打开文件”。

还有几个innodb日志文件,以及mysql日志文件(在日志中是启用的),mysql一般日志,慢查询日志等。

任何临时表、派生表或中间结果集超出“内存中”存储的表的大小限制,即附加文件将被转出到磁盘,并且可能还有更多打开的文件。


如果您遇到“打开的文件过多”操作系统错误,您可以增加操作系统限制。如果这不可能,则减少 max_open_files 变量;您可能还需要减少一些其他相关变量。

如果您正在考虑限制打开文件的数量作为降低性能的解决方案,那么您可能会找错树,因为减少 MySQL 可以保持打开的文件数量可能会减少 em> 性能。

【讨论】:

  • 我会检查一下,看看是否有帮助
猜你喜欢
  • 1970-01-01
  • 2017-02-18
  • 2015-07-24
  • 1970-01-01
  • 1970-01-01
  • 2022-10-14
  • 2016-01-15
  • 1970-01-01
  • 2021-09-07
相关资源
最近更新 更多