I have a virtual server with 4 CPU cores. Minecraft server uses 100% of one core, even if no-one is connected. And it doesn't get better – I tried waiting 5 days, still 100%.
I thought the reason might be that I am using a very old world. So I tried creating a new world, but no luck, server still uses 100% of one core.
I tried launching strace on server process – looks like server constantly checks for some unexistent files. Yet I don't know if that's the reason / don't know if it's intended behavior.
strace output:
root@server: ~ # pgrep -a -f java
26400 /usr/bin/java -Xmx1536M -Xms1024M -jar minecraft_server.jar nogui
root@server: ~ # strace -efile -tt -f -p 26400
Process 26400 attached with 32 threads
[pid 26429] 20:36:02.201427 stat("./world/DIM-1/data", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
[pid 26429] 20:36:02.201556 stat("./world/DIM-1/data/chunks.dat", 0x7f7abc6bd770) = -1 ENOENT (No such file or directory)
[pid 26429] 20:36:02.201713 stat("./world/DIM1/data", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
[pid 26429] 20:36:02.201770 stat("./world/DIM1/data/chunks.dat", 0x7f7abc6bd770) = -1 ENOENT (No such file or directory)
[pid 26429] 20:36:02.202414 stat("./world/data", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
[pid 26429] 20:36:02.202470 stat("./world/data/chunks.dat", 0x7f7abc6bd770) = -1 ENOENT (No such file or directory)
[pid 26429] 20:36:02.251430 stat("./world/DIM-1/data", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
[pid 26429] 20:36:02.251532 stat("./world/DIM-1/data/chunks.dat", 0x7f7abc6bd770) = -1 ENOENT (No such file or directory)
[pid 26429] 20:36:02.251662 stat("./world/DIM1/data", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
[pid 26429] 20:36:02.251713 stat("./world/DIM1/data/chunks.dat", 0x7f7abc6bd770) = -1 ENOENT (No such file or directory)
[pid 26429] 20:36:02.252359 stat("./world/data", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
[pid 26429] 20:36:02.252409 stat("./world/data/chunks.dat", 0x7f7abc6bd770) = -1 ENOENT (No such file or directory)
[pid 26429] 20:36:02.301435 stat("./world/DIM-1/data", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
[pid 26429] 20:36:02.301530 stat("./world/DIM-1/data/chunks.dat", 0x7f7abc6bd770) = -1 ENOENT (No such file or directory)
[pid 26429] 20:36:02.301657 stat("./world/DIM1/data", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
[pid 26429] 20:36:02.301711 stat("./world/DIM1/data/chunks.dat", 0x7f7abc6bd770) = -1 ENOENT (No such file or directory)
[pid 26429] 20:36:02.302326 stat("./world/data", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
[pid 26429] 20:36:02.302378 stat("./world/data/chunks.dat", 0x7f7abc6bd770) = -1 ENOENT (No such file or directory)
[pid 26429] 20:36:02.351408 stat("./world/DIM-1/data", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
[pid 26429] 20:36:02.351501 stat("./world/DIM-1/data/chunks.dat", 0x7f7abc6bd770) = -1 ENOENT (No such file or directory)
[pid 26429] 20:36:02.351627 stat("./world/DIM1/data", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
Related issues
Comments

my bad, have tried searching "100%" but didn't found MC-138071
This is MC-138071.