1139365029
本帖最后由 1139365029 于 2020-4-16 22:23 编辑
1. 关于
快照20w16a当中添加了JMX的支持,用于监测服务器的各项资源,
引用帖子的原文
JMX 是一种著名的监测技术,有很多现成的集成工具为其提供支持。

所以,这么好的东西,我们为何不用呢?

2. 准备工作
安装java即可

3. JVM启动项的配置
首先按照官方的说法,我们需要设置server.properties文件中的配置项
  1. enable-jmx-monitoring=true
复制代码
此时,如果你仅仅只是在本地使用JMX监控,那么配置到此处就结束了,请浏览下一部分,
如果想要进行远程监控,请继续往下看,
首先我们要设置远程访问的账户和密码,
我们需要准备两个文件,一个是“jmxremote.access”,另一个是“jmxremote.password”,如下图所示:

可以直接新建,也可以在“java安装目录/jre/lib/management”下面复制出来,
这两个文件,前者是用来控制账户权限的,后者是用来控制账户密码的,
文件放哪里都可以,但推荐放服务端目录里面,方便管理,
现在我们打开“jmxremote.access”文件,在里面写下:
  1. admin readonly
复制代码
表示添加一个叫做“admin”的只读账户,
然后打开“jmxremote.password”,在里面写下:
  1. admin 123456
复制代码
表示“admin”的密码是123456,
注意中间是用空格隔开,空格多点少点无所谓,
建议大家不要写的跟我一样,至少密码要不一样吧
然后最关键的一步来了,
忽略此步启动会提示“错误: 必须限制口令文件读取访问权限”,然后服务端就关闭了,
因为内容较长,此处折叠
接下来我们需要将JVM启动项添加到服务器的启动项中,
用记事本打开启动脚本,添加启动参数
  1. -Dcom.sun.management.jmxremote.port=监听端口
  2. -Dcom.sun.management.jmxremote.ssl=false
  3. -Dcom.sun.management.jmxremote.authenticate=true
  4. -Dcom.sun.management.jmxremote.password.file=文件所在目录\jmxremote.password
  5. -Dcom.sun.management.jmxremote.access.file=文件所在目录\jmxremote.access
复制代码
如图:

关于启动参数的更详细的内容,请参考:https://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html
至此,配置工作已完成,可以启动服务器了

4. 开始监控
在“java安装目录\bin”下面,找到一个叫做“jconsole.exe”的程序,如图:

双击运行:

如果服务端也在同一台电脑上运行,可以在“本地进程”中找到进程,
反之就选择“远程进程”,输入IP、端口、用户名以及密码:

注意:端口是你在服务端启动参数里写的那个,不一样要跟这个一样
这里点“不安全的连接”

至此,连接成功:


5. 进一步使用
界面相信大家能够看懂,这里介绍一下mojang提到的averageTickTime与tickTimes,
转到MBean,找到那个一看就很像MC的,展开,就能看到了

点击可以在右边看到对应的值,目前还不知道这代表什么含义

1759749908
这个厉害,感觉以后的开服器都会用到这个办法监测服务器。