Skip to content

Huge performance delta between Papermc & Vanilla Minecraft on OpenBSD #12522

@meerleo

Description

@meerleo

Spark Profile

https://spark.lucko.me/tOqv5BuZpF

Description of issue

I've been running vanilla minecraft on OpenBSD 7.7-current. In a new folder, I created a papermc server. There is a significant performance loss on papermc compared to the vanilla jar.

/usr/local/jdk-21/bin/java -Xms10240M -Xmx10240M -jar _server.jar_

Plugin and Datapack List

Server Plugins (0):

There are 3 data pack(s) enabled: [vanilla (built-in)], [file/bukkit (world)], [paper (built-in)]
There are 3 data pack(s) enabled: [vanilla (built-in)], [file/bukkit (world)], [paper (built-in)]

Server config files

These are all default settings

settings:
  allow-end: true
  warn-on-overload: true
  permissions-file: permissions.yml
  update-folder: update
  plugin-profiling: false
  connection-throttle: 4000
  query-plugins: true
  deprecated-verbose: default
  shutdown-message: Server closed
  minimum-api: none
  use-map-color-cache: true
spawn-limits:
  monsters: 70
  animals: 10
  water-animals: 5
  water-ambient: 20
  water-underground-creature: 5
  axolotls: 5
  ambient: 15
chunk-gc:
  period-in-ticks: 600
ticks-per:
  animal-spawns: 400
  monster-spawns: 1
  water-spawns: 1
  water-ambient-spawns: 1
  water-underground-creature-spawns: 1
  axolotl-spawns: 1
  ambient-spawns: 1
  autosave: 6000
aliases: now-in-commands.yml
# This is the main configuration file for Spigot.
# As you can see, there's tons to configure. Some options may impact gameplay, so use
# with caution, and make sure you know what each option does before configuring.
# For a reference for any variable inside this file, check out the Spigot wiki at
# http://www.spigotmc.org/wiki/spigot-configuration/
#
# If you need help with the configuration or have any questions related to Spigot,
# join us at the Discord or drop by our forums and leave a post.
#
# Discord: https://www.spigotmc.org/go/discord
# Forums: http://www.spigotmc.org/

settings:
  netty-threads: 4
  moved-too-quickly-multiplier: 10.0
  bungeecord: false
  sample-count: 12
  save-user-cache-on-stop-only: false
  timeout-time: 60
  restart-on-crash: true
  restart-script: ./start.sh
  attribute:
    maxAbsorption:
      max: 2048.0
    maxHealth:
      max: 1024.0
    movementSpeed:
      max: 1024.0
    attackDamage:
      max: 2048.0
  log-villager-deaths: true
  log-named-deaths: true
  user-cache-size: 1000
  player-shuffle: 0
  moved-wrongly-threshold: 0.0625
  debug: false
advancements:
  disable-saving: false
  disabled:
  - minecraft:story/disabled
