缘由
阿里云服务器之前发布了一款低价ECS服务器,作为99元起步价,2核2G、3M固定带宽、40G ESSD Entry盘、独立IP的配置,当然要买一台了。然后在这台服务器上装了node、java、mysql、redis等相关软件,然后将我的三个java应用、两个node应用部署在这台服务器,以为能顺利运行,没想到经常是安装后一段时间内是好的,但是过了一个夜晚后,连服务器都不能连接了,痛苦啊😓。于是就去查查原因。
发现问题
我先使用 top -H 命令来查看当前运行的程序,发现mysqld、java的内存太大了,于是就想讲mysql、java配置修改下,以匹配上我这低内存的服务器。

调优
我查了下mysql的相关配置,主要优化点包括性能优化引擎关闭以及将bin日志关闭。后来又将其它的相关连接配置也做了优化,最终我的 mysql-server.cnf配置如下:
[mysqld]
skip-log-bin
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysql/mysqld.log
pid-file=/run/mysqld/mysqld.pid
performance_schema_max_table_instances=400
table_definition_cache=400
performance_schema=off
table_open_cache=64
innodb_buffer_pool_chunk_size=64M
innodb_buffer_pool_size=64M
配置完mysql,又将java相关应用的配置也更改下。
nohup java -jar -Xms64m -Xmx128m blog-1.0.0.jar --spring.profiles.active=prod &
主要是将xms以及xmx的内存配置都改的很低。
效果
讲过以上的配置,再使用top命令就如下效果了:

现在经过1天一夜了,服务器还是没崩溃,说明还是有一定效果的。