Increasing Server Performance ;)

Discussion in 'Bukkit Help' started by SupaYoshi, Apr 29, 2012.

Thread Status:
Not open for further replies.
  1. Offline

    SupaYoshi

    Hey everyone, I am here because I want to continue the server performance and the game experience for my players. However once I reach 130 players, United Factions seems to start to lag ;)
    It is not block lag, nor chunk loading lag, it is people moving lag, like the players run and the other clients (players) see them move in 1 second 5 blocks then. And then they stand still for a few seconds.


    To start with these are my server specifications:
    Intel Core i7 2600, @3.4 Ghz
    32 GB of ram DDR3
    3 TB HDD RAID
    100 MBITS network connection (fiber)

    Software:
    Debian 6.0 Squeeze
    Java 1.6
    Bukkit 1.2.5-R1.2 Beta #2167
    RAMDISK 12500 MB for the minecraft server
    I use this ramdisk script: http://www.minecraftwiki.net/wiki/Tutorials/Ramdisk_enabled_server
    Everything including Bukkit is in the RAM, so there is no I/O lag imho.
    The server gets 17GB ram in the ramdisk script ;) so java can addresss 17 gb. No worries its not 512mb.

    User location:
    The lag usually starts when the American players, (USA) players login around the evening here ;)
    The player amount increases above 130 then, and the amount of players from the USA outnumbers the EUROPE players then, however the server is in Europe. Could this be the cause? Tell me ;) I will listen.

    Plugins:
    Every plugin here is needed, except BKCommonLib and Nolaggchunks, however these improve the chunk loading and are okay imho. If you think different be open to share it.

    Another thing is Essentials I heard that Commandbook gives you a better performance. I am willing to try this, but please note that this brings a dramaticly big change to the server and I am not quite sure if Essentials is really that bad, because I almost use EVERY single feature that great plugin has to offer. About orebfuscator I also really need that, because there are just to many xray people out there ;)

    BattleWarp, BKCommonLib, Buycraft, ChestShop, Citizens, CleanroomGenerator,
    CombatTag, dynmap, Essentials, EssentialsChat, EssentialsProtect, EssentialsSpawn,
    Factions, GroupManager, LotteryPlus, mcbans, mcMMO, Minequery, Multiverse-Core, Multiverse-Portals, NoCheatPlus, NoLaggChunks, NoPortals,
    ObsidianDestroyer, ObsidianFlow, OpenInv, Orbfuscator, Permissions, pvparena, pvpstats, SimpleRegionMarket SpamGuard, UnderWaterTNT, Vault, Votifier, WorldBorder,
    WorldEdit, WorldGuard.

    MY question to you guys, and please only REPLY IF YOU know something about this ;) is:
    What would you do to improve the performance on this server with more then 130 users online?
     
  2. Offline

    ImminentFate

    OK one question. You say your internet connection is 100Mbps. What are the actual specs? I mean, fibre can easily handle that speed, but what is your actual Upload/Download Speed that your ISP gives you? For example you can have 10Mbps Download and only 2Mbps Upload.
     
  3. Offline

    SupaYoshi

    It really is 100 mbps UP AND DOWN, it is not limited, its a dedicated server. 1 GBit connected at 100 MBit
     
  4. Offline

    Nathan C

    Dynmap is CPU heavy as heck! Does it normally render when people load chunks or place blocks? If so, I recommend changing that to manual map updating. This plugin will cripple your CPU. Orbfuscator also uses a bit of CPU.
    Finally, you only have a SINGLE 3 TB HDD? I've had a config similar to this before with the world running out of the RAMdisk and the other plugins, etc running from the single HDD. What would happen, is that there was so many joins, leaves and writes/reads to the HDD, that it was slowing down and causing overall server lag. When I moved the server plugin files and configs/folders to my RAMdisk, that lag disappeared. I would recommend upgrading to an SSD or at least move your server files to your RAMdisk................anything to get some weight off that poor little HDD's shoulders.

    Also why do you have EssentialsProtect, EssentialsSpawn? EssentialsProtect does the exact same stuff as WorldEdit, if I am not mistaken.

    Other than that, the best you can do is remove dynmap or change it so that it updates manually once every night. You could also overclock your processor a bit, to give you a performance boost. In any case though, 130 is really pushing the limits of Minecraft servers and your CPU is the bottleneck.
     
  5. Offline

    SupaYoshi

    Listen if you reply.... please read good.... I have a 3TB RAID setup, and I have a Ramdisk. Please READ BEFORE YOU REPLY. I exactly have this ;) As again, I need EssentialsProtect and Spawn ;)
    The dynmap idea is a good idea however, i will do that ;)

    i7 2600, average cpu usage with 130 players on: 25% according to iostat in linux.
    Please do not reply if you don't read ;)
     
  6. Offline

    B3NW

  7. Offline

    SupaYoshi

    What is this garbage collection thing you are talking about I am reading this, looks useful.

    This is my JAVA rule:
    INVOCATION="java -Xmx14500M -Xms4048M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalPacing -XX:+AggressiveOpts -jar $SERVICE nogui"

    Edit; This garbage thing seems to look like, it saves RAM, that is not a problem i have around 10 GB free ram for Minecraft even with 130 users on ;) It doesn't use the 14500 MB even then ;)
     
  8. Offline

    B3NW

    It's not saving ram, it's how it processes the heap. The way java is designed is unique around its memory system, it makes it so that you do not have to say where you want certain bits of memory to be allocated. The downside to this is that java has to use CPU power to process this data to check whether it needs to be cleaned out or not, "traversing the heap". This describes how the heap should be traversed.

    By default the bukkit servers heap will be traversed in one big go quite often, which causes lag spikes. The alternative method is shorter more frequent traversing. You can also set the affinity of the garbage collection to make use of any extra CPU power you may have.

    Also, please don't be smug about your server specs, it's quite annoying.
     
  9. Offline

    ashley


    this is a simillar one
    Echo OFF
    SET BINDIR=%~dp0
    CD /D "%BINDIR%"
    java -server -Xmn4G -Xms8G -Xmx16G -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:parallelGCThreads=5 -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:MaxGCPauseMillis=500 -XX:SurvivorRatio=16 -XX:TargetSurvivorRatio=90 -jar craftbukkit.jar
    PAUSE
     
Thread Status:
Not open for further replies.

Share This Page