While connected to a Minecraft server, I noticed the other applications on my brand new MacBook Pro were running incredibly slowly. The CPU and RAM usage were relatively low so I looked at the disk usage via fs_usage. To my amazement, I discovered that Minecraft was making almost 250 I/O requests per second to stats_{username}_unsent.old and stats_{username}_unsent.dat
I think there's some bug in Minecraft's I/O polling logic that's causing it to busy-wait for these files. Either way this is making it difficult to do anything else with Minecraft open and is really bad for the disk.
Hiya, I am also trying to source info on Minecraft and the hard disk I/O issues.
In my case I run a home-based bukkit server for my kids & their friends, and are constantly having issues with the hard drives failing. I know that my server specifications are not great, but in terms of RAM & CPU they are not currently creating the problem, so before I upgrade I want to get my head around this I/O issue.
After having the OS hard drive fail previously I had set up a triple HDD system (had a few lying around!) which is:
HDD C: Run-of-mill 40Gb SATA with OS (XP Pro)
HDD E. Run-of-mill 40Gb SATA for Windows swap & temp files
HDD F. Decent SSD running Bukkit
The idea was to get the intensive bukkit operations onto the SSD & isolated from the OS drive. The logic was moving the bukkit world to the ssd drive would not only improve performance but also protect the OS drive. I assumed the bulk of the load would be in the read-writes of user data and changes to the minecraft world data files.
But after having the OS drive beginning to die *again*, looking at XP performance monitor I can see that when the bukkit server is running there is still constant, intensive disk writes (though curiously not reads) to the C: drive - which basically stuffs these drives. Using the monitor I can directly relate the write load to turning on bukkit, however as the activity remains for several minutes *after* turning off bukkit I'm thinking this is probably the java.exe process.
So based on this experience I am wondering whether there is any benefit in using multiple drives (for Windows anyway) as I can't seem to get the load off the OS drive. Before using the SSD I ran the bukkit server in a ramdisk and still got HDD errors, so unless I can move the HDD-load the hardware solution is probably to try and use server-grade HDD.
Q1. Can bukkit/java disk-load be managed by sharing across HDD's?
The other option is to bite-the-bullet & run/learn Linux - but although I know it runs faster my main question is whether it will be easier on the hardware.
Q2. Is a linux server easier on hardware than windows based? (not a performance/speed question).
UPDATE: after reading my post I realised I hadn't even looked at the bukkit drive activity - duh! And of course there is significant write activity (again v.little read) on this drive once bukkit is launched.
What was interesting was that once everything was loaded etc., for every write spike on the bukkit drive there is a matching bigger write spike on the OS drive. Pretty well every time.
So from this I deduce that even though a separate drive for bukkit data is beneficial, this does not remove significant write activity on the OS drive, again I suspect from the java process running on the OS Drive.
So unless I can get the java write processes off the OS drive there doesn't seem to be any option but to significantly improve the OS drive hardware.
Note, even though the OS drive is set for write-caching this doesn't seem to have any effect when bukkit/java is running - however I know this is hardware dependent. I think linux automatically uses spare RAM for write caching (I think can also be done in windows) so perhaps this is a solution, as it seems the constant write activity is what is trashing the HDD.
Most folks upgrade to SSD's for speed {and heat), but in this case it is the constant write activity on the drives that would be my main concern. I've read that lots of write activity is also pretty hard on the SSD life, so any SSD recommendations appreciated.
Q3. SSD recommendations for heavy write activity utilisation.
My kids get very stressed when the server isn't running, so once I figure out the next set-up I will post my experiences, details and reasoning) on my website for the benefit of other parents like me!
Cheers.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
I think there's some bug in Minecraft's I/O polling logic that's causing it to busy-wait for these files. Either way this is making it difficult to do anything else with Minecraft open and is really bad for the disk.
Has anyone else been experiencing this?
In my case I run a home-based bukkit server for my kids & their friends, and are constantly having issues with the hard drives failing. I know that my server specifications are not great, but in terms of RAM & CPU they are not currently creating the problem, so before I upgrade I want to get my head around this I/O issue.
After having the OS hard drive fail previously I had set up a triple HDD system (had a few lying around!) which is:
HDD C: Run-of-mill 40Gb SATA with OS (XP Pro)
HDD E. Run-of-mill 40Gb SATA for Windows swap & temp files
HDD F. Decent SSD running Bukkit
The idea was to get the intensive bukkit operations onto the SSD & isolated from the OS drive. The logic was moving the bukkit world to the ssd drive would not only improve performance but also protect the OS drive. I assumed the bulk of the load would be in the read-writes of user data and changes to the minecraft world data files.
But after having the OS drive beginning to die *again*, looking at XP performance monitor I can see that when the bukkit server is running there is still constant, intensive disk writes (though curiously not reads) to the C: drive - which basically stuffs these drives. Using the monitor I can directly relate the write load to turning on bukkit, however as the activity remains for several minutes *after* turning off bukkit I'm thinking this is probably the java.exe process.
So based on this experience I am wondering whether there is any benefit in using multiple drives (for Windows anyway) as I can't seem to get the load off the OS drive. Before using the SSD I ran the bukkit server in a ramdisk and still got HDD errors, so unless I can move the HDD-load the hardware solution is probably to try and use server-grade HDD.
Q1. Can bukkit/java disk-load be managed by sharing across HDD's?
The other option is to bite-the-bullet & run/learn Linux - but although I know it runs faster my main question is whether it will be easier on the hardware.
Q2. Is a linux server easier on hardware than windows based? (not a performance/speed question).
Appreciate any thoughts.
What was interesting was that once everything was loaded etc., for every write spike on the bukkit drive there is a matching bigger write spike on the OS drive. Pretty well every time.
So from this I deduce that even though a separate drive for bukkit data is beneficial, this does not remove significant write activity on the OS drive, again I suspect from the java process running on the OS Drive.
So unless I can get the java write processes off the OS drive there doesn't seem to be any option but to significantly improve the OS drive hardware.
Note, even though the OS drive is set for write-caching this doesn't seem to have any effect when bukkit/java is running - however I know this is hardware dependent. I think linux automatically uses spare RAM for write caching (I think can also be done in windows) so perhaps this is a solution, as it seems the constant write activity is what is trashing the HDD.
Most folks upgrade to SSD's for speed {and heat), but in this case it is the constant write activity on the drives that would be my main concern. I've read that lots of write activity is also pretty hard on the SSD life, so any SSD recommendations appreciated.
Q3. SSD recommendations for heavy write activity utilisation.
My kids get very stressed when the server isn't running, so once I figure out the next set-up I will post my experiences, details and reasoning) on my website for the benefit of other parents like me!
Cheers.