不断收到“MySQL 已消失”和“发送查询包时出错”的信息

不断收到“MySQL 已消失”和“发送查询包时出错”的信息

解释

在装有 CentOS(2GB RAM,2 核)的 XEN VPS 上有一个 wordpress 网站,访问量一般,以前在廉价的共享主机上运行,​​没有出现此类问题(因其他原因转移)。

  • 数据库中有 132 个表
  • 数据库总大小 40MB
  • 最大表为 22MB,5000 行
  • 大多数(96%)select查询,平均select每小时 20 万个查询。

MySQL 网络流量:

----------------------------------
|    Traffic     |     per hour  |
----------------------------------
|   Received     |    64.6 MiB   |
|    Sent        |     1.5 GiB   |
|    Total       |     1.5 GiB   |
----------------------------------

free -m结果:

             total       used       free     shared    buffers     cached
Mem:          1868       1636        232          4         32       1113
-/+ buffers/cache:        490       1378 
Swap:         1023         57        966

问题

每 4-5 小时就会出现两次错误,如下所示:

  1. 大量 (20-40) 此错误:Error while sending QUERY packet. PID=XXXX in ...wp-db.php on line 1942

  2. 此错误中的一些(3-5):mysqli_query(): MySQL server has gone away in ...

这种情况会持续几秒钟或最多 5 分钟,然后在接下来的 4-5 个小时内完全没有任何错误。


我做了什么

据我了解,这与有关max_allowed_packet,所以我尝试了从 256M 到 900M 的值,但没有成功,也修改了一些其他配置,但之后又恢复了。

当前my.cnf文件如下(问题开始发生时它是空的):

[mysqld]
max_allowed_packet=524288000
open_files_limit=15000
wait_timeout=70
connect_timeout=70

非常感谢任何建议或帮助。

答案1

您还可以尝试增加 innodb_buffer_pool_size此主题。这在过去曾帮助过我。

相关内容