【发布时间】:2017-05-11 23:47:15
【问题描述】:
我有以下问题。
我有一个安装了 LAMP 的 AWS EC2 t2.micro 实例。
我的 WebApp 使用 InnoDB 表。如果有很多用户,InnoDB 曾经因为缓冲池大小而崩溃。它说它无法分配足够的内存。
170511 10:32:05 InnoDB:初始化缓冲池,大小 = 128.0M
InnoDB:mmap(137363456 字节)失败;错误号 12
我已将 innodb_buffer_pool_size 设置为 750M(如果我将其设置为超过 1GB - mysql 根本不会启动)。我已经在 LoadImpact 下对我的 WebApp 进行了压力测试。从 30 人起,WebApp 试图分配 800M 之类的东西,结果又让 MySQL 崩溃了。
170511 12:16:04 InnoDB:初始化缓冲池,大小 = 752.0M
InnoDB:mmap(807010304 字节)失败;错误号 12
另一个问题是我不能在 mysql Crash 后只运行 sudo service mysql start 或 restart。它说作业无法启动。
- 如何让我的服务器更稳定。我应该使用哪些选项。
- 如何防止这种“崩溃”行为。我的意思是我可以做一些使服务器和 mysql prosess 不是 chash 而是冻结或类似的东西。我不想每次网站上有很多人时都做 sudo reboo
【问题讨论】:
-
MySQL 没有崩溃。它被 Apache 杀死,然后拒绝了它需要的资源,以便重新启动。 dba.stackexchange.com/a/25083/11651
标签: mysql apache amazon-ec2 innodb