内核限制"open file limit "和mysql"Opened_files"有关系吗?
kernel limit "open file limit " and mysql "Opened_files" related?
我们正在托管我们的快递 api 应用程序,该应用程序具有大量数据插入和数据读取。我们正在努力为我们的 ubuntu 16 台服务器实现最大吞吐量,配备 55cpu 和 128gb ram 以及 1tb SSD 磁盘。下面是"innobdb status result"
29 queries inside InnoDB, 517 queries in queue
32 read views open inside InnoDB
Process ID=2197, Main thread ID=140312433551104, state: sleeping
Number of rows inserted 169904, updated 1662462, deleted 3, read 44626802863
26.33 inserts/s, 202.20 updates/s, 0.00 deletes/s, 6061352.15 reads/s
虽然我检查过,但我可以看到 mysql 的打开文件限制是 65000,而 mysql 中的 Opened_files 使用是 84981。我的问题是 "Is kernel limit "打开文件限制”和mysqlOpened_files有关吗?
show global variables like 'open%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 65536
MariaDB [(none)]> show status like '%Opened_files%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_files | 84981 |
+---------------+-------+
1 row in set (0.00 sec)
我们正在经历异常突然的巨大峰值,我们的 api 开始断开连接。
这是两个不同的东西。一个 Opened_files
是一个计数器,它告诉您自上次 mysqld
重新启动以来您打开了 table 的次数。
如果你想调整你的数据库,你可能会通过调整table_open_cache
获得更好的性能,但这超出了这个问题的范围
另一方面,open file limit
是操作系统的硬性限制,它告诉您可以同时打开多少个文件。该限制通常略低于 2^16(别名您的文件限制)。更多的细节再次需要更长的时间来解释并且超出范围。
直接回答你的问题:它们没有关系。
有趣的值是 Opened_files / Uptime 的商。比方说,2/秒是 'reasonable'.
也相关:table_open_cache
、innodb_open_files
和其他。
如需更透彻的分析,请提供
- RAM 大小
- 显示变量;
- 显示全局状态;
您提供的代码片段似乎暗示了一些繁重的 table 扫描?也许缺少一些索引?让我们讨论一些常见的或较慢的查询。
我们正在托管我们的快递 api 应用程序,该应用程序具有大量数据插入和数据读取。我们正在努力为我们的 ubuntu 16 台服务器实现最大吞吐量,配备 55cpu 和 128gb ram 以及 1tb SSD 磁盘。下面是"innobdb status result"
29 queries inside InnoDB, 517 queries in queue
32 read views open inside InnoDB
Process ID=2197, Main thread ID=140312433551104, state: sleeping
Number of rows inserted 169904, updated 1662462, deleted 3, read 44626802863
26.33 inserts/s, 202.20 updates/s, 0.00 deletes/s, 6061352.15 reads/s
虽然我检查过,但我可以看到 mysql 的打开文件限制是 65000,而 mysql 中的 Opened_files 使用是 84981。我的问题是 "Is kernel limit "打开文件限制”和mysqlOpened_files有关吗?
show global variables like 'open%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 65536
MariaDB [(none)]> show status like '%Opened_files%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Opened_files | 84981 |
+---------------+-------+
1 row in set (0.00 sec)
我们正在经历异常突然的巨大峰值,我们的 api 开始断开连接。
这是两个不同的东西。一个 Opened_files
是一个计数器,它告诉您自上次 mysqld
重新启动以来您打开了 table 的次数。
如果你想调整你的数据库,你可能会通过调整table_open_cache
获得更好的性能,但这超出了这个问题的范围
另一方面,open file limit
是操作系统的硬性限制,它告诉您可以同时打开多少个文件。该限制通常略低于 2^16(别名您的文件限制)。更多的细节再次需要更长的时间来解释并且超出范围。
直接回答你的问题:它们没有关系。
有趣的值是 Opened_files / Uptime 的商。比方说,2/秒是 'reasonable'.
也相关:table_open_cache
、innodb_open_files
和其他。
如需更透彻的分析,请提供
- RAM 大小
- 显示变量;
- 显示全局状态;
您提供的代码片段似乎暗示了一些繁重的 table 扫描?也许缺少一些索引?让我们讨论一些常见的或较慢的查询。