最MC论坛

标题: [服务器优化]如何优化服务器 全教程 [打印本页]

作者: lisansi123    时间: 2020-3-11 11:35
标题: [服务器优化]如何优化服务器 全教程
本帖最后由 lisansi123 于 2020-3-11 12:22 编辑

点击上面的目录观看
本人手动打字不易,给个回复吧



一.服务器的选择

市面上,主要的开服方法主要有三种
   1.VPS
     优点:方便快捷 自定义程度高
     缺点:贵
   2.面板
     优点:便宜
     缺点:自定义程度低 容易崩
   3.家用机
     优点:几乎不花钱
     缺点:卡顿
我们建议模组服的配置是 8G 4H


二.服务端的选择

服务端核心
传送链接
1.官服+forge
不提供链接,前往官网
2.Cauldron(MCPC+)
3.KCauldron
4.Thermos
5.Contigo
6.Uranium
优点缺点介绍
1.官服+forge
极其卡顿 无法装载插件
但是纯净 更新速度快

2.Cauldron(MCPC+)
比较稳定,但是太老
forge核心版本太低 许多插件不兼容

3.KCauldron
极其稳定,但是停止维护
许多插件不兼容

4.Thermos
KCauldorn的修复版本
极其稳定,但是停止维护
许多插件不兼容

5.Conitgo
Thermos的修复版本
极其稳定,但是停止维护

6.Uranium
Thermos的修复版本
国内开发 有维护
但是卡顿严重 还有物品无法重叠的BUG


三.启动脚本(客户端和服务端)

说到起到启动脚本,大部分小白会使用开服器,虽然开服器很方便,但是容易无法关闭彻底 卡顿等各种问题出现,建议使用bat开服。
另外就是JAVA选择 本人建议1.7.10以上(包括1.7.10)的人使用JAVA8 优化比JAVA7好多了
下面是一个超级优化的方案
服务器:
  1. java -server -Xincgc -Xmx最大内存M -Xms最小内存M -Xss512K -XX:+AggressiveOpts -XX:+UseCompressedOops -XX:+UseCMSCompactAtFullCollection -XX:+UseFastAccessorMethods -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:CMSFullGCsBeforeCompaction=2 -XX:CMSInitiatingOccupancyFraction=70 -XX:-DisableExplicitGC -XX:TargetSurvivorRatio=90 -jar 服务端核心.jar
复制代码
客户端:
  1. -Xss512K -XX:+AggressiveOpts -XX:+UseCompressedOops -XX:+UseCMSCompactAtFullCollection -XX:+UseFastAccessorMethods -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:CMSFullGCsBeforeCompaction=2 -XX:CMSInitiatingOccupancyFraction=70 -XX:-DisableExplicitGC -XX:TargetSurvivorRatio=90
复制代码
方法:
打开启动器在高级启动设置中把参数掐头去尾填进去就可以了


四.配置文件的优化(不可忽视)

server.properties
  1. #多核心运用,有效增加CPU使用率[请自己加到配置文件]
  2. useSMPAPI=true
  3. #难度[估计大部分人不会调整]
  4. difficulty=1
  5. #视距,默认值是10[加载多了就会卡]
  6. #推荐将这个值设置在5或者6,如果在线人数非常多可以设置为3<font color="#ff0000">【注意一定要和配置文件的spigot配置同步】否则无效</font>
  7. view-distance=5
  8. #关闭它并且查询下面的spigot数据的save-structure-info介绍[作用未知]
  9. generate-structures=false
复制代码


