黄总
使用的是Towny插件,用MySQL储存数据,使用/town unclaim all指令后服务端奔溃,大概是一次撤销500个区块,算是大面积操作。
后台报错在下面,MYSQL使用的默认设置,可能是线程什么的不够用,请大佬看看。


[10:44:38 ERROR]: The server has stopped responding!
[10:44:38 ERROR]:               java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[10:44:38 ERROR]:               java.lang.Thread.run(Thread.java:748)
[10:44:38 ERROR]: ------------------------------
[10:44:38 ERROR]: Current Thread: Thread-6
[10:44:38 ERROR]:       PID: 24 | Suspended: false | Native: true | State: RUNNABLE
[10:44:38 ERROR]:       Stack:
[10:44:38 ERROR]:               sun.nio.fs.LinuxWatchService.poll(Native Method)
[10:44:38 ERROR]:               sun.nio.fs.LinuxWatchService.access$600(LinuxWatchService.java:47)
[10:44:38 ERROR]:               sun.nio.fs.LinuxWatchService$Poller.run(LinuxWatchService.java:314)
[10:44:38 ERROR]:               java.lang.Thread.run(Thread.java:748)
[10:44:38 ERROR]: ------------------------------
[10:44:38 ERROR]: Current Thread: Netty Epoll Server IO #0
[10:44:38 ERROR]:       PID: 23 | Suspended: false | Native: true | State: RUNNABLE
[10:44:38 ERROR]:       Stack:
[10:44:38 ERROR]:               io.netty.channel.epoll.Native.epollWait0(Native Method)
[10:44:38 ERROR]:               io.netty.channel.epoll.Native.epollWait(Native.java:114)
[10:44:38 ERROR]:               io.netty.channel.epoll.EpollEventLoop.epollWait(EpollEventLoop.java:235)
[10:44:38 ERROR]:               io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:252)
[10:44:38 ERROR]:               io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886)
[10:44:38 ERROR]:               java.lang.Thread.run(Thread.java:748)
[10:44:38 ERROR]: ------------------------------
[10:44:38 ERROR]: Current Thread: Spigot Metrics Thread
[10:44:38 ERROR]:       PID: 22 | Suspended: false | Native: false | State: TIMED_WAITING
[10:44:38 ERROR]:       Stack:
[10:44:38 ERROR]:               java.lang.Object.wait(Native Method)
[10:44:38 ERROR]:               java.util.TimerThread.mainLoop(Timer.java:552)
[10:44:38 ERROR]:               java.util.TimerThread.run(Timer.java:505)
[10:44:38 ERROR]: ------------------------------
[10:44:38 ERROR]: Current Thread: Spigot Watchdog Thread
[10:44:38 ERROR]:       PID: 21 | Suspended: false | Native: false | State: RUNNABLE
[10:44:38 ERROR]:       Stack:
[10:44:38 ERROR]:               sun.management.ThreadImpl.dumpThreads0(Native Method)
[10:44:38 ERROR]:               sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:454)
[10:44:38 ERROR]:               org.spigotmc.WatchdogThread.run(WatchdogThread.java:76)
[10:44:38 ERROR]: ------------------------------
[10:44:38 ERROR]: Current Thread: Server console handler
[10:44:38 ERROR]:       PID: 19 | Suspended: false | Native: true | State: RUNNABLE
[10:44:38 ERROR]:       Thread is waiting on monitor(s):
[10:44:38 ERROR]:               Locked on:java.io.BufferedInputStream.read(BufferedInputStream.java:265)
[10:44:38 ERROR]:               Locked on:org.bukkit.craftbukkit.libs.jline.internal.NonBlockingInputStream.read(NonBlockingInputStream.java:169)
[10:44:38 ERROR]:               Locked on:org.bukkit.craftbukkit.libs.jline.internal.InputStreamReader.read(InputStreamReader.java:261)
[10:44:38 ERROR]:               Locked on:org.bukkit.craftbukkit.libs.jline.internal.InputStreamReader.read(InputStreamReader.java:198)
[10:44:38 ERROR]:       Stack:
[10:44:38 ERROR]:               java.io.FileInputStream.readBytes(Native Method)
[10:44:38 ERROR]:               java.io.FileInputStream.read(FileInputStream.java:255)
[10:44:38 ERROR]:               java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
[10:44:38 ERROR]:               java.io.BufferedInputStream.read(BufferedInputStream.java:265)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.libs.jline.internal.NonBlockingInputStream.read(NonBlockingInputStream.java:169)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.libs.jline.internal.NonBlockingInputStream.read(NonBlockingInputStream.java:137)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.libs.jline.internal.NonBlockingInputStream.read(NonBlockingInputStream.java:246)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.libs.jline.internal.InputStreamReader.read(InputStreamReader.java:261)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.libs.jline.internal.InputStreamReader.read(InputStreamReader.java:198)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.libs.jline.console.ConsoleReader.readCharacter(ConsoleReader.java:2145)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.libs.jline.console.ConsoleReader.readLine(ConsoleReader.java:2349)
[10:44:38 ERROR]:               net.minecraft.server.v1_12_R1.DedicatedServer$2.run(DedicatedServer.java:85)
[10:44:38 ERROR]: ------------------------------
[10:44:38 ERROR]: Current Thread: Thread-4
[10:44:38 ERROR]:       PID: 20 | Suspended: false | Native: false | State: RUNNABLE
[10:44:38 ERROR]:       Stack:
[10:44:38 ERROR]:               java.lang.UNIXProcess.forkAndExec(Native Method)
[10:44:38 ERROR]:               java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
[10:44:38 ERROR]:               java.lang.ProcessImpl.start(ProcessImpl.java:134)
[10:44:38 ERROR]:               java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
[10:44:38 ERROR]:               java.lang.Runtime.exec(Runtime.java:620)
[10:44:38 ERROR]:               java.lang.Runtime.exec(Runtime.java:485)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.libs.jline.internal.TerminalLineSettings.exec(TerminalLineSettings.java:196)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.libs.jline.internal.TerminalLineSettings.exec(TerminalLineSettings.java:186)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.libs.jline.internal.TerminalLineSettings.stty(TerminalLineSettings.java:181)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.libs.jline.internal.TerminalLineSettings.get(TerminalLineSettings.java:74)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.libs.jline.internal.TerminalLineSettings.getProperty(TerminalLineSettings.java:95)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.libs.jline.UnixTerminal.getWidth(UnixTerminal.java:76)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.libs.jline.console.ConsoleReader.drawBuffer(ConsoleReader.java:879)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.libs.jline.console.ConsoleReader.drawBuffer(ConsoleReader.java:898)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.libs.jline.console.ConsoleReader.drawLine(ConsoleReader.java:608)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.v1_12_R1.util.TerminalConsoleWriterThread.run(TerminalConsoleWriterThread.java:40)
[10:44:38 ERROR]:               java.lang.Thread.run(Thread.java:748)
[10:44:38 ERROR]: ------------------------------
[10:44:38 ERROR]: Current Thread: DestroyJavaVM
[10:44:38 ERROR]:       PID: 18 | Suspended: false | Native: false | State: RUNNABLE
[10:44:38 ERROR]:       Stack:
[10:44:38 ERROR]: ------------------------------
[10:44:38 ERROR]: Current Thread: Server thread
[10:44:38 ERROR]:       PID: 16 | Suspended: false | Native: false | State: RUNNABLE
[10:44:38 ERROR]:       Stack:
[10:44:38 ERROR]:               java.io.FileInputStream.read0(Native Method)
[10:44:38 ERROR]:               java.io.FileInputStream.read(FileInputStream.java:207)
[10:44:38 ERROR]:               java.io.DataInputStream.readInt(DataInputStream.java:389)
[10:44:38 ERROR]:               com.palmergames.bukkit.towny.db.TownyFlatFileSource.loadPlotData(TownyFlatFileSource.java:2331)
[10:44:38 ERROR]:               com.palmergames.bukkit.towny.regen.TownyRegenAPI.getPlotChunkSnapshot(TownyRegenAPI.java:190)
[10:44:38 ERROR]:               com.palmergames.bukkit.towny.db.TownyDatabaseHandler.removeTownBlock(TownyDatabaseHandler.java:341)
[10:44:38 ERROR]:               com.palmergames.bukkit.towny.db.TownyDatabaseHandler.removeTownBlocks(TownyDatabaseHandler.java:356)
[10:44:38 ERROR]:               com.palmergames.bukkit.towny.tasks.TownClaim$2.run(TownClaim.java:231)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftTask.run(CraftTask.java:71)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:353)
[10:44:38 ERROR]:               net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:739)
[10:44:38 ERROR]:               net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406)
[10:44:38 ERROR]:               net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679)
[10:44:38 ERROR]:               net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577)
[10:44:38 ERROR]:               java.lang.Thread.run(Thread.java:748)
[10:44:38 ERROR]: ------------------------------
[10:44:38 ERROR]: Current Thread: Server Infinisleeper
[10:44:38 ERROR]:       PID: 17 | Suspended: false | Native: false | State: TIMED_WAITING
[10:44:38 ERROR]:       Stack:
[10:44:38 ERROR]:               java.lang.Thread.sleep(Native Method)
[10:44:38 ERROR]:               net.minecraft.server.v1_12_R1.DedicatedServer$1.run(DedicatedServer.java:60)
[10:44:38 ERROR]: ------------------------------
[10:44:38 ERROR]: Current Thread: NonBlockingInputStreamThread
[10:44:38 ERROR]:       PID: 14 | Suspended: false | Native: false | State: WAITING
[10:44:38 ERROR]:       Stack:
[10:44:38 ERROR]:               java.lang.Object.wait(Native Method)
[10:44:38 ERROR]:               org.bukkit.craftbukkit.libs.jline.internal.NonBlockingInputStream.run(NonBlockingInputStream.java:278)
[10:44:38 ERROR]:               java.lang.Thread.run(Thread.java:748)
[10:44:38 ERROR]: ------------------------------
[10:44:38 ERROR]: Current Thread: Snooper Timer
[10:44:38 ERROR]:       PID: 12 | Suspended: false | Native: false | State: TIMED_WAITING
[10:44:38 ERROR]:       Stack:
[10:44:38 ERROR]:               java.lang.Object.wait(Native Method)
[10:44:38 ERROR]:               java.util.TimerThread.mainLoop(Timer.java:552)
[10:44:38 ERROR]:               java.util.TimerThread.run(Timer.java:505)
[10:44:38 ERROR]: ------------------------------
[10:44:38 ERROR]: Current Thread: process reaper
[10:44:38 ERROR]:       PID: 8 | Suspended: false | Native: false | State: TIMED_WAITING
[10:44:38 ERROR]:       Stack:
[10:44:38 ERROR]:               sun.misc.Unsafe.park(Native Method)
[10:44:38 ERROR]:               java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
[10:44:38 ERROR]:               java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
[10:44:38 ERROR]:               java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
[10:44:38 ERROR]:               java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:941)
[10:44:38 ERROR]:               java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1073)
[10:44:38 ERROR]:               java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
[10:44:38 ERROR]:               java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[10:44:38 ERROR]:               java.lang.Thread.run(Thread.java:748)
[10:44:38 ERROR]: ------------------------------
[10:44:38 ERROR]: Current Thread: Signal Dispatcher
[10:44:38 ERROR]:       PID: 4 | Suspended: false | Native: false | State: RUNNABLE
[10:44:38 ERROR]:       Stack:
[10:44:38 ERROR]: ------------------------------
[10:44:38 ERROR]: Current Thread: Finalizer
[10:44:38 ERROR]:       PID: 3 | Suspended: false | Native: false | State: WAITING
[10:44:38 ERROR]:       Stack:
[10:44:38 ERROR]:               java.lang.Object.wait(Native Method)
[10:44:38 ERROR]:               java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
[10:44:38 ERROR]:               java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
[10:44:38 ERROR]:               java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)
[10:44:38 ERROR]: ------------------------------
[10:44:38 ERROR]: Current Thread: Reference Handler
[10:44:38 ERROR]:       PID: 2 | Suspended: false | Native: false | State: WAITING
[10:44:38 ERROR]:       Stack:
[10:44:38 ERROR]:               java.lang.Object.wait(Native Method)
[10:44:38 ERROR]:               java.lang.Object.wait(Object.java:502)
[10:44:38 ERROR]:               java.lang.ref.Reference.tryHandlePending(Reference.java:191)
[10:44:38 ERROR]:               java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)
[10:44:38 ERROR]: ------------------------------

以上是完整报错内容


[email protected]
就是线程的问题,你一次操作的数据太大了。貌似有部分线程操作死锁。
没用过这个插件,不推荐大数量区块同时操作,很容易崩溃,除非服务器性能牛13。
我以前玩创世神的时候也是这样的情况,后来改用地图编辑器才处理好。

黄总
[email protected] 发表于 2018-1-28 12:50
就是线程的问题,你一次操作的数据太大了。貌似有部分线程操作死锁。
没用过这个插件,不推荐大数量区块同 ...

我使用了MySQL储存才出现这种情况的,MySQL用的是默认设置,请问MySQL要怎么设置才能提升线程使用效率?机子的配置应该是够的。

[email protected]
黄总 发表于 2018-1-28 17:17
我使用了MySQL储存才出现这种情况的,MySQL用的是默认设置,请问MySQL要怎么设置才能提升线程使用效率? ...

这个还是要找大佬回答。我对数据库这方面的操作不是很熟悉。
而且,这里插件的操作都是写好的方式对数据库进行操作什么的,这里对数据优化不好弄。
可能换数据库是一个好的方法。这方面我的确没啥好的建议。