Game server साठी योग्य VPS कसा निवडावा?
Game server VPS साठी वेगवान single core, पुरेशी RAM, योग्य ports आणि systemd restart महत्त्वाचे आहेत. Backups घ्या; latency मुख्यतः location वर अवलंबून असते.
तुम्हाला कोणत्या प्रकारचा gaming VPS अभिप्रेत आहे?
Game server साठी VPS घेणे एका कामासाठी योग्य ठरते: तुमच्या आणि तुमच्या मित्रांच्या स्वतःच्या मशीनमधून कनेक्ट होणारा dedicated server चालवण्यासाठी. या वाक्यांशाचा दुसरा अर्थ म्हणजे VPS वरच remote desktop द्वारे game खेळणे. त्या कामासाठी VPS घेणे योग्य नाही. या दोन कामांसाठी आवश्यक hardware परस्परविरुद्ध असते. Dedicated server साठी एक वेगवान CPU core आणि game world ठेवण्यासाठी पुरेशी RAM आवश्यक असते. Game खेळण्यासाठी GPU (graphics processing unit) आवश्यक असतो. Standard VPS plan मध्ये GPU नसतो.
खालील सर्व माहिती पहिल्या कामाबद्दल आहे. दुसऱ्या कामासाठी योग्य पर्याय निवडण्यासाठी दोन मिनिटे देणे उपयुक्त ठरेल. कारण त्यासाठी अनेक लोक चुकीचे hardware खरेदी करतात.
VPS वर गेम्स का खेळता येत नाहीत
सामान्य VPS मध्ये virtual CPU cores असतात, पण graphics card नसतो. Physical host मधील कोणतेही hardware pass-through केले जात नाही. त्यामुळे गेम वापरू शकेल असा hardware renderer उपलब्ध नसतो. तुम्हाला प्रत्यक्षात काय मिळाले आहे ते पाहण्यासाठी:
sudo apt install -y pciutils
lspci | grep -iE "vga|3d"उत्तर म्हणजे virtual display adapter. तो Cirrus Logic किंवा virtio GPU device सारखा असतो. Provider च्या web console ला स्क्रीन दाखवण्यासाठी तो आवश्यक असतो. त्यामागे 3D acceleration नसते. त्यावर desktop आणि VNC server install केल्यास glxinfo -B त्याचा renderer llvmpipe असा दाखवतो. हा CPU वर चालणारा Mesa चा software renderer असतो. CPU वर render होणारा आधुनिक 3D गेम प्रति सेकंद काही frames या वेगानेच चालतो. त्यामुळे तो box च्या बाहेर काहीही पाठवण्यापूर्वीच unplayable होतो. Windows instances मध्येही हीच मर्यादा दुसऱ्या प्रकारे दिसते. अनेक titles सुरू होताना बंद होतात आणि Direct3D device तयार करता आले नाही अशी तक्रार दाखवतात, कारण तो तयार करण्यासाठी display adapter उपलब्ध नसतो.
दुसरी समस्या म्हणजे तुमच्यापर्यंत पोहोचणारा network path. Remote box वर गेम खेळताना प्रत्येक frame video मध्ये encode केला जातो, internet वरून पाठवला जातो आणि तुमच्या स्क्रीनवर decode केला जातो. त्यामुळे गेमच्या input lag व्यतिरिक्त encoding आणि decoding साठी लागणारा वेळही वाढतो. RDP आणि VNC हे 60 frames per second च्या motion ऐवजी desktop वापरासाठी तयार केले गेले आहेत. Cloud gaming services ही समस्या प्रत्यक्ष GPU hardware आणि त्यासाठी तयार केलेल्या streaming protocol ने सोडवतात. साध्या VPS मध्ये यापैकी कोणतीही गोष्ट नसते. तुम्हाला गेम खेळायचा असल्यास GPU time भाड्याने घ्या. तुम्हाला hosting करायचे असल्यास पुढे वाचा.
समर्पित game server ला प्रत्यक्षात कशाची आवश्यकता असते
game server हा simulation loop असतो. तो world memory मध्ये ठेवतो आणि प्रत्येक सेकंदाला ठरावीक संख्येने त्याची स्थिती पुढे नेतो. त्यानंतर प्रत्येक connected player ला त्याला दिसू शकणारा world चा भाग पाठवला जातो.
या रचनेवर hardware ची निवड ठरते. हा loop प्रामुख्याने एका thread वर चालतो, त्यामुळे core count पेक्षा core speed अधिक महत्त्वाचा असतो. world memory मध्ये राहतो, त्यामुळे RAM ही सहसा सर्वप्रथम येणारी मर्यादा असते. खेळ सुरू असताना disk वर कमी activity असते; load आणि save वेळी ती वाढते. तुमचा network path ping ठरवतो; कोणताही plan tier तो बदलू शकत नाही.
एकल-कोरचा वेग कोअरच्या संख्येपेक्षा महत्त्वाचा
बहुतेक game servers जगाची स्थिती एका मुख्य thread वर अद्ययावत करतात. Minecraft चा tick loop आणि Source engine चा server frame याच पद्धतीने काम करतात. त्या tick साठी एक ठरावीक वेळमर्यादा असते. Minecraft Java प्रति सेकंद 20 ticks चालवते. त्यामुळे प्रत्येक tick साठी 50 milliseconds इतका वेळ मिळतो. हे काम त्या वेळेत पूर्ण न झाल्यास server अगदी पुढील संदेश दाखवतो:
[12:04:51] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 2547ms or 50 ticks behindयाचा अर्थ एका thread कडे काम पूर्ण करण्यासाठी उपलब्ध वेळ संपला. अधिक cores जोडल्याने त्या thread ला अधिक वेळ मिळत नाही. 2 वेगवान vCPUs असलेला plan, 8 धीम्या vCPUs असलेल्या plan पेक्षा स्थिर tick rate राखेल. कारण त्या 8 पैकी फक्त एक vCPU महत्त्वाचे काम करत असतो.
काहीही निश्चित करण्यापूर्वी single-thread वेग मोजा:
sudo apt install -y sysbench
sysbench cpu --cpu-max-prime=20000 --threads=1 runevents per second ओळ वाचा. हा आकडा स्वतंत्रपणे अर्थपूर्ण नसतो; तुलना केल्यावरच त्याचा उपयोग होतो. त्यामुळे दोन candidate plans वर तो चालवून निकाल शेजारी-शेजारी मांडा. पूर्ण VPS benchmark run मध्ये disk आणि network यांचेही त्याच पद्धतीने मोजमाप केले जाते.
अतिरिक्त cores चा उपयोग तरीही होतो. ते दुसरा game server, database, nightly backup आणि chunk pre-generator चालवतात. त्यामुळे tick thread चा वेळ त्यांना द्यावा लागत नाही. Server software देखील काम वेगवेगळ्या threads मध्ये विभागू लागले आहे. Minecraft चा लोकप्रिय server fork असलेला Paper काही काम मुख्य tick thread बाहेर हलवतो. त्यामुळे काही वेगवान cores असलेला plan घ्या; अनेक धीमे cores असलेला नाही.
एक आकडा plan page वर कधीही दिसत नाही. पण तुम्ही ज्यासाठी पैसे दिले तो वेगवान core प्रत्यक्षात तुमच्यासाठी उपलब्ध आहे का, हे तो ठरवतो:
vmstat 1 5st column मध्ये तुमचा virtual CPU चालण्यासाठी तयार असताना physical host ने तो core दुसऱ्या वापरकर्त्याला दिलेल्या वेळेची टक्केवारी दिसते. st ची स्थिर किंमत काही टक्क्यांपेक्षा जास्त असल्यास host oversold आहे. तुमच्या box वरील top अजूनही CPU idle दाखवत असला तरी players ना त्याचा परिणाम stutter म्हणून जाणवतो. कारण तो idle वेळ वापरण्याचा अधिकार तुमच्याकडे नसतो.
गेम सर्व्हरला किती RAM आवश्यक असते?
The data behind this chart
[
{
"label": "Minecraft Java, vanilla",
"players": 10,
"ram_gb": 2
},
{
"label": "Minecraft Java, large modpack",
"players": 10,
"ram_gb": 8
},
{
"label": "Valheim",
"players": 10,
"ram_gb": 4
},
{
"label": "Palworld",
"players": 32,
"ram_gb": 16
}
]ऑगस्ट 2026 पर्यंत गेम आणि modpack च्या documentation मध्ये दिलेल्या या सुरुवातीच्या allocations आहेत. ही मार्गदर्शक मूल्ये आहेत; एका मशीनवर मोजलेली निश्चित आकडेवारी नाही. Vanilla Minecraft Java मध्ये सुमारे 10 players साठी 2 GB heap पुरेसा असतो. मोठ्या modpack मध्ये तेवढ्याच players साठी 8 GB आवश्यक असतो, कारण mods मुळे entities आणि generated structures वाढतात आणि ते सर्व heap मध्ये राहतात. Valheim ने स्वतः दिलेली किमान आवश्यकता 2 GB आहे. मात्र, छोट्या world सह काम करणारे operators process साधारण 3 GB जवळ स्थिरावल्याचे सांगतात. त्यामुळे सुरुवातीस 4 GB ठेवणे योग्य आहे. Palworld याला अपवाद आहे. त्याच्या 32 player कमाल मर्यादेसाठी 16 GB आवश्यक आहे. Pocketpair ची शिफारसही हीच आहे.
RAM चे प्रमाण connections नुसार वाढत नाही. ते loaded world नुसार वाढते. प्रत्येक player आपल्या आसपासचा region loaded ठेवतो. त्यामुळे एकत्र उभे असलेले दोन players map च्या विरुद्ध कोपऱ्यांत explore करणाऱ्या दोन players पेक्षा खूप कमी RAM वापरतात. म्हणून “RAM per player” हा फक्त अंदाजे मार्गदर्शक आहे. प्रत्यक्ष परिणाम “RAM per active area” यावर अवलंबून असतो. त्यामुळे explore करायला आवडणारा छोटा group, त्याच्या दुप्पट players साठी आखलेल्या plan ची मर्यादा ओलांडू शकतो.
Java servers साठी आणखी दोन नियम लागू होतात. Minimum आणि maximum heap समान ठेवा. त्यामुळे JVM heap चा आकार बदलण्यासाठी मध्येच pause करणार नाही:
java -Xms4G -Xmx4G -jar server.jar noguiत्यानंतर काही headroom ठेवा. तुम्ही दिलेल्या heap च्या बाहेरही JVM memory वापरते. यात thread stacks आणि native buffers समाविष्ट आहेत. World files वेगाने वाचण्यासाठी kernel ला page cache देखील आवश्यक असतो. 6 GB च्या मशीनवर 4 GB heap योग्य आहे; 6 GB heap योग्य नाही.
Memory-संबंधित दोन्ही failures पूर्णपणे वेगळे दिसतात. त्यामुळे दोन्ही strings ओळखायला शिका. Heap खूप लहान असल्यास Java च्या आत error येतो आणि server साधारणपणे कसाबसा चालू राहतो:
java.lang.OutOfMemoryError: Java heap spaceमशीनच्या उपलब्ध memory पेक्षा heap मोठा असल्यास संपूर्ण process बाहेरून kill होतो. Console मध्ये फक्त Killed दिसते. पुरावा kernel log मध्ये मिळतो:
sudo dmesg -T | grep -i "out of memory"Swap वाढवल्याने process kill होणे थांबते; पण मूळ समस्या सुटत नाही. Tick loop ला world पुन्हा swap मधून वाचावा लागल्यास प्रत्येक deadline चुकतो. त्यामुळे crashed server ऐवजी players ना frozen server दिसतो.
ऑगस्ट 2026 पर्यंत लागू असलेली एक version-संबंधित नोंद: Minecraft Java 1.20.5 आणि त्यानंतरच्या versions साठी Java 21 आवश्यक आहे. जुना runtime सुरू होतो आणि त्यानंतर unsupported class file version error मुळे fail होतो. हा error compiler च्या message सारखा दिसतो आणि पहिल्यांदा पाहताना तो अनेकांना गोंधळात टाकतो.
sudo apt install -y openjdk-21-jre-headless
java -versionगेम सर्व्हरसाठी डिस्कचा वेग महत्त्वाचा आहे का?
गेम खेळत असताना अपेक्षेपेक्षा कमी, पण दोन विशिष्ट वेळी तो खूप महत्त्वाचा ठरतो. सुरुवातीला world मेमरीमध्ये read केला जातो आणि autosave वेळी पुन्हा डिस्कवर write केला जातो. त्यामुळे डिस्कचा वेग boot ला लागणारा वेळ आणि save चालू असताना येणारा pause यामध्ये दिसतो. त्यादरम्यान बहुतांश reads RAM मधून पूर्ण होतात.
या सारांशावरून वाटते त्यापेक्षा डिस्क अधिक महत्त्वाची ठरण्याची दोन कारणे आहेत. खेळाडू हालचाल करताना exploration मुळे नवीन chunks किंवा zones डिस्कवरून load होतात. हा read tick budget च्या आत पूर्ण करावा लागतो. मोठ्या world चा autosave एकाच वेळी मोठ्या प्रमाणात data write करतो. धीम्या volume वर हा write loop ला इतका वेळ block करू शकतो की वर दाखवलेली "Can't keep up" warning print होते. दोन्ही throughput पेक्षा latency च्या समस्या आहेत. म्हणून VPS वरील NVMe आणि SATA SSD मधील फरक येथे headline megabytes per second पेक्षा अधिक महत्त्वाचा ठरतो. एका छोट्या operation ला किती वेळ लागतो, हे महत्त्वाचे आहे.
वाढ लक्षात घेऊन volume चा आकार ठरवा. कोणी नवीन ठिकाणी चालत गेले की world वाढतो. तुमचे backups त्याचा आकार आणखी वाढवतात. du -sh world महिनाभर आठवड्यातून एकदा run करा. त्यामुळे तुमचा प्रत्यक्ष growth rate कळेल.
टिक दर, ping आणि त्यांतील फरक
टिक दर म्हणजे सर्व्हर प्रत्येक सेकंदाला गेमच्या जगाची किती वेळा पुनर्गणना करतो ते. Minecraft Java मध्ये ही दर 20 आहे. Source engine सर्व्हर सामान्यतः 64 दराने चालतात. Minecraft मध्ये यापेक्षा जास्त दर विकत घेता येत नाही, कारण हा दर गेमच्या डिझाइनचा भाग आहे. त्यामुळे उद्दिष्ट 20 पेक्षा जास्त जाणे नसून 20 टिकवणे हे आहे.
ping म्हणजे एका खेळाडू आणि सर्व्हरमधील round trip वेळ. या दोन कारणांमुळे वेगवेगळ्या तक्रारी निर्माण होतात. त्यामुळे पैसे खर्च करण्यापूर्वी त्यांमध्ये फरक करा. सर्व्हरचे ticks चुकले, तर सर्व खेळाडू एकाच वेळी rubber-band होतात आणि सर्व्हरचा log हे स्पष्टपणे नोंदवतो. एखाद्या खेळाडूचा network path लांब असेल, तर फक्त त्या खेळाडूला lag जाणवतो आणि उर्वरित गट व्यवस्थित चालतो. दुसऱ्या परिस्थितीचे निराकरण अधिक क्षमतेचा CPU कधीही करू शकत नाही.
विलंबता स्थानावर अवलंबून असते, प्लॅनच्या स्तरावर नाही
फायबरमध्ये प्रकाश दर मिलिसेकंदाला सुमारे 200 किलोमीटर असतो. Round trip मध्ये हे अंतर दोनदा पार केले जाते. त्यामुळे player आणि server यांच्यातील प्रत्येक 100 km अंतरासाठी किमान विलंबता साधारण 1 ms असते. कोणताही provider यापेक्षा कमी विलंबता देऊ शकत नाही. कोणतेही plan upgrade ही विलंबता बदलत नाही.
The data behind this chart
[
{
"label": "Toronto to New York",
"distance_km": 550,
"rtt_floor_ms": 5.5
},
{
"label": "Dallas to Chicago",
"distance_km": 1290,
"rtt_floor_ms": 12.9
},
{
"label": "Dallas to Los Angeles",
"distance_km": 1990,
"rtt_floor_ms": 19.9
},
{
"label": "New York to London",
"distance_km": 5570,
"rtt_floor_ms": 55.7
},
{
"label": "Los Angeles to Sydney",
"distance_km": 12070,
"rtt_floor_ms": 120.7
}
]ही किमान मूल्ये great circle distance वरून काढली आहेत. प्रत्यक्ष fibre सरळ रेषेत जात नाही. मार्गातील प्रत्येक router थोडा अतिरिक्त विलंब जोडतो. त्यामुळे चांगला real world परिणाम साधारणपणे या किमान मूल्याच्या दुप्पट असतो. Toronto मधील player ने New York मधील server शी संपर्क साधल्यास, त्यांच्यातील अंतर 550 km असल्यामुळे किमान विलंबता 5.5 ms असते. प्रत्यक्षात ती बहुतेक वेळा teens मध्ये दिसते. Los Angeles ते Sydney या मार्गाची किमान विलंबता 120.7 ms आहे. कितीही पैसे खर्च केले तरी ती कमी होत नाही.
म्हणून server वर खेळणाऱ्या लोकांच्या जवळ ठेवा. तुमचा group एखाद्या ocean च्या दोन्ही बाजूंना विभागलेला असल्यास, कोणाला तरी लांब मार्ग वापरावा लागेल. साधारणपणे बहुतेक players ज्या region मध्ये आहेत, तो region निवडणे हा योग्य पर्याय असतो.
अंदाज करण्याऐवजी मार्गाचे मोजमाप करा:
sudo apt install -y mtr-tiny
mtr -rwzc 100 203.0.113.10सर्वप्रथम शेवटची line वाचा. ती line server दाखवते. तिची loss आणि latency यांचाच game च्या अनुभवावर परिणाम होतो. मधल्या hop वर loss दिसत असेल, पण final hop स्वच्छ असेल, तर ते जवळजवळ नेहमी त्या router वरील ICMP rate limiting मुळे असते. Routers probe packets च्या replies ला कमी प्राधान्य देतात, पण real traffic नेहमीप्रमाणे forward करतात. प्रत्येक player ने server कडे हा test चालवावा, कारण प्रत्येकासाठी मार्ग वेगळा असतो.
Round trip ची किमान विलंबता कशी मोजली जाते
काचेमध्ये प्रकाशाचा वेग vacuum मधील वेगाच्या साधारण दोन तृतीयांश असतो. हे दर मिलिसेकंदाला सुमारे 200 km इतके होते. Round trip मध्ये अंतर दोनदा पार केले जाते. त्यामुळे milliseconds मधील किमान विलंबता म्हणजे one way अंतर kilometres मध्ये घेऊन त्याला 100 ने भागणे. New York ते London हे अंतर 5,570 km आहे. 5570 ला 100 ने भागल्यास 55.7 ms मिळतात. प्रत्यक्ष मोजलेले प्रत्येक मूल्य यापेक्षा जास्त असते, कारण cables किनारपट्ट्यांनुसार जातात आणि routers ला प्रक्रिया करण्यासाठी वेळ लागतो.
फक्त गेमला आवश्यक असलेले पोर्ट उघडे ठेवा
गेम सर्व्हरसाठी एक किंवा दोन पोर्ट उघडे असणे पुरेसे आहे. इतर कोणतेही पोर्ट उघडे ठेवू नका. सामान्य default:
- Minecraft Java Edition: TCP 25565
- Minecraft Bedrock Edition: UDP 19132
- Valheim: UDP 2456 आणि UDP 2457
- Palworld: UDP 8211
- Counter-Strike 2 सारखे Source engine games: UDP 27015
गेमच्या अधिकृत documentation तपासा, कारण काही titles अतिरिक्त query port वापरतात. Valheim हे याचे स्पष्ट उदाहरण आहे: 2456 वर game traffic येतो आणि 2457 वर Steam server query ला उत्तर दिले जाते. त्यामुळे तुमचा server browser list मध्ये दिसतो. हे port numbers TCP वर उघडून काहीही साध्य होत नाही, कारण Valheim फक्त UDP वापरते.
Firewall enable करण्यापूर्वी SSH ला परवानगी द्या. अन्यथा तुम्ही स्वतःच्याच server मधून lock out व्हाल:
sudo ufw allow 22/tcp
sudo ufw allow 25565/tcp
sudo ufw enable
sudo ufw status verboseअनेक providers त्यांच्या control panel मध्ये स्वतंत्र network firewall देखील चालवतात. तो server वरील firewall पेक्षा वेगळा असतो. ufw मध्ये port open असला, पण provider च्या firewall मध्ये बंद असला, तरी connections नाकारले जातात. बाहेरून पाहिल्यास हेच लक्षण दिसते. त्यामुळे config files संपादित करण्यापूर्वी दोन्ही ठिकाणे तपासा.
दुसऱ्या machine वरून TCP port तपासणे सोपे आहे:
sudo apt install -y netcat-openbsd
nc -vz 203.0.113.10 25565UDP अशा प्रकारे तपासता येत नाही. बंद UDP port सामान्यतः कोणतेही उत्तर देत नाही. त्यामुळे probe ला उत्तर मिळाले नाही, तर त्यातून काहीही निश्चित होत नाही. त्याऐवजी server च्या बाजूने पडताळणी करा आणि अपेक्षित port वर bind झालेली game process शोधा:
sudo ss -lunp | grep 2456RCON, म्हणजे remote console protocol, internet वर कधीही expose करू नका. त्यात default म्हणून port 25575 वर plaintext connection द्वारे एकच password पाठवला जातो. त्याला 127.0.0.1 वर bind करा आणि SSH tunnel द्वारे वापरा. गेम server स्वतःच्या unprivileged user म्हणून चालवा. त्यामुळे mod मधील bug मुळे machine च्या उर्वरित भागापर्यंत पोहोचता येणार नाही. नवीन VPS वरील पहिली दहा मिनिटे या section मध्ये user account आणि SSH hardening यांची माहिती आहे. या section साठी ती कामे तुम्ही आधीच पूर्ण केली आहेत असे गृहीत धरले आहे.
systemd अंतर्गत सर्व्हर चालवा, जेणेकरून तो पुन्हा सुरू होईल
SSH session मध्ये हाताने सुरू केलेला सर्व्हर session बंद झाल्यावर बंद पडतो आणि reboot नंतरही बंदच राहतो. systemd या दोन्ही समस्या सोडवते. /etc/systemd/system/minecraft.service लिहा:
[Unit]
Description=Minecraft Java server
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms4G -Xmx4G -jar server.jar nogui
Restart=on-failure
RestartSec=15
TimeoutStopSec=180
[Install]
WantedBy=multi-user.targetRestart=on-failure crash नंतर सर्व्हर पुन्हा सुरू करते आणि स्वच्छ shutdown नंतर तो बंदच ठेवते. तुम्हाला हवे ते हेच आहे. Restart=always तुम्ही सर्व्हर मुद्दाम थांबवल्यावर प्रत्येक वेळी अडथळा आणते. TimeoutStopSec=180 अपेक्षेपेक्षा अधिक महत्त्वाचे आहे. systemctl stop SIGTERM पाठवते. vanilla Minecraft server हा signal पकडतो आणि बंद होण्यापूर्वी world save करतो. timeout संपल्यावर systemd त्याऐवजी SIGKILL पाठवते. मोठा world लिहिण्यासाठी default 90 seconds पेक्षा जास्त वेळ घेऊ शकतो. SIGKILL येईपर्यंत disk वर न पोहोचलेला कोणताही डेटा नष्ट होतो.
sudo systemctl daemon-reload
sudo systemctl enable --now minecraft
sudo journalctl -u minecraft -fयशस्वीपणे सुरू झाल्यावर शेवटी Done (12.345s)! For help, type "help" सारखी ओळ दिसते. Unit activating आणि failed यांच्या मध्ये वारंवार बदलत असेल, तर journalctl -u minecraft -n 50 कारण दाखवते. बहुतेक वेळा WorkingDirectory मधील चुकीचा path किंवा मशीनच्या क्षमतेपेक्षा मोठा heap हे कारण असते.
systemd तुम्हाला interactive console देत नाही. त्यामुळे याची आधीच योजना करा. Commands साठी localhost वरील RCON वापरा किंवा सर्व्हर tmux session मध्ये चालवा. Logins दरम्यान VPS वरील दीर्घकाळ चालणारे Claude Code session सुरू ठेवण्यासाठी हीच पद्धत उपयोगी ठरते.
Steam द्वारे वितरित केलेल्या games साठी या सर्व प्रक्रियेपूर्वी SteamCMD आवश्यक आहे. Ubuntu package हे 32 bit binary आहे. म्हणून architecture line दिली आहे. ती line वगळल्यास apt कडे installation candidate नाही असे कळवते:
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y steamcmdकाही game servers जास्त वेळ चालू राहिल्यावर memory वापर वाढवत जातात. अशा वेळी उपाय म्हणून quiet hour ला scheduled restart करणे प्रचलित आहे; हा मूळ दोष दूर करणारा fix नाही. systemctl restart कॉल करणारा systemd timer cron entry पेक्षा समजणे सोपे असतो. कारण systemctl list-timers तो पुढच्या वेळी नेमका कधी चालेल हे दाखवते.
ठराविक वेळापत्रकानुसार संपूर्ण world चा backup घ्या
गेम server वरील इतर सर्व गोष्टी पुन्हा मिळवता येतात; मात्र world directory आणि player data यांना अपवाद आहे. गेम पुन्हा install करण्यासाठी काही मिनिटे लागतात. तुमच्या समूहाने उभारलेली रचना पुन्हा तयार करण्यासाठी अनेक महिने लागू शकतात.
काहीही लिहिले जात नसताना घेतलेला backup सुरक्षित असतो. server एका मिनिटासाठी थांबवणे हा खालील गोष्टींची खात्री करण्याचा सर्वात सोपा मार्ग आहे:
sudo systemctl stop minecraft
sudo tar czf /var/backups/mc-$(date +%F).tgz -C /opt/minecraft world world_nether world_the_end
sudo systemctl start minecraftरात्रीची pause स्वीकारार्ह नसेल, तर त्याऐवजी आधी world flush करा. Minecraft console मध्ये save-off autosave थांबवते, save-all flush अजून प्रलंबित असलेला सर्व data लिहिते आणि copy पूर्ण झाल्यावर save-on autosave पुन्हा सुरू करते. server लिहित असताना world ची copy घेतल्यास अर्धवट लिहिलेली region file backup मध्ये जाऊ शकते. Restore ची गरज भासेपर्यंत ही समस्या लक्षात येणार नाही.
किमान एक copy machine च्या बाहेर ठेवा. त्याच disk वरील backup disk बिघडल्यानंतर टिकत नाही. Provider snapshot ही backup ऐवजी सोय आहे, कारण तो तुम्ही गमावू शकता त्याच account मध्ये असतो. ऑफ-साइट storage वर नियोजित restic backups retention आणि deduplication हाताळतात. त्यामुळे एका महिन्याच्या nightly world copies मुळे तुमचा volume भरत नाही.
त्यानंतर एक backup restore करून पाहा. तुम्ही कधीही restore न केलेला backup हा केवळ अंदाज असतो. काल रात्रीचे archive एखाद्या spare directory मध्ये extract करा. Test server त्या directory कडे निर्देशित करा आणि world load होते का, तसेच इमारती पूर्वीच्या ठिकाणी आहेत का, हे पडताळा.
करार करण्यापूर्वी ही पडताळणी करा
एक वर्षाचा प्लॅन घेण्याऐवजी एक महिन्याचा प्लॅन घ्या आणि एका संध्याकाळी प्रत्यक्ष खेळाडूंसह चाचणी करा. single thread sysbench चाचणी चालवा. त्यानंतर प्रत्येक खेळाडूने सर्व्हरच्या दिशेने mtr चालवावे. संपूर्ण VPS benchmark प्रक्रिया या साधनांचा वापर कसा करायचा आणि खराब निकाल कसा दिसतो हे टप्प्याटप्प्याने दाखवते. VPS ची प्रत्यक्ष मासिक किंमत वाचल्यास तुमच्या सर्व्हरवर मर्यादा आणणाऱ्या resource साठीच तुम्ही पैसे देत आहात की plan page वर सर्वांत मोठ्या अक्षरांत दाखवलेल्या resource साठी, हे तपासता येते.
या लेखानंतरचे दोन लेख पुढील माहिती देतात. VPS वर Minecraft सर्व्हर तयार करणे हा वरील सर्व माहितीचा step-by-step आवृत्ती आहे. सुरुवात करणारे बहुतेक लोक ज्या game पासून सुरुवात करतात, त्यावर तो आधारित आहे. VPS वर चालवता येणाऱ्या गोष्टींची विस्तृत यादी वाचणे उपयुक्त ठरेल, जर game nights मधील वेळेत या box कडून काही उपयुक्त काम करून घ्यायचे असेल.
FAQ
मी गेमिंग PC विकत घेण्याऐवजी VPS वर गेम खेळू शकतो का?
नाही. सामान्य VPS मध्ये GPU नसतो. त्यात फक्त provider च्या console साठी virtual display adapter असतो. त्यामुळे desktop install केल्यानंतर glxinfo -B software renderer llvmpipe दाखवते आणि 3D गेम काही frames per second वेगानेच चालतो. GPU जोडलेला असला तरी remote play मुळे प्रत्येक frame च्या round trip मध्ये video encoding आणि decodingची भर पडते. RDP आणि VNC यासाठी कधीही तयार करण्यात आले नव्हते. तुमचा group ज्या dedicated server ला connect होतो, तो host करण्यासाठी VPS वापरा. तुम्हाला स्वतः गेम खेळायचा असल्यास GPU time rent करा किंवा cloud gaming service वापरा.
गेम server साठी किती CPU cores आवश्यक असतात?
बहुतेक गेमसाठी आठ धीम्या cores पेक्षा दोन वेगवान cores अधिक चांगले असतात. याचे कारण म्हणजे world simulation एका main thread वर चालते आणि अतिरिक्त cores त्या thread ला 50 ms ची deadline पूर्ण करण्यात मदत करू शकत नाहीत. sysbench cpu --cpu-max-prime=20000 --threads=1 run वापरून उपलब्ध plans ची तुलना करा आणि events per second हा आकडा वाचा. त्याच box वर दुसरा server किंवा database देखील चालवायचा असल्यास अतिरिक्त cores साठी पैसे देणे योग्य ठरते. त्यामुळे ही workloads tick thread चा वेळ न घेता चालू शकतात.
Minecraft server साठी किती RAM आवश्यक असते?
सुमारे 2 GB heap vanilla world साठी पुरेसा असतो, जर त्यावर साधारण 10 players असतील. त्याच player count साठी मोठ्या modpack ला 8 GB आवश्यक असतो. -Xms आणि -Xmx एकाच value वर set करा. Operating system साठी machine मध्ये 1 GB ते 2 GB memory मोकळी ठेवा, कारण JVM heapच्या बाहेरही memory वापरते आणि kernel ला page cache आवश्यक असतो. Box मधील memory पेक्षा मोठा heap असल्यास kernel process kill करते. dmesg मध्ये हे Java error म्हणून नव्हे, तर out of memory line म्हणून दिसते.
Server कडे CPU आणि RAM शिल्लक असतानाही माझे players lag का करतात?
या वर्णनाशी दोन कारणे जुळतात. Can't keep up! Is the server overloaded? साठी server log तपासा. याचा अर्थ इतर cores idle असताना single main thread ने 50 ms चे tick budget चुकवले आहे. ही line नसल्यास समस्या network path मध्ये आहे. त्यामुळे प्रत्येक player ने तुमच्या server address विरुद्ध mtr -rwzc 100 203.0.113.10 चालवावे आणि शेवटची line वाचावी. vmstat 1 मधील st column देखील तपासा. काही टक्क्यांपेक्षा जास्त steal time म्हणजे host oversold आहे. त्यामुळे तुम्हाला दिसणारा idle CPU प्रत्यक्षात तुमच्यासाठी उपलब्ध नसतो.
गेम server साठी कोणते ports open करावे लागतात?
फक्त गेमचा स्वतःचा port आणि SSH open करा. Minecraft Java साठी TCP 25565, Minecraft Bedrock साठी UDP 19132, Valheim साठी UDP 2456 आणि 2457, तर Palworld साठी UDP 8211 वापरले जातात. ufw enable चालवण्यापूर्वी SSH rule add करा. अन्यथा box वरील access गमवाल. अनेक providers त्यांच्या control panel मध्ये दुसरा firewall चालवतात, हे लक्षात ठेवा. त्यामुळे port दोन्ही ठिकाणी open असणे आवश्यक आहे. RCON साठी port 25575 इंटरनेटवर कधीही open करू नका, कारण त्यात एक password plaintext मध्ये पाठवला जातो.