spigot.yml

  1. #这个不要改[没用]
  2. config-version: 7
  3. #提示语言
  4. messages:
  5. #这是白名单列表提示[自己改]
  6.   whitelist: 你没有服务器白名单!
  7. #如果打错指令,会显示这个,不再显示/help[自己改]
  8.   unknown-command: 请输入正确指令
  9. #服务器满人提示 [自己改]
  10.   server-full: 服务器满人了
  11. #服务器比客户端新[自己改]
  12.   outdated-client: Outdated client! Please use {}
  13. #服务器比客户端老[自己改]
  14.   outdated-server: Outdated server! I'm still on {}
  15. #服务器重启中提示[自己改]
  16.   restart: 服务器正在重启
  17. #统计数据
  18. stats:
  19.   disable-saving: false
  20.   forced-stats: {}
  21. #开服cmd面板显示[确定不要?]
  22. commands:
  23. #标签完成显示
  24.   tab-complete: true
  25. <font color="#0000ff">#玩家使用指令是否显示到cmd开服面板上[默认:true,关闭可以减少使用]
  26.   log: false</font>
  27. #基础设置
  28. settings:
  29.   fullMatchRate: 10
  30.   bungeecord: false
  31.   sample-count: 12
  32. #超时时间,请勿乱改.保持90为最佳
  33.   timeout-time: 90
  34.   restart-on-crash: true
  35. #蹦服后显示自动重启指令
  36.   restart-script: ./start.sh
  37.   netty-threads: -1
  38.   late-bind: false
  39.   player-shuffle: 0
  40. #世界设置
  41. world-settings:
  42.   default:
  43.     verbose: false
  44. <font color="#0000ff">#农作物生成速率[对性能影响较大,默认值是650,设置成350较好。最少建议150]
  45.     chunks-per-tick: 450</font>
  46. #1.7.5以上版本才有,保存玩家名字和UUID的缓存,如果mod服人数很多,将他设置为4000。如果是盗版服务器,可以设置为0,关闭这个功能
  47.     user-cache-size:5000
  48. #1.7.5以上版本才有,是否在服务器关闭/重启的时候保存用户缓存,不建议模组服的服务器开启
  49.     save-user-cache-on-stop-only:true
  50. #清除tick表
  51.     clear-tick-list: false
  52. <font color="#0000ff">#视距,默认值是10,这个参数是玩家的视距也就是加载的区块范围,默认是10个区块,加载更多的区块则需要更多的内存和运算能力。推荐将这个值设置在5或者6,如果在线人数非常多可以设置为3但是设置为1会看不到其他玩家
  53.     view-distance: 5</font>
  54. #地狱门是否允许传送地狱猪人等等
  55.     enable-zombie-pigmen-portal-spawns: true
  56. #掉落物清理时间
  57.     item-despawn-rate: 6000
  58. #箭头清理时间[比如烈焰人的粒子或者射出的弓箭等等]
  59.     arrow-despawn-rate: 600
  60. <font color="#0000ff">#掉落物、经验值的合并范围,建议把item设置为4.0,exp设置为6.0
  61.     merge-radius:
  62.       exp: 6.0
  63.       item: 4.0
  64. #随机的光照更新 设置为false可以提高不少性能
  65.     use-async-lighting: false</font>
  66. #僵尸夜晚是否主动来干村民   
  67.     zombie-aggressive-towards-villager: true
  68. <font color="#0000ff">#这个参数是设置实体的可视范围里活动,monsters: 32是在玩家附近32格范围内的怪物才会活跃
  69. #一般可以把monsters设置为20,animals设置为8,misc设置为2(misc主要是掉落物,设置2使掉落物几乎不卡服)
  70.     entity-activation-range:
  71.       animals: 8
  72.       monsters: 20
  73.       misc: 2</font>
  74. <font color="#0000ff">#如果你的服务器有大量的漏斗红石设备,设置更高会降低漏斗的运算速度,能够提高微微性能
  75.     ticks-per:
  76.       hopper-transfer: 8
  77.       hopper-check: 8</font>
  78. #服务端自带的反透视功能,俗称假矿。对性能影响较大
  79. #engine-mode为1则是隐藏矿物,engine-mode为2则是将非矿物也伪装成矿物,engine-mode设置为2的效果最好,但是会额外吃一定的性能和宽带,但是engine-mode设置为1无法防御矿追
  80.     anti-xray:
  81.       enabled: false
  82.       engine-mode: 1
  83. #隐藏的矿物物品ID,可以自行添加
  84.       hide-blocks:
  85.       - 14
  86.       - 15
  87.       - 16
  88.       - 21
  89.       - 48
  90.       - 49
  91.       - 54
  92.       - 56
  93.       - 73
  94.       - 74
  95.       - 82
  96.       - 129
  97.       - 130
  98. #替换为 什么物品[自行修改]
  99.       replace-blocks:
  100.       - 1
  101.       - 5
  102. #意思是每个数据封包里塞多少个区块,设置15比较合适,设置得过高会导致客户端崩溃或者掉线
  103.     max-bulk-chunks: 10
  104. #这个参数是客户端可视实体,适当的降低数值可以减少客户端的卡顿
  105.     entity-tracking-range:
  106.       players: 40
  107.       animals: 40
  108.       monsters: 40
  109.       misc: 25
  110.       other: 55
  111.     nerf-spawner-mobs: false
  112. <font color="#0000ff">#随机的光照更新,设置为true的话服务器会随机更新光照,并且在区块加载的第一个tick运算光照逻辑。设置为false可以提高不少性能
  113.     random-light-updates: false</font>
  114. <font color="#0000ff">#TNT爆炸范围,设置为20或者更低可以将TNT连锁爆炸降低
  115.     max-tnt-per-tick: 20</font>
  116. #怪物生成范围  默认4 [空岛因找不到刷怪事件而卡顿]
  117.     mob-spawn-range: 3
  118. #作物成长速度   
  119.     growth:
  120.       cactus-modifier: 100
  121.       cane-modifier: 100
  122.       melon-modifier: 100
  123.       mushroom-modifier: 100
  124.       pumpkin-modifier: 100
  125.       sapling-modifier: 100
  126.       wheat-modifier: 100
  127. <font color="#0000ff">#这一条很重要,这里讲的是服务器加载tiles和entity时间,默认为50,减少tile可以设置为10或者更低,tiles指一些箱子熔炉等等(注:EIO的玻璃,原版的熔炉,很占tiles)entity实体可以设置为20或者更低,对服务器TPS影响极大
  128.     max-tick-time:
  129.       tile: 8
  130.       entity: 18</font>
  131. #服务器的特殊区块,比如刷铁塔等,关闭这个并且关闭server配置中的generate-structures:false 关闭此设置
  132. #并且关服后手动删除每个世界(例如world、DIM1、DIM-1)下的data文件夹里的Fortress.dat、Mineshaft.dat、Stronghold.dat、Temple.dat、Village.dat等文件
  133.     save-structure-info: false
  134. <font color="#0000ff">#实体碰撞箱的阀值。建议设置为1或者0,可以减少密集卡服的问题
  135.     max-entity-collisions: 0</font><span style="background-color: rgb(255, 255, 255); text-align: center;">[/suo]</span>
