发布于 

开服小记

服务器趁打折时40多大洋一年购入,还估计2c2g开个偏原版的MC插件服应该没问题,没想到成了噩梦的开始😥

开服

这次我都是在root用户下操作,非root用户应该都懂吧。

🔗 腾讯云推广,双赢

主要参考了这两篇教程
针对1.16-1.19追求高在线服主优化需求 | 轻松应对50+在线
【性能利用100%】学生机也能开流畅服

JDK的选择可以参考换个 JVM,最高节省43.3%内存,提高36.9%CPU效率。一圈体验下来,都感知不强,要说的话zulu下载比较方便

JVM参数可加可不加,加错了就纯纯的负优化,加对了也就是锦上添花。参数都主要来自https://aikar.co/category/minecraft/ 。记住,配置差就别想着曲线救国了调参数是你最后的手段,加钱才是你最后的手段😄。

毕竟2g小内存,定期重启MC服务器才能维持好稳定性。

个人还是喜欢用systemd进行管理。
开机自启,参考https://www.v2ex.com/t/592975

1
vim /etc/systemd/system/mc.service 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Unit]
Description=Minecraft Server
Wants=network-online.target
After=network-online.target

[Service]
User=root
WorkingDirectory=/<服务端目录>/
LimitNOFILE=4096
PIDFile=/var/run/minecraft/server.pid
ExecStart=/usr/bin/java -server -Xmx1g -Xms1g -jar paper.jar
Restart=on-failure
StartLimitInterval=600

[Install]
WantedBy=multi-user.target
1
2
systemctl daemon-reload
systemctl enable mc --now

定时关服重启

1
2
3
4
5
#编辑定时器
crontab -e

#在里面写入
0 1 * * * sudo systemctl stop mc #每日凌晨1点关服

保存之后

1
systemctl restart cron.service

BE与JE互通

这是个性能开销大户🤬,我的不幸都来源于它,特别是小内存的服务器就不要试图开互通服了。

使用Geyser搭配Floodgate,即可解决BE连接与登录问题

在下载页中下载Spigot的版本,注意插件并不支持版本向下兼容,对应服务端版本需要在左侧自行寻找

重启服务器,在Geyser-Spigot文件夹中,编辑config.yml文件
其他看自己喜好,主要修改

1
auth-type: online

修改为

1
auth-type: floodgate

可以,但没必要

QQ机器人

既然MC都跑Java了,自然想起了搭建自己的QQ机器人,翻了一圈加了几个机器人插件

性能监控

每次登录腾讯的控制台看性能信息挺麻烦的,最后选择使用Netdata,炫就完事了。

Netdata大致会占用100~200M内存,如果内存真的不够,也不嫌弃每次登录ssh的话,用top命令也不是不行

就不要用官方给出的一键安装脚本了,国内开服的话是不可能安装成功的,除非你想试试。

直接用包管理器安装

1
sudo apt install netdata

编辑配置文件

1
sudo vim /etc/netdata/netdata.conf

如果你的配置文件内容没有大致长这样,可尝试文件顶端的两个命令

1
2
wget -O /etc/netdata/netdata.conf http://localhost:19999/netdata.conf
curl -o /etc/netdata/netdata.conf http://localhost:19999/netdata.conf