From d7849dea901bad040e8a430da350e7b7a4621855 Mon Sep 17 00:00:00 2001 From: Radiation-pi <96102795+Radiation-pi@users.noreply.github.com> Date: Wed, 1 May 2024 12:26:18 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E6=80=A7=E8=83=BD=E5=88=86=E6=9E=90.m?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/优化/性能分析.md | 48 +++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/docs/优化/性能分析.md b/docs/优化/性能分析.md index 455597eb2d..5d1fb4499c 100644 --- a/docs/优化/性能分析.md +++ b/docs/优化/性能分析.md @@ -1,5 +1,5 @@ --- -sidebar_position: 5 +sidebar_position: 4 --- # 性能分析 @@ -8,7 +8,7 @@ sidebar_position: 5 ## spark -spark是一个Minecraft的性能分析器,支持广泛(Bukkit,BungeeCord,velocity,Forge,Fabric等) +spark是一个Minecraft的性能分析器, 支持广泛(Bukkit, BungeeCord, velocity, Forge, Fabric等) :::info @@ -20,45 +20,45 @@ spark是一个Minecraft的性能分析器,支持广泛(Bukkit,BungeeCord,velocit ### 使用方法 -首先将spark.jar文件插件放到服务端的 mods 或者 plugins 文件夹中.(如果服务端是purpur fork很可能你可以直接在/pl中查看到spark,直接用就好) +首先将spark.jar文件插件放到服务端的 mods 或者 plugins 文件夹中.(如果服务端是purpur fork很可能你可以直接在/pl中查看到spark, 直接用就好) #### /spark profiler -如果分析器已经启动,你可以输入下面这些命令: +如果分析器已经启动, 你可以输入下面这些命令: /spark profiler open 打开分析报告页而无需停止; /spark profiler stop 停止分析并浏览分析结果; -/spark profiler cancel 取消分析操作,并取消上传报告。 +/spark profiler cancel 取消分析操作, 并取消上传报告. -在其他情况下,你可以使用这些基本的操作命令: +在其他情况下, 你可以使用这些基本的操作命令: /spark profiler start 在默认操作模式下开始分析; -/spark profiler info 检查当前分析的状态。 +/spark profiler info 检查当前分析的状态. -这是主要的指令,为了更多的功能,更精准的分析等可以在后面加上参数.具体请查看[profiler指令使用方法](https://snowcutieowo.github.io/spark/#/spark.command-usage) +这是主要的指令, 为了更多的功能, 更精准的分析等可以在后面加上参数.具体请查看[profiler指令使用方法](https://snowcutieowo.github.io/spark/#/spark.command-usage) #### /spark hearth -子命令 health 会产生一份服务器的健康报告,其中包含 TPS、CPU、内存和硬盘的使用情况 +子命令 health 会产生一份服务器的健康报告, 其中包含 TPS、CPU、内存和硬盘的使用情况 #### /spark tps -spark默认会替代服务器的tps输出(但可能被CMI覆盖,请关闭CMI的/tps指令或者输入完整/spark tps获取) +spark默认会替代服务器的tps输出(但可能被CMI覆盖, 请关闭CMI的/tps指令或者输入完整/spark tps获取) #### 其他指令 -其他指令其实并不太重要...因为都包含在了profiler里了,如果不想跑一个完整的profiler可以自己琢磨. +其他指令其实并不太重要...因为都包含在了profiler里了, 如果不想跑一个完整的profiler可以自己琢磨. :::info 怎么让大佬帮我 如果你看不懂spark, 请进行以下操作 -1.检查你的服务器有没有安装spark插件,尝试`/spark`命令或者`/pl`看看有没有spark +1.检查你的服务器有没有安装spark插件, 尝试`/spark`命令或者`/pl`看看有没有spark -如果没有,手动安装一下[spark](https://www.spigotmc.org/resources/spark.57242/) +如果没有, 手动安装一下[spark](https://www.spigotmc.org/resources/spark.57242/) 2. 开启spark记录 @@ -68,7 +68,7 @@ spark profiler start ![](_images/怎么让大佬帮我/spark_start.png) -在你服务器卡顿的时候开启,**一段时间后**结束 +在你服务器卡顿的时候开启, **一段时间后**结束 3. 结束spark记录 @@ -76,7 +76,7 @@ spark profiler start spark profiler stop ``` -它会给你一个链接,你把这个链接发给大佬并**礼貌的**请求他帮助你 +它会给你一个链接, 你把这个链接发给大佬并**礼貌的**请求他帮助你 注:链接位置在下方图片中红框标记的部分 @@ -86,26 +86,34 @@ spark profiler stop ## timings -timings是一个paper自带的性能分析器,由于其监听每一个事件,性能开销比较大,在很多服务器核心(如purpur等)本身也是被移除的,不推荐. +timings是一个paper自带的性能分析器, 由于其监听每一个事件, 性能开销比较大, 在很多服务器核心(如purpur等)本身也是被移除的, **不推荐**. :::warning -在可预见的未来timings将会被移除,作为新手可以直接跳过 + +在可预见的未来timings将会被移除, 作为新手可以直接跳过. 如果你使用paper服务器, 请禁用Timings!虽然它是一个很好的诊断工具, + +但由于其不断不断启动和停止虚拟“秒表”, 会对性能产生非常大的影响. 因此无论服务器规模大小只需禁用计时即可实现 *10-30%* 的性能提升. + +可以通过在 timings.enabled /config/paper-global.yml中设为 false 禁用. + ::: ### 其他软件分析 :::warning -这部分需要一些基础知识,一般spark分析不出来才会尝试其他软件 + +这部分需要一些基础知识, 一般spark分析不出来才会尝试其他软件. *一般服主不必要学习这部分内容*. + ::: #### arthas -Arthas 是一款阿里巴巴开发的在线性能分析软件,可实时查看应用 jvm/内存/gc/线程 的状态信息,甚至包括查看方法调用的出入参、异常,监测方法执行耗时等,一般用于排查某些插件的CPU占用情况和插件线程占用分析. +Arthas 是一款阿里巴巴开发的在线性能分析软件, 可实时查看应用 jvm/内存/gc/线程 的状态信息, 甚至包括查看方法调用的出入参、异常, 监测方法执行耗时等, 一般用于排查某些插件的CPU占用情况和插件线程占用分析. [官方文档链接](https://arthas.aliyun.com/doc/) #### jprofiler -jprofiler是一款付费的易用的性能分析软件,甚至可以对MySQL,内存泄漏进行分析,可视化展示. +jprofiler是一款付费的易用的性能分析软件, 甚至可以对MySQL, 内存泄漏进行分析, 可视化展示. [官方链接](https://www.ej-technologies.com/products/jprofiler/overview.html)