【问题标题】:MYSQL DB keeps crashing (Ubuntu 14.04. / MySQL 5.6)MYSQL DB 不断崩溃(Ubuntu 14.04. / MySQL 5.6)
【发布时间】:2015-10-22 18:39:06
【问题描述】:

我很难弄清楚为什么我的数据库总是崩溃。

最后一个status是这样的:

 * /usr/bin/mysqladmin  Ver 8.42 Distrib 5.6.16, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version      5.6.16-1~exp1
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /var/run/mysqld/mysqld.sock
Uptime:         21 hours 19 min 24 sec

Threads: 8  Questions: 1431709  Slow queries: 0  Opens: 799  Flush tables: 1  Open tables: 117  Queries per second avg: 18.650

这是崩溃前不久的日志: PASTEBIN

我知道我有很多查询(我相信)只有 ~22 小时,但这只是内部使用,所以没有其他负载。 我用 256MB 运行,是不是太低了?

我读到一些关于 MySQL 的“慢速/迷你”设置,这有用吗?

编辑:

运行 mysqltuner,它给了我: 最大可能的内存使用量:352.4M(已安装 RAM 的 161%)

我怎样才能减少呢?

【问题讨论】:

  • 减少innodb_buffer_pool_size 中的my.cnf 值(它告诉您它无法在日志中分配足够的内存)。另外,您是否打开了file_per_table?您的文件描述符用完了。到底有多少进程正在访问您的 MySQL?一个或多个?
  • 我的conf中没有这个pool_size,我应该添加它吗?我在哪里可以看到处理器?也不知道在哪里设置file_per_table。我是一个非常初学者...
  • 是的,只要将它们添加到您的my.cnf,如果它们还没有在文件中。
  • 您的系统有交换空间吗?如果没有,您可能会受益于 1GB 左右的交换空间。输入free -m。如果你有交换,它将显示在输出的最后一行。

标签: mysql ubuntu innodb mysql-5.6


【解决方案1】:

256M 按照今天的标准很小,但有可能。

确保 performance_schema 已关闭;它在 5.6 中消耗内存。 (5.7 更好。)

Tuner 是悲观的,所以 161% 不一定是灾难。但是,它只计算 MySQL 所需的数据,而不是为操作系统、MySQL 代码或任何应用程序计算空间。

所以,是的,减少各种可调参数。通常innodb_buffer_pool_size 是最大的并且可以减少到例如30M。其他可能性:max_connections = 10table_open_cache = 100threads_cached = 3。这些更改中的任何一个都可能(或可能不会)导致性能受损。但崩溃更糟糕。

您应该考虑获得更多 RAM。和/或将非 mysql 应用程序移出该服务器。

当它崩溃时你有错误信息吗?查看mysqld.err。该错误可能表明它与哪个可调参数有问题。

【讨论】:

    猜你喜欢
    • 2013-10-17
    • 2015-09-23
    • 2017-12-01
    • 2012-09-05
    • 2014-12-20
    • 1970-01-01
    • 2018-11-12
    • 2014-06-11
    • 1970-01-01
    相关资源
    最近更新 更多