NitWikit/docs/优化/概览.md
2024-05-11 17:09:57 +08:00

112 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
sidebar_position: 1
---
# 概览
什么是优化? 优化不是装插件, 首先得明白为什么服务器会卡, TPS是什么, 每个服务器可能有自己的卡顿原因, 在这部分先做最基础的通用优化, 如果你使用后作用不大请参考性能分析板块.
如果你现在已经开好服务器有了一定的玩家数量, 那么请一定查看 [优化插件](优化插件.md), 停止此类无效"优化", 然后根据下面的步骤进行操作.
# 第一步 - Java 优化
:::info
几乎任何情况下, 所有服务器都会因为选择合适的Java而受益, 而这本身是最没有代价的, 仅仅需要你下载一个小小的Java安装程序, 或者更改JVM参数(大白话来说就是开服参数).
:::
## 选择合适的 Java
### 版本
原则上选择最新的兼容的Java版本, 可以体验到最新的优化, 并且大部分现代插件都对最新版的特性有专门的兼容比如AuthMeReReload).
根据各路大佬的测试Zulu相较Oracle(你可以看做"公版")更适合开MC服务器
[Zulu下载链接](https://www.azul.com/downloads/?package=jdk#zulu)
下滑并选择你的操作系统/Java版本等即可下载安装.
## JVM 参数优化
可以在[JVM参数生成器](https://startmc.jakaco.xyz/)生成最适合你服务器的JVM参数, 然后复制并保存到你的启动脚本里, 然后重启就完成了
别急. 还有一些更高阶的参数. [拓展阅读](https://blog.binklac.com/e6ad4dc21152)
# 第二步 - 更换核心
在插件和配置层面能进行的优化其实不多受限于API还有服务端核心), 所以最好的方法是更换服务器核心.
:::warning
什么年代了,任何时候都不要再使用CraftBukkit和Spigot了. 追求稳定/性能上paper, 追求原版特性上Leaves.
:::
<details>
<summary>选择更换的服务器核心</summary>
此处只是作为最基础的核心选择推荐,完整版请查看[核心选择](/docs/准备工作/服务器核心选择.md)
## Paper - 追求稳定 *推荐度★★★★☆*
如果是第一次开服, 或者追求稳定, 请使用Paper. 任何时候想更换其他核心可以随时更换如Purpur/Leaf等核心.
## Purpur - 稳定性与性能最佳选择 *推荐度★★★★★*
如果你并不是追求更极致的性能, Purpur 你最好的选择, 只需要替换掉核心就可以, Purpur 兼容全部插件!!
## Leaf - 极致性能 *推荐度★★★★☆*
前往Leaf的Github Action 下载最新核心, 然后替换!!, Leaf 兼容你的绝大部分插件(已知仅有一个不兼容, 但在插件的分支解决)
## Folia - 硬件利用率超高的高性能, 但兼容性较差 *推荐度★★★☆☆*
如果你的服务器对插件的需求不大, 或者你的插件已全部兼容Folia, 那你就可以选择切换到这个核心, 你的tps有绝对巨大的提升(甚至超过了Leaf)
</details>
# 第三步 - 优化服务端配置
目前, Bilibili上面的配置都是很老的, 不推荐使用
文档里的 [调服务端配置](调服务端配置.md) 比较新, 非常推荐
# 第四步 - 更换硬件
不要无脑换硬件! 首先要知道自己的硬件瓶颈在哪里. 如果CPU负荷过高, 建议先排除CPU异常占用, 再看CPU总体占用情况. 一般来说服务器卡顿换CPU是最有效的, 单核性能和MC服务器TPS几乎呈线性相关, 但是换CPU几乎就相当于要换一台机器, 迁移对于新手来说并不是易事.
对于单端服务器来说, 超过8核心的部分基本很难通过提升CPU核心数量提升TPS. 不要动不动就买E5 然后卡了就加4核心8g内存, 更多也没用的.
对于群组服务器来说, 一般核心数量都会占用上, 但是内存可能会有些捉急, 对于每一个普通的生存服来说内存的推荐值为 8G-20G 更多更少都是不推荐的.
:::warning
如果发现CPU占用和内存占用都不是很高但是服务器卡卡的, 请考虑是不是服务器带宽受限导致玩家ping值突然升高的问题. 请分清楚TPS低导致的卡顿, MSPT高导致的卡顿, 带宽占满导致的卡顿.
:::
# 第五步 - 更换操作系统
Linux 比 Windows 更适合用于开服, 对于 Linux 根据自己的使用经验选择即可, 如果没有使用经验可以先使用Ubuntu等主流系统.
1. 更快的发包速度和接收速度, 接入服务器速度将提升数十毫秒起, 当面对假人攻击/DDOS攻击时会更加稳定.
2. 更好的性能, 根据测试TPS能提升8-15%.
3. 更低的内存占用, 对于Windows服务器一般开机会占用1-2g内存. 而一般的Linux系统开机后占用往往不到0.5g.
4. Linux的稳定性是Windows无论如何也无法比拟的.
5. Linux安全性更高, 开源系统, 有社区的支持
6. Linux支持文件占用直接删除(也就是说可以自动更新插件, 不像Windows那样提示文件被占用)
:::info
可能会有小伙伴说:"Linux太难操作了, 根本不会用." 其实大多数开Linux服务器的服主也不是纯纯使用Linux编辑插件配置, 那么好, 我们为小白推荐三个面板辅助我们开服.
1. [MCSM](https://docs.mcsmanager.com/zh_cn/) 全名 MCSManager 是一款开源,分布式,一键部署,支持 Minecraft 和 Steam 游戏服务器 的控制面板.
2. [1Panel](https://1panel.cn/) 是新一代的 Linux 服务器运维管理面板,支持 Web 图形界面管理、快速建站、应用商店、安全可靠、一键备份等功能.
3. [宝塔面板](https://www.bt.cn/) 是一款支持Linux和Windows系统的服务器运维管理工具提供资源监控、文件管理、软件安装等功能.
:::
# 第六步 - 性能分析
通用的一些解决方法看来已经差不多做好了, 每个服务器都有自己最导致滞后的因素, 可能是实体太多, 可能是玩家机器多, 也可能是某些插件写的太屎... 如此, 那么应该如何知道服务器为何卡顿呢. 对咯! 性能分析!
如果你是个完完全全的新手, 或者懒得分析, 想请教别人分析应该怎么办呢? 请转跳到 [怎么让大佬帮我](怎么让大佬帮我.md)
如果你不想求助别人, 亦或者你想有一些进步, 请参考 [性能分析](性能分析.md)
:::