For the last week, I've been hosting a naked vanilla server [No mod loaders, pure vanilla] and everything has been going smoothly except for the fact that my server crashes sporadically. Sometimes it will run for 2 hours and start crashing every 5 minutes after startup, and sometimes it will run for 12 hours without crashing at all.
It always says "Connection lost. Server Closed"
Here is what my logs say
---- Minecraft Crash Report ---- // I let you down. Sorry Time: 1/30/15 12:38 PM Description: Watching Server java.lang.Error at java.lang.Object.clone(Native Method) at ej.values(SourceFile:14) at aqr.a(SourceFile:2076) at aqr.c(SourceFile:2101) at aqr.x(SourceFile:2048) at bff.e(SourceFile:1158) at bff.n(SourceFile:1091) at bff.b(SourceFile:913) at qu.h(SourceFile:332) at qu.c(SourceFile:202) at net.minecraft.server.MinecraftServer.A(SourceFile:600) at pp.A(SourceFile:299) at net.minecraft.server.MinecraftServer.z(SourceFile:532) at net.minecraft.server.MinecraftServer.run(SourceFile:448) at java.lang.Thread.run(Unknown Source) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at java.lang.Object.clone(Native Method) at ej.values(SourceFile:14) at aqr.a(SourceFile:2076) at aqr.c(SourceFile:2101) at aqr.x(SourceFile:2048) at bff.e(SourceFile:1158) at bff.n(SourceFile:1091) at bff.b(SourceFile:913) at qu.h(SourceFile:332) at qu.c(SourceFile:202) at net.minecraft.server.MinecraftServer.A(SourceFile:600) at pp.A(SourceFile:299) at net.minecraft.server.MinecraftServer.z(SourceFile:532) -- Thread Dump -- Details: Threads: "Netty Server IO #1" Id=27 RUNNABLE at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source) at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source) at sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source) at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source) - locked io.netty.channel.nio.SelectedSelectionKeySet@1230d96 - locked java.util.Collections$UnmodifiableSet@ed9823 - locked sun.nio.ch.WindowsSelectorImpl@d62439 at sun.nio.ch.SelectorImpl.select(Unknown Source) at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:622) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:310) ... "Server Watchdog" Id=39 RUNNABLE at sun.management.ThreadImpl.dumpThreads0(Native Method) at sun.management.ThreadImpl.dumpAllThreads(Unknown Source) at pu.run(SourceFile:43) at java.lang.Thread.run(Unknown Source) "Netty Server IO #0" Id=26 RUNNABLE at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source) at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source) at sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source) at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source) - locked io.netty.channel.nio.SelectedSelectionKeySet@1deb7b0 - locked java.util.Collections$UnmodifiableSet@633870 - locked sun.nio.ch.WindowsSelectorImpl@d05dde at sun.nio.ch.SelectorImpl.select(Unknown Source) at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:622) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:310) ... "D3D Screen Updater" Id=24 TIMED_WAITING on java.lang.Object@1c2a378 at java.lang.Object.wait(Native Method) - waiting on java.lang.Object@1c2a378 at sun.java2d.d3d.D3DScreenUpdateManager.run(Unknown Source) at java.lang.Thread.run(Unknown Source) "DestroyJavaVM" Id=22 RUNNABLE "Server thread" Id=20 RUNNABLE at java.lang.Object.clone(Native Method) at ej.values(SourceFile:14) at aqr.a(SourceFile:2076) at aqr.c(SourceFile:2101) at aqr.x(SourceFile:2048) at bff.e(SourceFile:1158) at bff.n(SourceFile:1091) at bff.b(SourceFile:913) ... "TimerQueue" Id=18 TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@199fee2 at sun.misc.Unsafe.park(Native Method) - waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@199fee2 at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source) at java.util.concurrent.DelayQueue.take(Unknown Source) at javax.swing.TimerQueue.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Number of locked synchronizers = 1 - java.util.concurrent.locks.ReentrantLock$NonfairSync@17a32c0 "Thread-4" Id=17 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@12cd563 at sun.misc.Unsafe.park(Native Method) - waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@12cd563 at java.util.concurrent.locks.LockSupport.park(Unknown Source) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source) at com.mojang.util.QueueLogAppender.getNextLogEvent(QueueLogAppender.java:77) at qb.run(SourceFile:114) at java.lang.Thread.run(Unknown Source) "AWT-EventQueue-0" Id=16 RUNNABLE at java.awt.Container.countComponents(Unknown Source) at java.awt.Container.getComponentCount(Unknown Source) at javax.swing.JViewport.getView(Unknown Source) at javax.swing.JViewport.flushViewDirtyRegion(Unknown Source) at javax.swing.JViewport.setViewPosition(Unknown Source) at javax.swing.plaf.basic.BasicScrollPaneUI$Handler.vsbStateChanged(Unknown Source) at javax.swing.plaf.basic.BasicScrollPaneUI$Handler.stateChanged(Unknown Source) at javax.swing.DefaultBoundedRangeModel.fireStateChanged(Unknown Source) ... "AWT-Windows" Id=14 RUNNABLE (in native) at sun.awt.windows.WToolkit.eventLoop(Native Method) at sun.awt.windows.WToolkit.run(Unknown Source) at java.lang.Thread.run(Unknown Source) "AWT-Shutdown" Id=13 WAITING on java.lang.Object@6d5d56 at java.lang.Object.wait(Native Method) - waiting on java.lang.Object@6d5d56 at java.lang.Object.wait(Object.java:503) at sun.awt.AWTAutoShutdown.run(Unknown Source) at java.lang.Thread.run(Unknown Source) "Java2D Disposer" Id=12 WAITING on java.lang.ref.ReferenceQueue$Lock@af7e5 at java.lang.Object.wait(Native Method) - waiting on java.lang.ref.ReferenceQueue$Lock@af7e5 at java.lang.ref.ReferenceQueue.remove(Unknown Source) at java.lang.ref.ReferenceQueue.remove(Unknown Source) at sun.java2d.Disposer.run(Unknown Source) at java.lang.Thread.run(Unknown Source) "Server Infinisleeper" Id=11 TIMED_WAITING at java.lang.Thread.sleep(Native Method) at pq.run(SourceFile:65) "Snooper Timer" Id=10 TIMED_WAITING on java.util.TaskQueue@18ecd8 at java.lang.Object.wait(Native Method) - waiting on java.util.TaskQueue@18ecd8 at java.util.TimerThread.mainLoop(Unknown Source) at java.util.TimerThread.run(Unknown Source) "Attach Listener" Id=5 RUNNABLE "Signal Dispatcher" Id=4 RUNNABLE "Finalizer" Id=3 WAITING on java.lang.ref.ReferenceQueue$Lock@659995 at java.lang.Object.wait(Native Method) - waiting on java.lang.ref.ReferenceQueue$Lock@659995 at java.lang.ref.ReferenceQueue.remove(Unknown Source) at java.lang.ref.ReferenceQueue.remove(Unknown Source) at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source) "Reference Handler" Id=2 WAITING on java.lang.ref.Reference$Lock@4610af at java.lang.Object.wait(Native Method) - waiting on java.lang.ref.Reference$Lock@4610af at java.lang.Object.wait(Object.java:503) at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source) Stacktrace: at pu.run(SourceFile:59) at java.lang.Thread.run(Unknown Source) -- System Details -- Details: Minecraft Version: 1.8.1 Operating System: Windows 7 (x86) version 6.1 Java Version: 1.7.0_55, Oracle Corporation Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation Memory: 116492080 bytes (111 MB) / 259522560 bytes (247 MB) up to 259522560 bytes (247 MB) JVM Flags: 0 total; IntCache: cache: 0, tcache: 0, allocated: 12, tallocated: 94 Profiler Position: N/A (disabled) Player Count: 1 / 20; [qx['Blockinlick'/977, l='world', x=465.30, y=66.00, z=-12.59]] Is Modded: Unknown (can't tell) Type: Dedicated Server (map_server.txt)
You might want to consider switching to a hosting company. Sounds like your running out of RAM. You can either upgrade your ram or try out a hosting company. If you decide to try out using a hosting company send me a message! You can email me at [email protected] or skype at jaydenw99. I should be able to hook you up with some great plans!
Then I dont know. You may have to add in some donation ranks or donation's. Them are the only two things I can think of. How Much RAM do you currently have?
I host it from... my computer? In Ohio? Not sure how that's relevant.
Specifications? What specifics? can you be more specific on what needs to be more specific?
My internet speed is pretty fast. Not sure what it is exactly, but TWC says it's 30 MBPS
I'm running it on Windows 7 on a 2012 model HP PC running AMD graphics.
Not sure what other seemingly irrelevant information is needed. I posted the error report, isn't that supposed to tell you exactly what happened?
Error reports help, but specifications help more. Where it is hosted from IS relevant because if your hosting from your computer, chances are you can't support it. We need information like:
CPU
RAM
Clock Speed
Download AND Upload speeds.
That's the basics of what we would need in order to help you.
-Processing speed is 3.3 GHZ
-My PC has 10 gigs of RAM, but I think the server console says it runs with 1 gig.
-Don't know what Clock Speed is or how to find it
-Idk about download speed, but I'm running Time Warner's Extreme speed broadband, which says it is 30mbps.
Donations won't do anything for me. My server is a private one for local IRL friends. There's currently only 2 of them playing and maybe only couple more that will join in later on. There's no money to be made there and I wouldn't milk my friends like that either.
-Processing speed is 3.3 GHZ
-My PC has 10 gigs of RAM, but I think the server console says it runs with 1 gig.
-Don't know what Clock Speed is or how to find it
-Idk about download speed, but I'm running Time Warner's Extreme speed broadband, which says it is 30mbps.
Donations won't do anything for me. My server is a private one for local IRL friends. There's currently only 2 of them playing and maybe only couple more that will join in later on. There's no money to be made there and I wouldn't milk my friends like that either.
You gave me the clock / processing speed. But to see your speed, use https://speedtest.net.
Time Warner has the fastest internet in my region with 5 tiers. Mine is 30mbps and the fastest is 50mbps
I surely doubt that my internet speed is the issue, but if it is, then I'll just deal with the crashes, because I'm not paying $30 more a month for the fastest.
Time Warner has the fastest internet in my region with 5 tiers. Mine is 30mbps and the fastest is 50mbps
I surely doubt that my internet speed is the issue, but if it is, then I'll just deal with the crashes, because I'm not paying $30 more a month for the fastest.
You can get a server hosted by a company for much less if your just needing a 1GB server. To get started you can either look in the other and main Minecraft hosting forums and/or post your hosting request. Also if your just having a high internet just because of the server you can probably downgrade the internet and use the saving to rent a quality server from a hosting company.
Okay then try renting one at 1.5GB-2GB if your already using up the entire 1GB and that shouldn't be a problem even to get one of that for $20 or even less depending where you rent it from.
Okay then try renting one at 1.5GB-2GB if your already using up the entire 1GB and that shouldn't be a problem even to get one of that for $20 or even less depending where you rent it from.
I'm not paying money for a Minecraft server. I'll just deal with the crashes. It's not worth it.
I'm not paying money for a Minecraft server. I'll just deal with the crashes. It's not worth it.
Even after downgrading your internet? As I suggested if your just having high internet speed just to keep this server going then you could probably "redirect" the money to rent the server instead of paying for the internet.
It always says "Connection lost. Server Closed"
Here is what my logs say
---- Minecraft Crash Report ---- // I let you down. Sorry Time: 1/30/15 12:38 PM Description: Watching Server java.lang.Error at java.lang.Object.clone(Native Method) at ej.values(SourceFile:14) at aqr.a(SourceFile:2076) at aqr.c(SourceFile:2101) at aqr.x(SourceFile:2048) at bff.e(SourceFile:1158) at bff.n(SourceFile:1091) at bff.b(SourceFile:913) at qu.h(SourceFile:332) at qu.c(SourceFile:202) at net.minecraft.server.MinecraftServer.A(SourceFile:600) at pp.A(SourceFile:299) at net.minecraft.server.MinecraftServer.z(SourceFile:532) at net.minecraft.server.MinecraftServer.run(SourceFile:448) at java.lang.Thread.run(Unknown Source) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at java.lang.Object.clone(Native Method) at ej.values(SourceFile:14) at aqr.a(SourceFile:2076) at aqr.c(SourceFile:2101) at aqr.x(SourceFile:2048) at bff.e(SourceFile:1158) at bff.n(SourceFile:1091) at bff.b(SourceFile:913) at qu.h(SourceFile:332) at qu.c(SourceFile:202) at net.minecraft.server.MinecraftServer.A(SourceFile:600) at pp.A(SourceFile:299) at net.minecraft.server.MinecraftServer.z(SourceFile:532) -- Thread Dump -- Details: Threads: "Netty Server IO #1" Id=27 RUNNABLE at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source) at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source) at sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source) at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source) - locked io.netty.channel.nio.SelectedSelectionKeySet@1230d96 - locked java.util.Collections$UnmodifiableSet@ed9823 - locked sun.nio.ch.WindowsSelectorImpl@d62439 at sun.nio.ch.SelectorImpl.select(Unknown Source) at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:622) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:310) ... "Server Watchdog" Id=39 RUNNABLE at sun.management.ThreadImpl.dumpThreads0(Native Method) at sun.management.ThreadImpl.dumpAllThreads(Unknown Source) at pu.run(SourceFile:43) at java.lang.Thread.run(Unknown Source) "Netty Server IO #0" Id=26 RUNNABLE at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source) at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source) at sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source) at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source) - locked io.netty.channel.nio.SelectedSelectionKeySet@1deb7b0 - locked java.util.Collections$UnmodifiableSet@633870 - locked sun.nio.ch.WindowsSelectorImpl@d05dde at sun.nio.ch.SelectorImpl.select(Unknown Source) at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:622) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:310) ... "D3D Screen Updater" Id=24 TIMED_WAITING on java.lang.Object@1c2a378 at java.lang.Object.wait(Native Method) - waiting on java.lang.Object@1c2a378 at sun.java2d.d3d.D3DScreenUpdateManager.run(Unknown Source) at java.lang.Thread.run(Unknown Source) "DestroyJavaVM" Id=22 RUNNABLE "Server thread" Id=20 RUNNABLE at java.lang.Object.clone(Native Method) at ej.values(SourceFile:14) at aqr.a(SourceFile:2076) at aqr.c(SourceFile:2101) at aqr.x(SourceFile:2048) at bff.e(SourceFile:1158) at bff.n(SourceFile:1091) at bff.b(SourceFile:913) ... "TimerQueue" Id=18 TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@199fee2 at sun.misc.Unsafe.park(Native Method) - waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@199fee2 at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source) at java.util.concurrent.DelayQueue.take(Unknown Source) at javax.swing.TimerQueue.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Number of locked synchronizers = 1 - java.util.concurrent.locks.ReentrantLock$NonfairSync@17a32c0 "Thread-4" Id=17 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@12cd563 at sun.misc.Unsafe.park(Native Method) - waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@12cd563 at java.util.concurrent.locks.LockSupport.park(Unknown Source) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source) at com.mojang.util.QueueLogAppender.getNextLogEvent(QueueLogAppender.java:77) at qb.run(SourceFile:114) at java.lang.Thread.run(Unknown Source) "AWT-EventQueue-0" Id=16 RUNNABLE at java.awt.Container.countComponents(Unknown Source) at java.awt.Container.getComponentCount(Unknown Source) at javax.swing.JViewport.getView(Unknown Source) at javax.swing.JViewport.flushViewDirtyRegion(Unknown Source) at javax.swing.JViewport.setViewPosition(Unknown Source) at javax.swing.plaf.basic.BasicScrollPaneUI$Handler.vsbStateChanged(Unknown Source) at javax.swing.plaf.basic.BasicScrollPaneUI$Handler.stateChanged(Unknown Source) at javax.swing.DefaultBoundedRangeModel.fireStateChanged(Unknown Source) ... "AWT-Windows" Id=14 RUNNABLE (in native) at sun.awt.windows.WToolkit.eventLoop(Native Method) at sun.awt.windows.WToolkit.run(Unknown Source) at java.lang.Thread.run(Unknown Source) "AWT-Shutdown" Id=13 WAITING on java.lang.Object@6d5d56 at java.lang.Object.wait(Native Method) - waiting on java.lang.Object@6d5d56 at java.lang.Object.wait(Object.java:503) at sun.awt.AWTAutoShutdown.run(Unknown Source) at java.lang.Thread.run(Unknown Source) "Java2D Disposer" Id=12 WAITING on java.lang.ref.ReferenceQueue$Lock@af7e5 at java.lang.Object.wait(Native Method) - waiting on java.lang.ref.ReferenceQueue$Lock@af7e5 at java.lang.ref.ReferenceQueue.remove(Unknown Source) at java.lang.ref.ReferenceQueue.remove(Unknown Source) at sun.java2d.Disposer.run(Unknown Source) at java.lang.Thread.run(Unknown Source) "Server Infinisleeper" Id=11 TIMED_WAITING at java.lang.Thread.sleep(Native Method) at pq.run(SourceFile:65) "Snooper Timer" Id=10 TIMED_WAITING on java.util.TaskQueue@18ecd8 at java.lang.Object.wait(Native Method) - waiting on java.util.TaskQueue@18ecd8 at java.util.TimerThread.mainLoop(Unknown Source) at java.util.TimerThread.run(Unknown Source) "Attach Listener" Id=5 RUNNABLE "Signal Dispatcher" Id=4 RUNNABLE "Finalizer" Id=3 WAITING on java.lang.ref.ReferenceQueue$Lock@659995 at java.lang.Object.wait(Native Method) - waiting on java.lang.ref.ReferenceQueue$Lock@659995 at java.lang.ref.ReferenceQueue.remove(Unknown Source) at java.lang.ref.ReferenceQueue.remove(Unknown Source) at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source) "Reference Handler" Id=2 WAITING on java.lang.ref.Reference$Lock@4610af at java.lang.Object.wait(Native Method) - waiting on java.lang.ref.Reference$Lock@4610af at java.lang.Object.wait(Object.java:503) at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source) Stacktrace: at pu.run(SourceFile:59) at java.lang.Thread.run(Unknown Source) -- System Details -- Details: Minecraft Version: 1.8.1 Operating System: Windows 7 (x86) version 6.1 Java Version: 1.7.0_55, Oracle Corporation Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation Memory: 116492080 bytes (111 MB) / 259522560 bytes (247 MB) up to 259522560 bytes (247 MB) JVM Flags: 0 total; IntCache: cache: 0, tcache: 0, allocated: 12, tallocated: 94 Profiler Position: N/A (disabled) Player Count: 1 / 20; [qx['Blockinlick'/977, l='world', x=465.30, y=66.00, z=-12.59]] Is Modded: Unknown (can't tell) Type: Dedicated Server (map_server.txt)
In other words, give us more information.
Specifications? What specifics? can you be more specific on what needs to be more specific?
My internet speed is pretty fast. Not sure what it is exactly, but TWC says it's 30 MBPS
I'm running it on Windows 7 on a 2012 model HP PC running AMD graphics.
Not sure what other seemingly irrelevant information is needed. I posted the error report, isn't that supposed to tell you exactly what happened?
Error reports help, but specifications help more. Where it is hosted from IS relevant because if your hosting from your computer, chances are you can't support it. We need information like:
http://support.hp.com/us-en/document/c03154290
-Processing speed is 3.3 GHZ
-My PC has 10 gigs of RAM, but I think the server console says it runs with 1 gig.
-Don't know what Clock Speed is or how to find it
-Idk about download speed, but I'm running Time Warner's Extreme speed broadband, which says it is 30mbps.
Donations won't do anything for me. My server is a private one for local IRL friends. There's currently only 2 of them playing and maybe only couple more that will join in later on. There's no money to be made there and I wouldn't milk my friends like that either.
You gave me the clock / processing speed. But to see your speed, use https://speedtest.net.
It says 8.20 mbps for download speed
You may need faster internet speeds.
I surely doubt that my internet speed is the issue, but if it is, then I'll just deal with the crashes, because I'm not paying $30 more a month for the fastest.
You can get a server hosted by a company for much less if your just needing a 1GB server. To get started you can either look in the other and main Minecraft hosting forums and/or post your hosting request. Also if your just having a high internet just because of the server you can probably downgrade the internet and use the saving to rent a quality server from a hosting company.
The console says that my server is already 1GB
Okay then try renting one at 1.5GB-2GB if your already using up the entire 1GB and that shouldn't be a problem even to get one of that for $20 or even less depending where you rent it from.
I'm not paying money for a Minecraft server. I'll just deal with the crashes. It's not worth it.
Even after downgrading your internet? As I suggested if your just having high internet speed just to keep this server going then you could probably "redirect" the money to rent the server instead of paying for the internet.