world-settings:
  default:
    below-zero-generation-in-existing-chunks: true
    dragon-death-sound-radius: 0
    wither-spawn-sound-radius: 0
    unload-frozen-chunks: false
    growth:
      cactus-modifier: 100
      cane-modifier: 100
      melon-modifier: 100
      mushroom-modifier: 100
      pumpkin-modifier: 100
      sapling-modifier: 100
      beetroot-modifier: 100
      carrot-modifier: 100
      potato-modifier: 100
      torchflower-modifier: 100
      wheat-modifier: 100
      netherwart-modifier: 100
      vine-modifier: 100
      cocoa-modifier: 100
      bamboo-modifier: 100
      sweetberry-modifier: 100
      kelp-modifier: 100
      twistingvines-modifier: 100
      weepingvines-modifier: 100
      cavevines-modifier: 100
      glowberry-modifier: 100
      pitcherplant-modifier: 100
    arrow-despawn-rate: 1200
    trident-despawn-rate: 1200
    hanging-tick-frequency: 100
    item-despawn-rate: 6000
    end-portal-sound-radius: 0
    nerf-spawner-mobs: false
    max-tnt-per-tick: 100
    entity-activation-range:
      animals: 32
      monsters: 32
      raiders: 64
      misc: 16
      water: 16
      villagers: 32
      flying-monsters: 32
      wake-up-inactive:
        animals-max-per-tick: 4
        animals-every: 1200
        animals-for: 100
        monsters-max-per-tick: 8
        monsters-every: 400
        monsters-for: 100
        villagers-max-per-tick: 4
        villagers-every: 600
        villagers-for: 100
        flying-monsters-max-per-tick: 8
        flying-monsters-every: 200
        flying-monsters-for: 100
      villagers-work-immunity-after: 100
      villagers-work-immunity-for: 20
      villagers-active-for-panic: true
      tick-inactive-villagers: true
      ignore-spectators: false
    seed-village: 10387312
    seed-desert: 14357617
    seed-igloo: 14357618
    seed-jungle: 14357619
    seed-swamp: 14357620
    seed-monument: 10387313
    seed-shipwreck: 165745295
    seed-ocean: 14357621
    seed-outpost: 165745296
    seed-endcity: 10387313
    seed-slime: 987234911
    seed-nether: 30084232
    seed-mansion: 10387319
    seed-fossil: 14357921
    seed-portal: 34222645
    seed-ancientcity: 20083232
    seed-trailruins: 83469867
    seed-trialchambers: 94251327
    seed-buriedtreasure: 10387320
    seed-mineshaft: default
    seed-stronghold: default
    ticks-per:
      hopper-transfer: 8
      hopper-check: 1
    hopper-amount: 1
    hopper-can-load-chunks: false
    merge-radius:
      item: 0.5
      exp: -1.0
    max-tick-time:
      tile: 50
      entity: 50
    mob-spawn-range: 8
    enable-zombie-pigmen-portal-spawns: true
    thunder-chance: 100000
    entity-tracking-range:
      players: 128
      animals: 96
      monsters: 96
      misc: 96
      display: 128
      other: 64
    hunger:
      jump-walk-exhaustion: 0.05
      jump-sprint-exhaustion: 0.2
      combat-exhaustion: 0.1
      regen-exhaustion: 6.0
      swim-multiplier: 0.01
      sprint-multiplier: 0.1
      other-multiplier: 0.0
    simulation-distance: default
    view-distance: default
    zombie-aggressive-towards-villager: true
    verbose: false
players:
  disable-saving: false
messages:
  restart: Server is restarting
  whitelist: You are not whitelisted on this server!
  unknown-command: Unknown command. Type "/help" for help.
  server-full: The server is full!
  outdated-client: Outdated client! Please use {0}
  outdated-server: Outdated server! I'm still on {0}
config-version: 12
stats:
  disable-saving: false
  forced-stats: {}
commands:
  tab-complete: 0
  send-namespaced: true
  replace-commands:
  - setblock
  - summon
  - testforblock
  - tellraw
  silent-commandblock-console: false
  log: true
  spam-exclusions:
  - /skill
  enable-spam-exclusions: false
# This is the global configuration file for Paper.
# As you can see, there's a lot to configure. Some options may impact gameplay, so use
# with caution, and make sure you know what each option does before configuring.
# 
# If you need help with the configuration or have any questions related to Paper,
# join us in our Discord or check the docs page.
# 
# The world configuration options have been moved inside
# their respective world folder. The files are named paper-world.yml
# 
# Docs: https://docs.papermc.io/
# Discord: https://discord.gg/papermc
# Website: https://papermc.io/

_version: 29
anticheat:
  obfuscation:
    items:
      all-models:
        also-obfuscate: []
        dont-obfuscate:
        - minecraft:lodestone_tracker
        sanitize-count: true
      enable-item-obfuscation: false
      model-overrides:
        minecraft:elytra:
          also-obfuscate: []
          dont-obfuscate:
          - minecraft:damage
          sanitize-count: true
block-updates:
  disable-chorus-plant-updates: false
  disable-mushroom-block-updates: false
  disable-noteblock-updates: false
  disable-tripwire-updates: false
