判断可能是内存不够,杀死了 mysqld 进程。
创建 SWAP 分区
运行下面的命令:
dd if=/dev/zero of=/swapfile bs=1M count=1024
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
将下面一行添加到 /etc/fstab
,服务器重启时自动启动 swap 。
/swapfile swap swap defaults 0 0
优化数据库
降低数据库 InnoDB 引擎的缓冲区大小,以及限制 MySQL 的最大连接数(max_connections):
在 /etc/my.conf.d/server.cnf
的 mysqld
下添加下面两句:
# 降低 InnoDB 缓冲区大小为 64M 或者 32M
innodb_buffer_pool_size = 64M
# 限制最大连接数为100,在服务器配置很低时可以继续降低
max_connections = 100
修改完重启 MySQL:systemctl restart mysqld
max_connections 的默认值是 151,可以动态更改这个值。参见:max_connections
优化 nginx
参见:Optimizing Nginx Configuration
打开 /etc/nginx/nginx.conf
,优化配置如下:
worker_processes 1;
worker_connections 256;
修改完重启 nginx:systemctl restart nginx
。
参考资料:
- https://linuxize.com/post/create-a-linux-swap-file/