复制代码
bukkit.yml

[suo]
  1. settings:
  2.   #是否允许末地[true是允许,false是关闭]
  3.   allow-end: false   
  4.   #超载警告提示
  5.   warn-on-overload: false
  6.   #权限文件
  7.   permissions-file: permissions.yml
  8.   #更新文件夹
  9.   update-folder: update
  10.   #ping分组限制[勿动]
  11.   ping-packet-limit: 100
  12.   #使用准确的登录位置
  13.   use-exact-login-location: false
  14.   #监控插件性能瓶颈
  15.   plugin-profiling: false
  16.   #链接节点[默认:4000,如果你的机房开启了内网加速,即玩家进入统一IP为127.0.0.1则将其设置为-1关闭此功能 如不是请勿动]
  17.   connection-throttle: 4000
  18.   #查询-插件
  19.   query-plugins: true
  20.   #默认,无需修改
  21.   deprecated-verbose: default
  22.   #关服时候显示什么[不再是Server closes]
  23.   shutdown-message: 服务器关闭或者重启
  24.   #实体生物限制生成[例如monsters: 70,在线人数只有10个人,则最多只能生成700个怪物实体]
  25. spawn-limits:
  26. #这一项是怪物[默认为70.可以设置成45—60]
  27.   monsters: 55
  28. #动物[修改为10左右比较合适]
  29.   animals: 10
  30. #水中动物[比如墨鱼设置成5比较合适]
  31.   water-animals: 3
  32. #蝙蝠[可以关闭这一项,设置为0]
  33.   ambient: 3
  34.   #区块回收[设置的太小会导致回收过于频繁而影响性能,设置的太大会导致需要回收的区块迟迟不回收使得内存占用过大]
  35.   #[load-threshold是指达到多少需要回收的区块的时候才进行回收。例如设置成300,只有当需要回收的区块到达300以上才进行回收]
  36.   #[合理的设置这个数值可以使得额外只多占用一丁点内存却使得区块回收的性能开销可以被无视。一般设置为300~600比较合适]
  37. chunk-gc:
  38.   enabled: true
  39.   period-in-ticks: 400
  40.   load-threshold: 500
  41.   #实体时间[20tick=1s]
  42. ticks-per:
  43. #动物生成一只要多久 400tick=20s
  44.   animal-spawns: 800
  45. #怪物生成一只要多久  1tick=0.05s[默认1 设置2-5会大幅度降低刷怪率 各位腐竹谨慎修改]【如果有怪物事件的降低他会增加TPS】
  46.   monster-spawns: 2
  47. #自动保存存档(地图、玩家数据等)的周期
  48. #如果你使用了定时保存的插件,例如Saveit、AutoSave等等,你可以将他设置为0,即关闭这个功能。这样可以减少服务器瞬卡发生的可能
  49.   autosave: 6000
  50. #世界生成[可以自定义主世界]
  51. #下面这一个是自定义世界,例如:你想将空岛世界[askyblock]弄为主世界,而不想用world,可以向下面这样输入,如果你想弄其他的就可以就可以将Askyblock改为你想要的世界名字
  52. worlds:
  53.   ASkyBlock:
  54.     generator: ASkyBlock
  55. #世界开启设置[true是允许,false是关闭]
  56. world-settings:
  57. #例如这里是末地和地狱生成,则false即可关闭,如果生成其他世界,如上操作即可关闭,记得世界文件夹里面删除,还有多世界相关插件【mv remove 世界名】
  58.   the_end:
  59.     enabled: false
  60.   nether:
  61.     enabled: false
复制代码

forge.cfg
  1.     B:removeErroringEntities=true  
  2.     B:removeErroringTileEntities=true
  3. #上面这两条全部改为true 这里配置介绍的是如果错误实体或者区块导致了蹦服,修改为true 不再重启而是 删掉错误实体或者方块,建议广大腐竹开启!!
  4. #文件位置 服务器目下的-config-forge.cfg 配置文件
复制代码



作者: lisansi123    时间: 2020-3-11 11:46
极致更新中





欢迎光临 最MC论坛 (http://www.zuimc.com/) Powered by Discuz! X3.2