chunk-loading-advanced:
  auto-config-send-distance: true
  player-max-concurrent-chunk-generates: 0
  player-max-concurrent-chunk-loads: 0
chunk-loading-basic:
  player-max-chunk-generate-rate: -1.0
  player-max-chunk-load-rate: 100.0
  player-max-chunk-send-rate: 75.0
chunk-system:
  gen-parallelism: default
  io-threads: -1
  worker-threads: -1
collisions:
  enable-player-collisions: true
  send-full-pos-for-hard-colliding-entities: true
commands:
  ride-command-allow-player-as-vehicle: false
  suggest-player-names-when-null-tab-completions: true
  time-command-affects-all-worlds: false
console:
  enable-brigadier-completions: true
  enable-brigadier-highlighting: true
  has-all-permissions: false
item-validation:
  book:
    author: 8192
    page: 16384
    title: 8192
  book-size:
    page-max: 2560
    total-multiplier: 0.98
  display-name: 8192
  lore-line: 8192
  resolve-selectors-in-books: false
logging:
  deobfuscate-stacktraces: true
messages:
  kick:
    authentication-servers-down: <lang:multiplayer.disconnect.authservers_down>
    connection-throttle: Connection throttled! Please wait before reconnecting.
    flying-player: <lang:multiplayer.disconnect.flying>
    flying-vehicle: <lang:multiplayer.disconnect.flying>
  no-permission: <red>I'm sorry, but you do not have permission to perform this command.
    Please contact the server administrators if you believe that this is in error.
  use-display-name-in-quit-message: false
misc:
  chat-threads:
    chat-executor-core-size: -1
    chat-executor-max-size: -1
  client-interaction-leniency-distance: default
  compression-level: default
  fix-entity-position-desync: true
  load-permissions-yml-before-plugins: true
  max-joins-per-tick: 5
  region-file-cache-size: 256
  strict-advancement-dimension-check: false
  use-alternative-luck-formula: false
  use-dimension-type-for-custom-spawners: false
packet-limiter:
  all-packets:
    action: KICK
    interval: 7.0
    max-packet-rate: 500.0
  kick-message: <red><lang:disconnect.exceeded_packet_rate>
  overrides:
    ServerboundPlaceRecipePacket:
      action: DROP
      interval: 4.0
      max-packet-rate: 5.0
player-auto-save:
  max-per-tick: -1
  rate: -1
proxies:
  bungee-cord:
    online-mode: true
  proxy-protocol: false
  velocity:
    enabled: false
    online-mode: true
    secret: ''
scoreboards:
  save-empty-scoreboard-teams: true
  track-plugin-scoreboards: false
spam-limiter:
  incoming-packet-threshold: 300
  recipe-spam-increment: 1
  recipe-spam-limit: 20
  tab-spam-increment: 1
  tab-spam-limit: 500
spark:
  enable-immediately: false
  enabled: true
unsupported-settings:
  allow-headless-pistons: false
  allow-permanent-block-break-exploits: false
  allow-piston-duplication: false
  allow-unsafe-end-portal-teleportation: false
  compression-format: ZLIB
  perform-username-validation: true
  simplify-remote-item-matching: false
  skip-tripwire-hook-placement-validation: false
  skip-vanilla-damage-tick-when-shield-blocked: false
  update-equipment-on-player-actions: true
watchdog:
  early-warning-delay: 10000
  early-warning-every: 5000

Paper version

This server is running Paper version 1.21.4-227-ver/1.21.4@7675321 (2025-04-28T19:07:04Z) (Implementing API version 1.21.4-R0.1-SNAPSHOT)
You are running the latest version

Other

A stack trace from while it was running:

