mojira.dev
MC-41874

Extremely Slow Server Chunk Ticking -- Unknown Cause

Server chunk ticking is extremely slow, especially when loading new chunks. This slow chunk ticking (around 1-3 ticks per second) occurs even with normal exploration. When in singleplayer, this can cause the "ticking" to use an abnormally large amount of CPU.

Seed 1, render distance 8, travel from spawn to x=2000, v1.7.2: 19.94 ticks/sec
Seed 1, render distance 8, travel from spawn to x=2000, v1.7.4: 11.03 ticks/sec

I suspect it is a side-effect of MC-12964 , in part, as well as the recent changes made to the rendering and network code in 1.7.
This is a Minecraft forum thread discussing the same effects: http://www.minecraftforum.net/topic/2218534-graphics-quality-and-performance-in-164-172-and-174/

Related: MC-43395

Attachments

Comments 11

Your Java version is out of date! Please update your Java to the latest version (1.7.0_45): http://www.java.com/en/download/.

  • When using a 32-bit browser on a 64-bit operating system the automatic version detection will only show the 32-bit version of Java, the 64-bit version needs to be downloaded manually: http://www.java.com/en/download/manual.jsp.


Please report if the issue persists with the latest Java version.

I will give you the benefit of the doubt and assume that this is an automated response. In this case, the bug persists ONLY with version 1.7.3. Version 1.7.2 has no problems in an identical environment. (see profile-results-1.7.2.txt)

In this case, the bug persists ONLY with version 1.7.3. Version 1.7.2 has no problems in an identical environment.

He meant update to the latest Java version and see if you can reproduce, not the latest Minecraft version. Just so you know. 😉
Anyway, by the look of things you've made a mistake with the allocated memory. Can you allocate any more (Edit Profile>JVM Arguments>change argument to the original 1 Gig or disable JVM arguments) or is this not possible because of your computer specs? It may be as simple as this, or I could be wrong.

I understood perfectly. I meant that the memory leak happens on 1.7.3, but not 1.7.2, so it cannot be the java, as 1.7.3 has no additional java requirements. And yes, I can allocate more ram, but I have a feeling that it won't make any difference.

I allocated 1G to Minecraft, and the lag spikes went down, but the dev console still spams errors everywhere, and chunk loading is still slow. In fact, increasing the ram made the problem WORSE. (2.17 ticks/sec as opposed to about 5 ticks/sec with 500M)

It's a requirement you have your java up to date before we proceed, sorry.

1 more comments

With most recent 64-bit java, server chunk ticking is still around 13 tps, in 1.7.2 was 20. However, this will need more testing. Actually, do expect the report to be updated. Seems many people are experiencing this.

I've been having a substantial lag problem since I updated my vanilla server from 1.7.2 to 1.7.4. I'm using the 64-bit openjdk 7 jvm with CMS for my garbage collector and 2.5 gb heap.

At first I thought the problem only happened when 4-5 people were logged in at a time, but it doesn't matter so much. what does matter is how long the instance had been running and how far the heap has expanded.

Unfortunately I've only been reviewing the GC times since the problem started happening. what I have observed is a constant minor gc every few seconds for about two thousandths of a second but as the heap expands to the Xmx setting it takes significantly longer in the hundredths of a second.... sometimes more.

Restarting the service helps for 12-36 hours.

Let me know what other information could be helpful.

Before I moved GC logs to its own file, I was able to gleam this from the console's standard out after the issue had been observed:

2013-12-16 16:54:10,553 WARN [server0]: Can't keep up! Did the system time change, or is the server overloaded? Running 7696ms behind, skipping 153 tick(s)
[GC 1979499K->1835083K(2604416K), 0.0286580 secs]
[GC 1971403K->1833500K(2604416K), 0.0196050 secs]
[GC 1969820K->1836337K(2604416K), 0.0204280 secs]
2013-12-16 16:54:26,196 WARN [server0]: Can't keep up! Did the system time change, or is the server overloaded? Running 5460ms behind, skipping 109 tick(s)
[GC 1972657K->1835088K(2604416K), 0.0216870 secs]
[GC 1971408K->1839286K(2604416K), 0.0254290 secs]
[GC 1975606K->1843388K(2604416K), 0.0289380 secs]
[GC 1979708K->1891431K(2604416K), 0.1430030 secs]
2013-12-16 16:54:43,226 WARN [server0]: Can't keep up! Did the system time change, or is the server overloaded? Running 6222ms behind, skipping 124 tick(s)
[GC 2027751K->1906185K(2604416K), 0.0606420 secs]
[GC 2042506K->1897370K(2604416K), 0.0245430 secs]
[GC 2033690K->1896936K(2604416K), 0.0238370 secs]
2013-12-16 16:54:59,839 WARN [server0]: Can't keep up! Did the system time change, or is the server overloaded? Running 5803ms behind, skipping 116 tick(s)
[GC 2033256K->1900197K(2604416K), 0.0298560 secs]
[GC 2036517K->1899627K(2604416K), 0.0339490 secs]
[GC 2035947K->1901086K(2604416K), 0.0346990 secs]
2013-12-16 16:55:14,918 WARN [server0]: Can't keep up! Did the system time change, or is the server overloaded? Running 5295ms behind, skipping 105 tick(s)
[GC 2037406K->1903222K(2604416K), 0.0368690 secs]
[GC 2039542K->1918848K(2604416K), 0.0429730 secs]
[GC 2055168K->1963249K(2604416K), 0.0681000 secs]
[GC 2099569K->1979768K(2604416K), 0.0318620 secs]

Here is how we look shortly after the service was restarted:

2013-12-16T17:06:41.670+0000: 2.586: [GC 34176K->5096K(123776K), 0.0126660 secs]
2013-12-16T17:06:42.452+0000: 3.368: [GC 39272K->15050K(123776K), 0.0482260 secs]
2013-12-16T17:06:42.578+0000: 3.493: [GC 49226K->56896K(123776K), 0.1089240 secs]
2013-12-16T17:06:42.687+0000: 3.602: [GC 57469K(123776K), 0.0062070 secs]
2013-12-16T17:06:42.777+0000: 3.692: [GC 91072K->93277K(128768K), 0.1311230 secs]
2013-12-16T17:06:43.328+0000: 4.244: [GC 127453K->120743K(156224K), 0.0868910 secs]
2013-12-16T17:06:43.613+0000: 4.529: [GC 154919K->132860K(168320K), 0.0196110 secs]
2013-12-16T17:06:43.633+0000: 4.549: [GC 133513K(168320K), 0.0062470 secs]
2013-12-16T17:06:43.811+0000: 4.726: [GC 166161K->142054K(251336K), 0.0221200 secs]
2013-12-16T17:06:43.833+0000: 4.749: [GC 142725K(251336K), 0.0014100 secs]
2013-12-16T17:06:43.965+0000: 4.881: [GC 176230K->153956K(251336K), 0.0153910 secs]
2013-12-16T17:06:44.071+0000: 4.986: [GC 155974K(251336K), 0.0014620 secs]
2013-12-16T17:07:06.177+0000: 27.093: [GC 185162K->156267K(283004K), 0.0189160 secs]
2013-12-16T17:07:06.360+0000: 27.276: [GC 190443K->167460K(283004K), 0.0220990 secs]
2013-12-16T17:07:06.509+0000: 27.424: [GC 201636K->180087K(283004K), 0.0188000 secs]
2013-12-16T17:07:06.657+0000: 27.573: [GC 214263K->189685K(283004K), 0.0137700 secs]
2013-12-16T17:07:07.134+0000: 28.049: [GC 223861K->199684K(283004K), 0.0135040 secs]
2013-12-16T17:07:08.079+0000: 28.994: [GC 233860K->203110K(283004K), 0.0076930 secs]
2013-12-16T17:07:09.773+0000: 30.688: [GC 237286K->201733K(283004K), 0.0037100 secs]
2013-12-16T17:07:11.449+0000: 32.365: [GC 235909K->203326K(283004K), 0.0040140 secs]
2013-12-16T17:07:14.406+0000: 35.322: [GC 237502K->204060K(283004K), 0.0072080 secs]
2013-12-16T17:07:18.097+0000: 39.012: [GC 238236K->204551K(283004K), 0.0039480 secs]
2013-12-16T17:07:22.447+0000: 43.363: [GC 238727K->206192K(283004K), 0.0056700 secs]
2013-12-16T17:07:26.810+0000: 47.726: [GC 240368K->204933K(283004K), 0.0059880 secs]
2013-12-16T17:07:29.956+0000: 50.872: [GC 239109K->208049K(283004K), 0.0127380 secs]

The Can't keep up! messages are very consistent and correspond to the observed lag.

We are running a stock Debian 7 (wheezy) server with vanilla MC 1.7.4. The stock java version in this environment is:

java version "1.7.0_25"
OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1~deb7u1)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

This was not an issue in 1.7.2.

Perhaps duplicate of MC-42088 ?

I think that 42088 is an effect. However, if I am correct and this is caused by MC-12964 , then the chunk ticking is actually too fast, and it is clogging the server, especially with 32-bit java. (but even with 64-bit the ticks per second are cut in half)

Christie N

(Unassigned)

Unconfirmed

Minecraft 1.7.3, Minecraft 1.7.4

Retrieved