Ubuntu 16.04 服务器中的 mysql 和内存问题

Ubuntu 16.04 服务器中的 mysql 和内存问题

几天前我在 Amazon 上设置了一个 VPS。我安装了 LAMP 服务器,然后上传了一些网站。一切都运行正常,直到昨天我注意到网站显示数据库连接错误。我检查了 /var/log/mysql/ 中的错误日志,似乎存在一些内存问题。您可以在此处查看错误日志中的最后记录: https://paste.ubuntu.com/23533774/

我从某处读到“无法为缓冲池分配内存”表明这是内存问题,解决方法是添加交换文件。

我想知道的是,我是否应该增加 VPS 的内存,或者我是否应该添加这个交换文件。或者也许还有其他我不知道的解决方案。

附加信息: - 现在可用的内存为 1GB - 大约有 2 个 html 网站、2 个 wordpress 网站、1 个 joomla 网站和 3 个其他 php 网站。可能还会添加几个网站。 - 这是我第一次设置服务器

我在这里先向您的帮助表示感谢。

答案1

根据https://stackoverflow.com/questions/10284532/amazon-ec2-mysql-aborting-start-because-innodb-mmap-x-bytes-failed-errno-12您需要添加一个交换页面。

您可以按照以下步骤设置交换页面:

http://www.prowebdev.us/2012/05/amazon-ec2-linux-micro-swap-space.html

根据这个网站(我只是在这里复制)

以下步骤展示了如何为您的 Micro 实例创建交换空间。我假设您有一个正在运行 Micro 实例的 AWS 账户。

  1. 跑步dd if=/dev/zero of=/swapfile bs=1M count=1024
  2. 跑步mkswap /swapfile
  3. 跑步swapon /swapfile
  4. 将此行添加/swapfile swap swap defaults 0 0/etc/fstab

如果您希望每次重启后自动启用交换文件,则需要执行步骤 4。

一些与 SWAP 空间相关的有用命令:

$ swapon -s   
$ free -k

$ swapoff -a
$ swapon  -a

参考:

  1. http://www.thegeekstuff.com/2010/08/how-to-add-swap-space/
  2. http://cloudstory.in/2012/02/getting-the-best-out-of-amazon-ec2-micro-instances/
  3. http://cloudstory.in/2012/02/adding-swap-space-to-amazon-ec2-linux-micro-instance-to-increase-the-performance/
  4. http://aws.amazon.com/ec2/实例类型/

相关内容