[19:22:14 ERROR]: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH  - 1.21.4-227-7675321 (MC: 1.21.4) ---
[19:22:15 ERROR]: The server has not responded for 10 seconds! Creating thread dump
[19:22:15 ERROR]: ------------------------------
[19:22:15 ERROR]: Server thread dump (Look for plugins here before reporting to Paper!):
[19:22:15 ERROR]: ------------------------------
[19:22:15 ERROR]: Current Thread: Server thread
[19:22:16 ERROR]:       PID: 47 | Suspended: false | Native: false | State: RUNNABLE
[19:22:16 ERROR]:       Stack:
[19:22:16 ERROR]:               org.bukkit.craftbukkit.block.data.CraftBlockData.<clinit>(CraftBlockData.java:443)
[19:22:16 ERROR]:               net.minecraft.world.level.redstone.NeighborUpdater.executeUpdate(NeighborUpdater.java:55)
[19:22:16 ERROR]:               net.minecraft.world.level.redstone.CollectingNeighborUpdater$MultiNeighborUpdate.runNext(CollectingNeighborUpdater.java:136)
[19:22:16 ERROR]:               net.minecraft.world.level.redstone.CollectingNeighborUpdater.runUpdates(CollectingNeighborUpdater.java:79)
[19:22:16 ERROR]:               net.minecraft.world.level.redstone.CollectingNeighborUpdater.addAndRun(CollectingNeighborUpdater.java:64)
[19:22:16 ERROR]:               net.minecraft.world.level.redstone.CollectingNeighborUpdater.updateNeighborsAtExceptFromFacing(CollectingNeighborUpdater.java:46)
[19:22:16 ERROR]:               net.minecraft.server.level.ServerLevel.updateNeighborsAt(ServerLevel.java:1751)
[19:22:16 ERROR]:               net.minecraft.server.level.ServerLevel.updateNeighborsAt(ServerLevel.java:1745)
[19:22:16 ERROR]:               net.minecraft.server.level.ServerLevel.blockUpdated(ServerLevel.java:2370)
[19:22:16 ERROR]:               net.minecraft.world.level.Level.notifyAndUpdatePhysics(Level.java:1209)
[19:22:16 ERROR]:               net.minecraft.world.level.Level.setBlock(Level.java:1181)
[19:22:16 ERROR]:               net.minecraft.world.level.Level.setBlock(Level.java:1096)
[19:22:16 ERROR]:               net.minecraft.world.level.material.FlowingFluid.spreadTo(FlowingFluid.java:331)
[19:22:16 ERROR]:               net.minecraft.world.level.material.LavaFluid.spreadTo(LavaFluid.java:225)
[19:22:16 ERROR]:               net.minecraft.world.level.material.FlowingFluid.spreadToSides(FlowingFluid.java:211)
[19:22:16 ERROR]:               net.minecraft.world.level.material.FlowingFluid.spread(FlowingFluid.java:182)
[19:22:16 ERROR]:               net.minecraft.world.level.material.FlowingFluid.tick(FlowingFluid.java:507)
[19:22:16 ERROR]:               net.minecraft.world.level.material.FluidState.tick(FluidState.java:97)
[19:22:16 ERROR]:               net.minecraft.server.level.ServerLevel.tickFluid(ServerLevel.java:1219)
[19:22:16 ERROR]:               net.minecraft.server.level.ServerLevel$$Lambda/0x000004e9194127f0.accept(Unknown Source)
[19:22:16 ERROR]:               net.minecraft.world.ticks.LevelTicks.runCollectedTicks(LevelTicks.java:189)
[19:22:16 ERROR]:               net.minecraft.world.ticks.LevelTicks.tick(LevelTicks.java:88)
[19:22:16 ERROR]:               net.minecraft.server.level.ServerLevel.tick(ServerLevel.java:766)
[19:22:16 ERROR]:               net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1724)
[19:22:16 ERROR]:               net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1529)
[19:22:16 ERROR]:               net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1251)
[19:22:16 ERROR]:               net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:310)
[19:22:16 ERROR]:               net.minecraft.server.MinecraftServer$$Lambda/0x000004e918d6d188.run(Unknown Source)
[19:22:16 ERROR]:               java.base@21.0.6/java.lang.Thread.runWith(Thread.java:1596)
[19:22:16 ERROR]:               java.base@21.0.6/java.lang.Thread.run(Thread.java:1583)
...

Metadata

Metadata

Assignees

No one assigned

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions