NeoPerformance

NeoPerformance - 服务器性能管理工具

掌控你服务器性能的终极工具
Bukkit / Spigot 作者 KyTDK 支持版本 1.8 - 1.20
服务器使用量
14
服务玩家数
31
下载量
11,907
插件详细介绍

NeoPerformance 是一款服务器性能管理工具,提供集群检测、区块实体排序、滞后源定位等功能,帮助服主发现、修复并预防卡顿来源,同时还能阻止滞后机器并降低严重崩服风险。

前言

说明

  • 这个插件并不是所谓的“anti-lag plugin”万能解决方案。
  • NeoPerformance 的重点是为管理员提供实用工具,例如服务器暂停、实体定位与性能优化建议。
  • 如果你的服务器硬件本身较弱,NeoPerformance 的效果也会受到限制。
  • 硬件限制不在插件控制范围内。

特性

  • 通过阻止多种滞后机器并优化常规玩法,减少服务器卡顿。
  • 显示服务器配置建议,并可在游戏内自动应用推荐项。
  • 当 TPS 低于设定值时,可暂停服务器以防止崩溃。
  • SmartClear - 移除大型实体集群,比多数滞后防护插件常用的标准实体清除方式更好。
  • Chunks - 显示实体最多的顶级区块。
  • SmartNotify - 当实体过多并造成卡顿时通知管理员。
  • 当服务器出现卡顿时发送邮件。
  • 高度可自定义(请查看页面底部的 YML 文件)。
  • 自动查找卡顿源并执行服务器清理。

可选需求

  • Spark - 如果你的服务器安装了 spark,NeoPerformance 会接入并添加更多指标。下载地址在这里。
  • DiscordSRV - 如果已安装并配置 DiscordSRV,当服务器进入暂停状态时,NeoPerformance 会通知你的频道。下载地址在这里。

命令与权限

  • /Neoperformance/np (neoperformance.admin) - 向管理员显示服务器状态
  • /np help (neoperformance.help) - 显示所有命令及其用途
  • /np halt (neoperformance.halt) - 手动暂停服务器
  • /np chunks <world> (neoperformance.chunks) - 显示实体最多的区块。输入 /np chunks 可显示所有世界的前 10 个,输入 /np chunks <world> 可显示指定世界的前 10 个。
  • /np reload (neoperformance.reload) - 重载插件配置文件
  • /np bypass <player> (neoperformance.bypass or use neoperformance.bypass.auto) - 绕过服务器暂停
  • /np smartclear <flags> <neoperformance.smartclear> - 清除实体集群
  • 对于 SmartNotify 这一集成通知系统(chunks 和 clusters),需要 OP 或 neoperformance.smartnotify
  • /np config (neoperformance.config) - 打开游戏内配置编辑器
  • /np report (neoperformance.report) - 生成服务器整体性能报告
  • /np insight (neoperformance.insight) - 显示服务器配置建议,并自动应用推荐项以提升服务器性能
  • /np insight fix (neoperformance.insight.fix) [category] [elementName] - 为指定项应用推荐设置
  • /np insight fix all (neoperformance.insight) - 为全部项目应用推荐设置
  • /np insight sources (neoperformance.insight.sources) - 显示用于确定推荐值的数据来源

滞后防护

  • 防止过多爆炸。
  • 防止过多刷怪。
  • 防止滞后机器,例如过多矿车。

崩溃防护

如果插件未能阻止卡顿,服务器会启用暂停模式,并在 TPS 恢复到稳定状态之前停止以下活动:

  • 传送
  • 玩家移动过快(速度作弊等)
  • 实体爆炸
  • 红石(红石活动会被缓存,并在服务器恢复稳定 TPS 后恢复,因此红石装置不会损坏)
  • 区块加载
  • 实体生成事件(以及物品掉落)
  • 命令方块执行命令
  • 方块被破坏(因为物品无法掉落)
  • 抛射物
  • 实体目标锁定
  • 方块物理
  • 玩家加入服务器(极端卡顿可能由玩家过多引起,插件会在服务器恢复可游玩状态前阻止玩家加入)
  • 以上功能均可选用,这一项默认关闭。

配置示例

