如何查找mysql数据库我的key_buffer和innodb_buffer_pool是否竞争


3

服务器基础设施:
我有一台运行nginx + wordpress + mysql的centos服务器。

问题:
mysql经常被关闭并且wordpress显示“无法连接到数据库”警报。

发现问题:
似乎问题是由于innodb_buffer_pool大小造成的。

分析:
在检查日志和阅读有关缓冲池之后,我明白如果我使用混合存储引擎(myISAM和innodb)。的确,我一直在使用两种引擎。

问题:

  1. 如何找到mysql缓冲区在工作期间是否相互竞争?
  2. 如果可以找到使用某种方法,可以通过发送电子邮件/短信自动化吗?


这是一个经常遇到的问题,实际上并不是MySQL的问题。MySQL是Apache成为记忆猪的受害者。dba.stackexchange.com/a/25171/11651
Michael - sqlbot

*我正在使用nginx。你在使用apache设置时遇到同样的问题吗?@ Michael-sqlbot
MohanBabu 2017年

1
不,我没有体验过它。我总是在机器上运行MySQL并尽可能远离MyISAM。如果您找到了解决方案,请将其作为答案发布,解释您找到的内容,以及未来访问者如何使用它来解决同一问题。
迈克尔 - sqlbot

Answers:


1

简答

  • MyISAM仅缓存.MYI文件中的索引。
  • InnoDB缓存数据和索引页面(InnoDB页面为16K)

除非在mysqld之外存在内存分配问题,否则密钥缓冲区和InnoDB缓冲池不可能竞争(通常由于有大量的数据库连接,每个数据库连接为其自己的会话分配大量内存)

更长的答案

看我以前的帖子

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.