AsyncWorldEdit - What performance you may expect

Discussion in 'Systems Administration' started by Weby, Mar 25, 2015.

  1. I proposed yesterday starting a thread with AWE benchmarks, so people would know what to expect according to the machine they have.

    Let's start here with my setup. For this test, I pasted a 8 mio blocks schematic

    Bear in mind that those settings are using the server very extensively and are causing massive lag spikes. They're the maximum I can get with the other plugins running alongside it. I hope you'll get better than me !

    Also, I don't know if you can handle more than 20k blocks per second, java being java, minecraft being minecraft. If you can, that's awesome, but don't get your hopes too high.

    [​IMG]

    Xeon [email protected] (12 core, 6400 bogomips, 12M Cache, SSE 4.2)
    64 GB 2000MHz

    swappiness down to zero
    kernel.shmmax and kernel.shmall=51539607552
    vm.nr_hugepages=24576 (2048k pages)

    Spigot installed in a ramdisk

    Interval: 20
    talk-interval: 10
    queue-max-size: 100000000
    physicsfreez: true
    blocks per interval : 20000
    time : -1
    no max jobs, no blocks hub, no plotme fix, no other group than default

    Spigot version git-Spigot-529ff99-7f52bd6 (32 versions behind)
    AsyncWorldEdit (duh, latest version)
    WorldEdit (duh, build #3369)
    WorldGuard (build #1589)
    BarAPI, Aliasez, NametagEdit, ColorSignz (named SignColorz on the bukkit page), actionbarAPI, PLib, Multiverse (core, latest dev build as of writing), TitleAPI, VoxelSniper, PEX, Vault, CommandBook, bChatManager HolographicDisplays, UberEnchant, WGRegionEvents, CraftBook, ArmorStandTools
    And 4 massive custom plugins for a Siege system, eating up 4GB only by being ran.


    And, as a matter of exhaustivity, the java flags used.

    Be aware that you shouldn't copy-paste this script as is, since they won't work in most of the other setups. They work for me after a long tinkering with it and that setup is perfect for my server. I just write it here as reference.

    ionice -c1 -n0 nice -n -10 java -d64 -server \
    -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC \
    -XX:+UseStringDeduplication \
    -XX:+UseGCOverheadLimit \
    -XX:parallelGCThreads=6 \
    -DJINTEGRA_NATIVE_MODE \
    -DJINTEGRA_COINIT_VALUE=0 \
    -Dsun.io.useCanonCaches=false \
    -XX:ThreadPriorityPolicy=42 \
    -XX:CompileThreshold=1500 \
    -XX:+TieredCompilation \
    -XX:TargetSurvivorRatio=90 \
    -XX:MaxTenuringThreshold=15 \
    -XX:+UseLargePages \
    -XX:+UseAdaptiveGCBoundary \
    -XX:+UseBiasedLocking \
    -Xverify:none \
    -XX:UseSSE=4 \
    -XX:+UseThreadPriorities \
    -Djava.net.preferIPv4Stack=true \
    -XX:+OptimizeStringConcat \
    -XX:+UseFastAccessorMethods \
    -Xrs \
    -Xmx44G -Xms128M \
    -XX:+AggressiveOpts \
    -jar spigot.jar nogui
     
    #1 Weby, Mar 25, 2015
    Last edited: Mar 26, 2015
    • Like Like x 1
  2. PhanaticD

    Patron

    my config is similar (at least in block amount), 3000 blocks with 3 tick interval, so no server spiking but a bit more brutal on FPS
     
  3. Dang, I will try and test my machine and post back!
     
  4. I win :D[​IMG]
     
    • Funny Funny x 3
  5. @robotballs maybe you should post what you were doing to have such an amount of blocks, what is your config and what were your settings with AWE. Otherwise your post isn't really relevant.
     
  6. You guys should provide a benchmark schematic or a set of commands that you should call to test the performance. You also should set up some boundaries for example paste the schematic at 0 0 0 and use flatworld.
     
    • Like Like x 2
  7. Will do.
     
  8. alright. I will
     
  9. [​IMG]
    Current speed, replacing all stone from level 1 to 16 with 0.75%diamondore,99.25%stone in a 4000x4000 area.
     
  10. My entry for the competition ;) The server, client and the recorder ware running on the same machine therefore I might be able to get more BBP.

     
    • Like Like x 1
  11. That's a record.
    But seriously.. What could be wrong? I mean 1bps? What should I check?

    Untitled.jpg
     
  12. You are changing blocks over void/high over land that causes loads of light updates. Because of that placement of 1 block takes much longer then in regular WE. AWE has a max block limit per run and max time limit per run. If placing of 1 block takes longer then regular your BPS is lower then regular. What you can do?
    1. If you have AWE premium try using the chunk API (/chunk)
    2. If you can live with TPS drop you can increase the allowed block placing time (I would not suggest setting it to -1, disabled!)
     
  13. About Light updates, is there a way to disable them while copying and only do a light update afterwards?
     
  14. In AWE premium you can do it using the chunk commands.
     
  15. Would it be possible to implement it for small worldedits, without using the chunk API ?

    I know relighting takes ages, even in MCEdit it took me 2 days to relight a world (7 million chunks, actually not that slow), and depending on the server it just may cause huge hangs, but... Would that be possible or not ?

    I haven't seen any events that are triggered in the Spigot API (and that seems about normal), and I don't even know where to start when looking in NMS...
     
  16. The light recalculation is done internally there is not API for it. I'll check if its possible to inject this to WE for now you can try fast mode.
     
  17. Hey everyone

    I have a DIY custom PC with an i7-4790K OC'd to 4.8GHz and 10GB of RAM OC'd to 1800MHz and I'm trying to get AsyncWorldEdit to generate blocks quicker. No matter what I set in my config file, under Windows task manager the CPU usage will not go any higher than 20%. I've running the latest Java 8 64 bit and my startup script is forced to run the server under 64 bit of Java (I have both 32 & 64 bit versions of Java installed). The only Java parameters I use are the min and max RAM limits, but I have also tried removing these and let the server use as much RAM as it wants and still no change in RAM usage or block placing speed. Could someone shed some light on this please.

    Many thanks

    Will
     
  18. PhanaticD

    Patron

    windows does percentage for overall, so if you have 8 cores, it could max 1 core and still say 15%
     
  19. I'll open CPU-Z and post back in a sec what the clock speeds are doing.

    UPDATE
    All 4 cores in CPU-Z are clocking at 4.2GHz average.
     
    #19 willowen100, Mar 5, 2016
    Last edited: Mar 5, 2016
  20. Provide your awe config and I'll give you some tips what to change.

    Regarding the cpu, if you have only 1 job running awe can max out 2 cores max (1 core for each job and 1 for main thread) but that's only a theory I never actually tested it.

    You could also set priority to real-time for the java process running Spigot