###########################################################################
#                            STANDARD SETTINGS                             #
###########################################################################
performance_tweak_settings:
  # 当 TPS 低于或等于此值时,服务器活动会被节流(设为 -1 可禁用)
  tpsHaltAt: 15
  # 当 TPS 低于或等于此值时,通知 op 用户
  notifyAdmin: true
  # 广播服务器正在高负载并进入暂停
  broadcastHalt: false
  # 如果安装了 DiscordSRV,则向你的频道发送 Discord 消息
  notifyDiscord: true
  # 在小范围内允许存在的最大实体数量(设为 -1 可禁用)
  mobCap: 50
  # 定义地图的小范围大小(范围越大,对服务器压力越大,不要设得太大)
  mobCapRadius: 10
  # 在小范围内允许存在的最大爆炸数量(设为 -1 可禁用)
  explosionCap: 50
  # 心跳频率决定 NeoPerformance 多久更新一次 TPS、检查服务器是否已暂停,
  # 以及在已暂停时恢复服务器。一般不建议高于 20,因为这可能会
  # 影响用户体验(单位:tick)
  heartBeatRate: 20

  # [halt_settings] 以下设置仅在服务器暂停时生效
  halt_settings:
    # 服务器暂停时是否允许玩家加入(拥有 'neoperformance.bypass' 的用户仍可加入)
    allowJoinWhileHalted: true
    haltTeleportation: false
    # [maxSpeed] 3.92000381462276 m/s 是 Minecraft 中玩家的终端速度(设为 -1 可禁用)
    maxSpeed: -1
    haltExplosions: true
    haltRedstone: false
    haltMobSpawning: true
    haltInventoryMovement: true
    # 不影响玩家,只影响漏斗和箱子
    haltCommandBlock: true
    haltItemDrops: true
    haltBlockBreaking: true
    # [haltPlayerInteraction] 这也会阻止方块放置,因为那同样属于玩家交互
    haltPlayerInteractions: false
    haltProjectiles: true
    haltEntityInteractions: true
    # [haltEntityTargeting] 如果设为 true,某些滞后机器可能会停止工作
    haltEntityTargeting: true
    haltVehicleCollisions: true
    haltBlockPhysics: true
    # 如果服务器暂停超过此时间(秒),则重启服务器(设为 -1 可禁用)
    haltTimeout: -1

  # Lag notifier 会自动运行 SmartClear 和 Chunks,并在检测到显著结果时通知管理员
  lag_notifier:
    # Lag Notifier 多久检查一次卡顿(秒);低于 60 可能会造成卡顿(设为 -1 可禁用)
    runInterval: 60
    # 当一个区块中的实体数量达到多少时,Lag Notifier 会提醒你(设为 -1 可禁用)
    entitiesInChunkNotify: 500
    # 当实体集群达到多大时,Lag Notifier 会提醒你(设为 -1 可禁用)
    clusterSizeNotify: 200

  # 当前的暂停动作包括:smartclear
  # 删除所有动作,只保留一个名为 'null' 的项即可禁用
  halt_actions:
    - smartclear

commands:
  # SmartClear
  # 定义 SmartClear 的集群大小;低于 10 可能会有风险,
  # 过高则可能不会起作用
  defaultClusterSize: 15
  # SmartClear 应忽略哪些实体?(下划线或空格都无所谓,只要拼写正确)
  smartClearExcludeEntities:
    - item_frame
    - painting
    - armor_stand

###########################################################################
#                       ADVANCED (DON'T TOUCH UNLESS YOU KNOW WHAT YOU ARE DOING)                       #
###########################################################################
# 如果你已经设置了邮件服务器,可以使用以下设置在服务器暂停时向管理员发送邮件(可能会比较刷屏)
# 默认启用 SSL
email_notifications:
  # 如果你想使用邮件服务器,请将其设为 true,否则不会工作
  use_mail_server: false
  # 邮件服务器主机名
  mail_server_host: smtp.gmail.com
  # 邮件服务器端口
  mail_server_port: 587
  # 用于发送邮件的邮件服务器邮箱地址
  mail_server_username: [email protected]
  # 邮件服务器密码
  mail_server_password: password
  # 收件人
  recipients:
    - "[email protected]"
    - "[email protected]"

visual:
  language: en-US
  # 参见 '/np' 中的 'Is Plugin Up To Date'
  showPluginUpdateInMain: true

联系方式

  • 你可以通过 [email protected] 联系作者,或者加入 Discord 服务器:https://discord.com/invite/PCsEQm7yKw(已修复)
  • 该插件主要是为作者自己的服务器设计的:neomechanical.com
测试支持版本
1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20
版本分布
基本信息
插件名称 NeoPerformance
作者 KyTDK
平台 Bukkit / Spigot
支持版本 1.8 - 1.20
点赞数 1
最近版本
1.15.4 6
2.0.1 2
1.15.5 2
1.15.12 1