கேம் சர்வர் அமைக்க சிறந்த VPS-ஐ தேர்வு செய்வது எப்படி?
கேம் சர்வர் VPS-க்கு தேவையான அதிவேக CPU core மற்றும் RAM அளவுகளை கண்டறியுங்கள். லேட்டன்சி, போர்ட் மேனேஜ்மென்ட், systemd ரீஸ்டார்ட் மற்றும் பேக்கப் குறித்த முக்கிய தகவல்கள் இதோ.
எந்த வகையான கேமிங் VPS-ஐ நீங்கள் குறிப்பிடுகிறீர்கள்?
கேம் சர்வர்களுக்கான VPS ஒரு குறிப்பிட்ட பணிக்கு மட்டுமே சிறந்தது: நீங்களும் உங்கள் நண்பர்களும் உங்கள் சொந்த கணினிகளிலிருந்து இணைக்கக்கூடிய ஒரு dedicated server-ஐ இயக்குவதற்கு. இந்தச் சொற்றொடரால் மக்கள் குறிப்பிடும் மற்றொரு விஷயத்திற்கு இது ஒரு மோசமான தேர்வாகும், அதாவது remote desktop வழியாக VPS-லேயே கேம் விளையாடுவது. இந்த இரண்டு பணிகளுக்கும் முற்றிலும் மாறுபட்ட வன்பொருள் (hardware) தேவைப்படுகிறது. ஒரு dedicated server-க்கு வேகமான ஒரு CPU core மற்றும் கேம் உலகத்தை (world) கையாள போதுமான RAM தேவை. கேம் விளையாடுவதற்கு ஒரு GPU (graphics processing unit) தேவை, ஆனால் சாதாரண VPS திட்டங்களில் அது இருப்பதில்லை.
கீழே கொடுக்கப்பட்டுள்ள அனைத்தும் முதல் பணியைப் பற்றியது. இரண்டாவது பணியைப் பற்றி தெரிந்துகொள்ள உங்கள் நேரத்திலிருந்து இரண்டு நிமிடங்கள் ஒதுக்குவது நல்லது, ஏனெனில் பலர் இதற்காகத் தவறான சர்வரை வாங்கிவிடுகிறார்கள்.
VPS-ல் ஏன் கேம்களை விளையாட முடியாது
ஒரு சாதாரண VPS-ல் மெய்நிகர் CPU கோர்கள் மட்டுமே இருக்கும், கிராபிக்ஸ் கார்டு இருக்காது. இயற்பியல் ஹோஸ்டிலிருந்து எந்தவொரு வன்பொருளும் நேரடியாக வழங்கப்படுவதில்லை என்பதால், கேம்கள் பயன்படுத்துவதற்கு ஹார்டுவேர் ரெண்டரர் (hardware renderer) எதுவும் இல்லை. உங்களிடம் உண்மையில் என்ன இருக்கிறது என்பதைப் பார்க்க:
sudo apt install -y pciutils
lspci | grep -iE "vga|3d"இதற்கான பதில் ஒரு மெய்நிகர் டிஸ்ப்ளே அடாப்டர் (virtual display adapter) ஆகும். இது Cirrus Logic அல்லது virtio GPU சாதனம் போன்றது. சேவை வழங்குநரின் வெப் கன்சோல் உங்களுக்குத் திரையைக் காட்டுவதற்காக மட்டுமே இது உள்ளது; இதற்குப் பின்னால் எந்தவிதமான 3D முடுக்கமும் (3D acceleration) இல்லை. இதன் மேல் ஒரு டெஸ்க்டாப் மற்றும் VNC சர்வரை நிறுவிப் பார்த்தால், glxinfo -B அதன் ரெண்டரரை llvmpipe என்று காட்டும். இது CPU-வில் இயங்கும் Mesa-வின் மென்பொருள் ரெண்டரர் ஆகும். CPU மூலம் வரையப்படும் ஒரு நவீன 3D கேம், வினாடிக்குச் சில பிரேம்கள் (frames per second) வேகத்தில் மட்டுமே இயங்கும். எனவே, சர்வரை விட்டுத் தகவல் வெளியேறுவதற்கு முன்பே அது விளையாட முடியாத நிலையில் இருக்கும். விண்டோஸ் (Windows) instances-களும் இதே சிக்கலை எதிர்கொள்கின்றன. பல கேம்கள் தொடங்கப்படும்போதே, Direct3D சாதனத்தை உருவாக்க முடியவில்லை என்று பிழையைக் காட்டி நின்றுவிடும், ஏனெனில் அதை உருவாக்குவதற்குத் தேவையான டிஸ்ப்ளே அடாப்டர் அங்கு இல்லை.
இரண்டாவது சிக்கல், தரவு உங்களை வந்தடையும் விதம். ஒரு தொலைதூர சர்வரில் விளையாடும்போது, ஒவ்வொரு பிரேமும் வீடியோவாக என்கோட் செய்யப்பட்டு, இணையம் வழியாக அனுப்பப்பட்டு, உங்கள் திரையில் டிகோட் செய்யப்படுகிறது. இது கேமின் உள்ளீட்டுத் தாமதத்துடன் (input lag) கூடுதலாக என்கோடிங் மற்றும் டிகோடிங் நேரத்தைச் சேர்க்கிறது. RDP மற்றும் VNC ஆகியவை வினாடிக்கு 60 பிரேம்கள் வேகத்தில் இயங்கும் அசைவுகளுக்காக வடிவமைக்கப்படவில்லை, அவை டெஸ்க்டாப் பயன்பாட்டிற்காகவே உருவாக்கப்பட்டவை. கிளவுட் கேமிங் சேவைகள், உண்மையான GPU வன்பொருள் மற்றும் இதற்கெனவே பிரத்யேகமாக உருவாக்கப்பட்ட ஸ்ட்ரீமிங் புரோட்டோகால் மூலம் இந்தச் சிக்கலைத் தீர்க்கின்றன. ஒரு சாதாரண VPS-ல் இவை இரண்டுமே இல்லை. நீங்கள் விளையாட விரும்பினால், GPU வசதியுள்ள சேவையை வாடகைக்கு எடுங்கள். நீங்கள் ஹோஸ்ட் செய்ய விரும்பினால், தொடர்ந்து படியுங்கள்.
Dedicated game server-க்கு உண்மையில் தேவைப்படுபவை
Game server என்பது ஒரு simulation loop ஆகும். இது game world-ஐ memory-ல் வைத்துக்கொண்டு, ஒரு வினாடிக்கு ஒரு குறிப்பிட்ட எண்ணிக்கையில் அதைத் தொடர்ந்து இயக்கும். இணைக்கப்பட்டுள்ள ஒவ்வொரு player-க்கும், அவர்கள் பார்க்கக்கூடிய உலகின் பகுதி மட்டும் அனுப்பப்படும்.
இந்த அமைப்பே தேவையான hardware-ஐத் தீர்மானிக்கிறது. இந்த loop பெரும்பாலும் ஒரே ஒரு thread-ல் இயங்குவதால், core-களின் எண்ணிக்கையை விட core-ன் வேகம் (speed) முக்கியமானது. World தரவுகள் memory-ல் இருப்பதால், RAM-தான் பொதுவாக நீங்கள் சந்திக்கும் முதல் தடையாகும். விளையாடும்போது disk-ன் பயன்பாடு குறைவாக இருக்கும், ஆனால் save மற்றும் load செய்யும் போது அதிகமாக இருக்கும். உங்கள் network path-தான் ping-ஐத் தீர்மானிக்கிறது; எந்தவொரு hosting plan tier-ம் இதை மாற்றாது.
ஒற்றை core வேகம், core எண்ணிக்கையை விட முக்கியமானது
பெரும்பாலான game server-கள் உலகின் செயல்பாடுகளை ஒரே main 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-க்கு ஒதுக்கப்பட்ட நேரம் முடிந்துவிட்டது என்பதைக் குறிக்கிறது. கூடுதல் core-களைச் சேர்ப்பதால் அந்த thread-க்கு கூடுதல் நேரம் கிடைக்காது. 8 மெதுவான vCPU-களைக் கொண்ட திட்டத்தை விட, 2 வேகமான vCPU-களைக் கொண்ட திட்டம் சிறந்த tick rate-ஐத் தக்கவைக்கும். ஏனெனில், அந்த 8 core-களில் ஒன்று மட்டுமே முக்கியமான வேலையைச் செய்கிறது.
எந்தவொரு திட்டத்தையும் தேர்ந்தெடுக்கும் முன் single thread வேகத்தை அளவிடவும்:
sudo apt install -y sysbench
sysbench cpu --cpu-max-prime=20000 --threads=1 runevents per second வரியைப் படிக்கவும். அந்த எண் தனியாக எந்த அர்த்தத்தையும் தராது, ஆனால் ஒப்பீட்டிற்கு மிகவும் உதவும். எனவே, இரண்டு வெவ்வேறு திட்டங்களில் இதை இயக்கி முடிவுகளை ஒப்பிட்டுப் பார்க்கவும். முழுமையான VPS benchmark சோதனை disk மற்றும் network செயல்திறனையும் இதேபோல் அளவிடும்.
கூடுதல் core-கள் பயனுள்ளவைதான். அவை இரண்டாவது game server, database, nightly backup மற்றும் chunk pre-generator ஆகியவற்றை main tick thread-ன் நேரத்தைப் பறிக்காமல் இயக்கும். Server மென்பொருட்களும் இப்போது வேலைகளைப் பிரித்துச் செய்யப் பழகிவிட்டன. உதாரணமாக, பிரபலமான Minecraft server fork-ஆன Paper, சில வேலைகளை main tick thread-லிருந்து வெளியேற்றுகிறது. எனவே, அதிக மெதுவான core-களை வாங்குவதை விட, சில வேகமான core-களைக் கொண்ட திட்டமே சிறந்தது.
ஒரு எண் எந்தவொரு திட்டத்தின் பக்கத்திலும் குறிப்பிடப்படுவதில்லை, ஆனால் நீங்கள் பணம் செலுத்திய வேகமான core உண்மையில் உங்களுடையதுதானா என்பதை அதுவே தீர்மானிக்கிறது:
vmstat 1 5st நெடுவரிசை, உங்கள் virtual CPU இயங்கத் தயாராக இருந்தும், physical host அந்த core-ஐ வேறொருவருக்கு வழங்கிய நேரத்தின் சதவீதத்தைக் குறிக்கிறது. st தொடர்ந்து சில சதவீதங்களுக்கு மேல் இருந்தால், அந்த host அளவுக்கு அதிகமாக விற்கப்பட்டுள்ளது (oversold) என்று அர்த்தம். உங்கள் server-ல் top idle CPU-வைக் காட்டினாலும், வீரர்கள் அதைத் தடுமாற்றமாக (stutter) உணர்வார்கள். ஏனெனில், அந்த idle நேரம் நீங்கள் பயன்படுத்துவதற்காக ஒதுக்கப்பட்டது அல்ல.
ஒரு game server-க்கு எவ்வளவு 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 நிலவரப்படி, game மற்றும் modpack ஆவணங்களில் குறிப்பிடப்பட்டுள்ள ஆரம்ப ஒதுக்கீடுகள் ஆகும். இவை வழிகாட்டுதல்கள் மட்டுமே; ஒரு குறிப்பிட்ட server-ல் அளவிடப்பட்ட எண்கள் அல்ல. 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 உச்ச வரம்பிற்கு Pocketpair பரிந்துரைக்கும் 16 GB தேவைப்படுகிறது.
RAM பயன்பாடு என்பது connections-ஐப் பொறுத்து மாறுவதில்லை. அது loaded world-ஐப் பொறுத்தே அமைகிறது. ஒவ்வொரு player-ம் தங்களைச் சுற்றியுள்ள பகுதியை loaded நிலையில் வைத்திருப்பார்கள்; எனவே, இருவர் ஒரே இடத்தில் இருக்கும்போது ஏற்படும் சுமையை விட, இருவர் வரைபடத்தின் எதிர்முனைகளில் தனித்தனியாகச் செல்லும்போது ஏற்படும் சுமை மிக அதிகம். இதனால்தான் "RAM per player" என்பது ஒரு தோராயமான வழிகாட்டி மட்டுமே, "RAM per active area" என்பதே உண்மையான காரணி. புதிய இடங்களை ஆராய விரும்பும் ஒரு சிறிய குழு, தங்களின் எண்ணிக்கையை விட இரு மடங்கு பெரிய திட்டத்திற்குத் தேவையான RAM-ஐயும் தாண்டிச் செல்லக்கூடும்.
Java servers-க்கு இரண்டு கூடுதல் விதிகள் உள்ளன. JVM heap-ஐ மாற்றியமைக்கத் தேவையில்லாமல் இருக்க, minimum மற்றும் maximum heap மதிப்புகளைச் சமமாக அமைக்கவும்:
java -Xms4G -Xmx4G -jar server.jar noguiபிறகு, போதிய headroom-ஐ விடவும். JVM நீங்கள் ஒதுக்கிய heap-க்கு வெளியே thread stacks மற்றும் native buffers-க்காக நினைவகத்தைப் பயன்படுத்துகிறது. மேலும், world files-ஐ விரைவாகப் படிக்க kernel-க்கு page cache தேவைப்படுகிறது. 6 GB RAM கொண்ட ஒரு server-ல் 4 GB heap ஒதுக்குவது சரியானது, ஆனால் 6 GB heap ஒதுக்குவது தவறு.
இரண்டு வகையான நினைவகத் தோல்விகளும் முற்றிலும் மாறுபட்டவை, எனவே இரண்டையும் அடையாளம் காணப் பழகிக்கொள்ளுங்கள். heap மிகச் சிறியதாக இருந்தால் Java-விற்குள் பிழை ஏற்படும், அப்போது server மெதுவாக இயங்கிக்கொண்டிருக்கும்:
java.lang.OutOfMemoryError: Java heap spacebox-ன் கொள்ளளவை விட heap அதிகமாக இருந்தால், அந்த process வெளிப்புறத்திலிருந்து நிறுத்தப்படும் (killed). console-ல் Killed என்று மட்டுமே காட்டும், இதற்கான ஆதாரம் kernel log-ல் இருக்கும்:
sudo dmesg -T | grep -i "out of memory"swap சேர்ப்பது process நிறுத்தப்படுவதைத் தடுக்கும், ஆனால் பிரச்சினையைச் சரிசெய்யாது. swap-லிருந்து world தரவுகளைப் படிக்கும் ஒரு tick loop, அனைத்து காலக்கெடுவையும் (deadlines) தவறவிடும். இதனால் உங்கள் players-க்கு server crash ஆவதற்குப் பதிலாக, server உறைந்து (frozen) காணப்படும்.
ஒரு பதிப்பு குறிப்பு, ஆகஸ்ட் 2026 நிலவரப்படி: Minecraft Java 1.20.5 மற்றும் அதற்குப் பிந்தைய பதிப்புகளுக்கு Java 21 தேவை. பழைய runtime-ஐப் பயன்படுத்தினால், unsupported class file version பிழை ஏற்படும். இது compiler பிழை போலத் தோன்றுவதால், முதல்முறை இதைப் பார்ப்பவர்கள் குழப்பமடையக்கூடும்.
sudo apt install -y openjdk-21-jre-headless
java -versionவிளையாட்டு server-க்கு disk வேகம் முக்கியமா?
விளையாட்டின் போது மக்கள் எதிர்பார்ப்பதை விட இது குறைவான முக்கியத்துவமே பெறுகிறது, ஆனால் இரண்டு குறிப்பிட்ட தருணங்களில் இது மிக முக்கியமானது. தொடக்கத்தின் போது உலகம் (world) memory-க்கு வாசிக்கப்படுகிறது மற்றும் autosave-ன் போது மீண்டும் எழுதப்படுகிறது, எனவே disk வேகம் குறைவாக இருந்தால் boot நேரம் அதிகமாகும் மற்றும் save நடக்கும்போது ஒரு சிறிய இடைநிறுத்தம் (pause) ஏற்படும். இடையில், பெரும்பாலான வாசிப்புகள் RAM-லிருந்து மேற்கொள்ளப்படுகின்றன.
இந்தச் சுருக்கம் கூறுவதை விட disk-ன் முக்கியத்துவத்தை அதிகரிக்கும் இரண்டு விஷயங்கள் உள்ளன. வீரர்கள் நகரும்போது புதிய chunks அல்லது zones disk-லிருந்து ஏற்றப்படுகின்றன, அந்த வாசிப்பு செயல்பாடு tick budget-க்குள் நடக்க வேண்டும். பெரிய உலகில் autosave நடக்கும்போது ஒரே நேரத்தில் அதிக தரவுகள் எழுதப்படுகின்றன; மெதுவான volume-ல் இந்த எழுதும் செயல்பாடு loop-ஐத் தடுத்து, மேலே குறிப்பிட்ட "Can't keep up" எச்சரிக்கையைத் தோற்றுவிக்கும். இவை throughput பிரச்சினைகளை விட latency பிரச்சினைகளே ஆகும், இதனால்தான் NVMe மற்றும் SATA SSD-க்கு இடையிலான வித்தியாசம் இங்கு முக்கியமானது. ஒரு சிறிய செயல்பாடு எவ்வளவு நேரத்தில் முடிகிறது என்பதே நீங்கள் கவனிக்க வேண்டியது.
வளர்ச்சிக்கு ஏற்ப volume-ன் அளவை நிர்ணயம் செய்யுங்கள். யாராவது புதிய இடத்திற்குச் செல்லும்போதெல்லாம் உலகம் வளர்கிறது, மேலும் உங்கள் backups அதன் எடையைப் பலமடங்கு அதிகரிக்கும். ஒரு மாதத்திற்கு வாரத்திற்கு ஒருமுறை du -sh world-ஐ இயக்குங்கள், அப்போதுதான் உங்கள் உண்மையான வளர்ச்சி விகிதம் உங்களுக்குத் தெரியும்.
Tick rate, ping மற்றும் அவற்றுக்கு இடையேயான வேறுபாடு
Tick rate என்பது ஒரு வினாடிக்கு எத்தனை முறை server உலகத்தை மறு கணக்கீடு செய்கிறது என்பதைக் குறிக்கும். Minecraft Java வினாடிக்கு 20 முறை இயங்குகிறது. Source engine server-கள் பொதுவாக 64 முறை இயங்குகின்றன. Minecraft-ல் இதை விட அதிக rate-ஐ உங்களால் வாங்க முடியாது, ஏனெனில் இந்த rate விளையாட்டின் வடிவமைப்பிலேயே உள்ளது. எனவே, 20-ஐ விட அதிகமாகச் செல்வதை விட, அதைத் தக்கவைப்பதே இலக்காகும்.
Ping என்பது ஒரு player-க்கும் server-க்கும் இடையிலான தகவல் பரிமாற்றத்திற்கான கால அளவு (round trip) ஆகும். இவை இரண்டும் வெவ்வேறு புகார்களை உருவாக்குகின்றன, எனவே பணத்தைச் செலவழிக்கும் முன் இரண்டையும் பிரித்துப் பார்க்கவும். Server ticks-ஐத் தவறவிடும்போது, அனைவரும் ஒரே நேரத்தில் rubber-band ஆவார்கள், மேலும் server log-ல் இது தெளிவாகக் குறிப்பிடப்பட்டிருக்கும். ஒரு player-க்கு மட்டும் நீண்ட network பாதை இருந்தால், அந்த player-க்கு மட்டுமே lag ஏற்படும், மற்றவர்கள் நன்றாக இருப்பார்கள். இரண்டாவது சூழலை ஒரு பெரிய CPU-ஆல் ஒருபோதும் சரிசெய்ய முடியாது.
Latency என்பது இடத்தைப் பொறுத்தது, திட்டத்தின் (plan tier) தரம் சார்ந்தது அல்ல
ஒளியிழை (fibre) வழியாக ஒளி ஒரு மில்லி விநாடிக்கு சுமார் 200 கிலோமீட்டர் வேகத்தில் பயணிக்கிறது. ஒரு round trip என்பது அந்தத் தூரத்தை இருமுறை கடப்பதாகும், எனவே வீரருக்கும் server-க்கும் இடையே உள்ள ஒவ்வொரு 100 கி.மீ தூரத்திற்கும் குறைந்தபட்சம் 1 ms காலதாமதம் ஏற்படும். எந்தவொரு சேவை வழங்குநரும் இதைவிட வேகமான சேவையை வழங்க முடியாது, மேலும் எந்தவொரு 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) கொண்டு கணக்கிடப்பட்ட குறைந்தபட்ச அளவுகள். உண்மையான ஒளியிழை நேர்க்கோட்டில் அமைவதில்லை, மேலும் பாதையில் உள்ள ஒவ்வொரு router-உம் சிறிய காலதாமதத்தைச் சேர்க்கும். எனவே, நிஜ உலகில் கிடைக்கும் முடிவு இந்த குறைந்தபட்ச அளவை விட இருமடங்காக இருக்கும். Toronto-வில் உள்ள ஒரு வீரர் New York-ல் உள்ள server-ஐ அணுகும்போது, 550 கி.மீ தூரத்திற்கு அதன் குறைந்தபட்ச அளவு 5.5 ms ஆகும், இது பொதுவாக 10-20 ms என்ற அளவில் இருக்கும். Los Angeles முதல் Sydney வரையிலான பாதைக்கு குறைந்தபட்ச அளவு 120.7 ms ஆகும், இதற்கு எவ்வளவு பணம் செலவழித்தாலும் இதை மாற்ற முடியாது.
எனவே, விளையாடுபவர்களுக்கு அருகிலேயே server-ஐ அமைக்கவும். உங்கள் குழுவினர் கடலுக்கு இருபுறமும் பிரிந்திருந்தால், யாரோ ஒருவர் நீண்ட தூரப் பாதையில் பயணிக்க வேண்டியிருக்கும். அத்தகைய சூழலில், அதிக வீரர்கள் இருக்கும் பிராந்தியத்தைத் தேர்ந்தெடுப்பதே நியாயமான தீர்வாகும்.
ஊகிப்பதற்குப் பதிலாக பாதையை அளவிடுங்கள்:
sudo apt install -y mtr-tiny
mtr -rwzc 100 203.0.113.10கடைசி வரியை முதலில் கவனியுங்கள். அந்த வரிதான் server-ஐக் குறிக்கிறது. அதன் loss மற்றும் latency மட்டுமே விளையாட்டு அனுபவத்தை தீர்மானிக்கின்றன. இடைப்பட்ட hop-களில் காட்டப்படும் loss, இறுதி hop-ல் சரியாக இருந்தால், அது பெரும்பாலும் அந்த router-ல் உள்ள ICMP rate limiting காரணமாக இருக்கலாம். ஏனெனில், router-கள் உண்மையான traffic-ஐச் சரியாகக் கையாண்டாலும், probe packets-க்கான பதில்களுக்கு முன்னுரிமை அளிப்பதில்லை. ஒவ்வொரு வீரரும் server-ஐ நோக்கி இதை இயக்க வேண்டும், ஏனெனில் ஒவ்வொருவரும் வெவ்வேறு பாதையைப் பயன்படுத்துகின்றனர்.
Round trip floor எவ்வாறு கணக்கிடப்படுகிறது
கண்ணாடியில் ஒளியின் வேகம் வெற்றிடத்தில் செல்லும் வேகத்தில் மூன்றில் இரண்டு பங்கு ஆகும், இது ஒரு மில்லி விநாடிக்கு சுமார் 200 கி.மீ வேகத்திற்குச் சமம். ஒரு round trip அந்தத் தூரத்தை இருமுறை கடப்பதால், மில்லி விநாடிகளில் குறைந்தபட்ச அளவு என்பது ஒரு வழி தூரத்தை (கி.மீ-ல்) 100-ஆல் வகுப்பதாகும். New York முதல் London வரை 5,570 கி.மீ தூரம், எனவே 5570-ஐ 100-ஆல் வகுத்தால் 55.7 ms கிடைக்கும். கேபிள்கள் கடற்கரையோரங்களைப் பின்பற்றுவதாலும், router-கள் தரவுகளைச் செயலாக்க நேரம் எடுத்துக்கொள்வதாலும், அளவிடப்படும் ஒவ்வொரு எண்ணும் இதைவிட அதிகமாகவே இருக்கும்.
விளையாட்டிற்குத் தேவையான ports-ஐ மட்டும் திறக்கவும்
ஒரு game server-க்கு ஒன்று அல்லது இரண்டு ports மட்டுமே தேவைப்படும், மற்றவை தேவையில்லை. பொதுவான இயல்புநிலை (default) அமைப்புகள்:
- Minecraft Java Edition: TCP 25565
- Minecraft Bedrock Edition: UDP 19132
- Valheim: UDP 2456 மற்றும் UDP 2457
- Palworld: UDP 8211
- Counter-Strike 2 போன்ற Source engine விளையாட்டுகள்: UDP 27015
விளையாட்டின் சொந்த ஆவணங்களைச் சரிபார்க்கவும், ஏனெனில் பல விளையாட்டுகள் கூடுதல் query port-ஐப் பயன்படுத்துகின்றன. Valheim இதற்குச் சிறந்த உதாரணம்: 2456 என்பது game traffic-ஐக் கையாள்கிறது, 2457 என்பது Steam server query-க்கு பதிலளிக்கிறது; இதுவே உங்கள் server-ஐ browser பட்டியலில் காட்ட உதவுகிறது. Valheim UDP-ஐ மட்டுமே பயன்படுத்துவதால், அந்த எண்களை TCP-ல் திறப்பதால் எந்தப் பயனும் இல்லை.
Firewall-ஐ இயக்கும் முன் SSH-ஐ அனுமதிக்கவும், இல்லையெனில் உங்கள் சொந்த server-லிருந்து நீங்களே வெளியேற்றப்படுவீர்கள்:
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 திறக்கப்பட்டிருந்தாலும், அங்கே அது மூடப்பட்டிருந்தால் இணைப்புகள் நிராகரிக்கப்படும். வெளியிலிருந்து பார்க்கும்போது அறிகுறி ஒன்றாகவே இருக்கும் என்பதால், configuration கோப்புகளைத் திருத்தும் முன் இரண்டு இடங்களையும் சரிபார்க்கவும்.
மற்றொரு கணினியிலிருந்து ஒரு TCP port-ஐச் சரிபார்ப்பது எளிது:
sudo apt install -y netcat-openbsd
nc -vz 203.0.113.10 25565UDP-ஐ அந்த முறையில் சோதிக்க முடியாது. மூடப்பட்ட UDP port பொதுவாக எந்தப் பதிலும் தராது, எனவே பதில் கிடைக்காத probe எதையும் உறுதிப்படுத்தாது. அதற்குப் பதிலாக server பக்கத்திலிருந்து உறுதிப்படுத்தவும்; நீங்கள் எதிர்பார்க்கும் port-ல் game process இயங்குகிறதா என்று பார்க்கவும்:
sudo ss -lunp | grep 2456RCON எனப்படும் remote console protocol-ஐ ஒருபோதும் இணையத்தில் பகிரங்கப்படுத்த வேண்டாம். இது 25575 port-ல் இயங்கும், plaintext இணைப்பில் அனுப்பப்படும் ஒற்றை கடவுச்சொல் ஆகும். இதை 127.0.0.1-ல் bind செய்து, SSH tunnel வழியாக அணுகவும். Game server-ஐ ஒரு unprivileged user கணக்கின் கீழ் இயக்கவும்; அப்போதுதான் mod-ல் ஏதேனும் bug இருந்தால், அது machine-ன் மற்ற பகுதிகளைப் பாதிக்காது. புதிய VPS-ல் முதல் பத்து நிமிடங்கள் பகுதியில், இந்தத் தலைப்பிற்குத் தேவையான user account மற்றும் SSH hardening முறைகள் விளக்கப்பட்டுள்ளன.
systemd மூலம் server-ஐ இயக்குதல், அதன் மூலம் தானியங்கி மறுதொடக்கம் (restart)
SSH session-ல் கையால் தொடங்கப்படும் ஒரு server, அந்த 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-க்குப் பிறகு server-ஐ மீண்டும் கொண்டு வரும், அதே சமயம் முறையான shutdown-க்குப் பிறகு அதை நிறுத்தி வைக்கும்; இதுவே நீங்கள் விரும்புவது. நீங்கள் வேண்டுமென்றே server-ஐ நிறுத்தும்போது Restart=always உங்களைத் தடுக்கும். TimeoutStopSec=180 பார்ப்பதை விட முக்கியமானது. systemctl stop, SIGTERM சிக்னலை அனுப்பும்; vanilla Minecraft server அந்த சிக்னலைப் பெற்று, வெளியேறுவதற்கு முன்பு உலகத் தரவுகளை (world data) சேமிக்கும். குறிப்பிட்ட கால அவகாசம் முடிந்ததும், systemd SIGKILL-ஐ அனுப்பும். ஒரு பெரிய world-ஐ சேமிக்க இயல்பான 90 வினாடிகளை விட அதிக நேரம் தேவைப்படலாம்; 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 அல்லது server-ன் திறனை விட அதிகமான heap அளவு காரணமாக இருக்கும்.
systemd-ல் interactive console கிடையாது, எனவே அதை முன்கூட்டியே திட்டமிடுங்கள். கட்டளைகளுக்கு localhost-ல் RCON-ஐப் பயன்படுத்தவும் அல்லது tmux session-க்குள் server-ஐ இயக்கவும். இது நீண்ட நேரம் இயங்கும் Claude Code session-ஐ VPS-ல் login-களுக்கு இடையே உயிர்ப்புடன் வைத்திருக்கும் அதே பழக்கமாகும்.
Steam மூலம் விநியோகிக்கப்படும் விளையாட்டுகளுக்கு, இவை அனைத்திற்கும் முன்பாக SteamCMD தேவை. Ubuntu package ஒரு 32 bit binary என்பதால், architecture வரி அங்கு உள்ளது. அந்த வரியைத் தவிர்த்தால், apt எந்த installation candidate-ம் இல்லை என்று தெரிவிக்கும்:
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y steamcmdசில game server-கள் நீண்ட நேரம் இயங்க இயங்க நினைவகப் பயன்பாட்டை (memory usage) அதிகரிக்கும். இதற்குத் தீர்வை விட, அமைதியான நேரத்தில் திட்டமிடப்பட்ட மறுதொடக்கம் (scheduled restart) ஒரு சிறந்த மாற்று வழியாகும். cron entry-ஐ விட, systemctl restart-ஐ அழைக்கும் systemd timer-ஐப் புரிந்துகொள்வது எளிது. ஏனெனில், systemctl list-timers அது அடுத்த முறை எப்போது இயங்கும் என்பதைத் துல்லியமாகக் காட்டும்.
அட்டவணைப்படி உலகத்தை (world) காப்புப்பிரதி எடுத்தல்
ஒரு game server-ல் உள்ள அனைத்தையும் மீண்டும் உருவாக்க முடியும், ஆனால் world directory மற்றும் player data ஆகியவற்றைத் தவிர. விளையாட்டை மீண்டும் நிறுவுவதற்கு சில நிமிடங்கள் மட்டுமே ஆகும். ஆனால் உங்கள் குழு உருவாக்கியவற்றை மீண்டும் கட்டுவதற்கு மாதங்கள் தேவைப்படும்.
எந்தவொரு தரவும் எழுதப்படாத நிலையில் எடுக்கப்படும் காப்புப்பிரதியே பாதுகாப்பானது. இதை உறுதிப்படுத்த, ஒரு நிமிடம் 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தினசரி server-ஐ நிறுத்துவது சாத்தியமில்லை என்றால், அதற்குப் பதிலாக world-ஐ முதலில் flush செய்யவும். Minecraft console-ல், save-off autosave-ஐ நிறுத்தும், save-all flush நிலுவையில் உள்ள அனைத்தையும் எழுதும், மேலும் நகல் எடுத்தல் முடிந்ததும் save-on autosave-ஐ மீண்டும் இயக்கும். Server தரவை எழுதிக்கொண்டிருக்கும்போது world-ஐ நகலெடுத்தால், பாதியிலேயே எழுதப்பட்ட region file கிடைக்க வாய்ப்புள்ளது; இதை நீங்கள் restore செய்ய முயற்சிக்கும்போது மட்டுமே கண்டறிய முடியும்.
குறைந்தது ஒரு நகலையாவது machine-க்கு வெளியே வைத்திருக்கவும். ஒரே disk-ல் எடுக்கப்படும் காப்புப்பிரதி, அந்த disk பழுதடைந்தால் பயன்படாது. Provider snapshot என்பது ஒரு வசதி மட்டுமே, அது காப்புப்பிரதி அல்ல; ஏனெனில் அது உங்கள் account-க்குள்ளேயே இருப்பதால், account முடக்கப்பட்டால் அதுவும் கிடைக்காது. Off-site storage-க்கு திட்டமிடப்பட்ட restic காப்புப்பிரதிகள் retention மற்றும் deduplication ஆகியவற்றை நிர்வகிக்கும், எனவே மாதக்கணக்கில் எடுக்கப்படும் தினசரி world நகல்கள் உங்கள் volume-ஐ நிரப்பாது.
பிறகு, ஒருமுறை restore செய்து பார்க்கவும். நீங்கள் ஒருபோதும் restore செய்து பார்க்காத காப்புப்பிரதி, வெறும் ஊகம் மட்டுமே. நேற்று இரவு எடுக்கப்பட்ட archive-ஐ ஒரு spare directory-ல் பிரித்தெடுத்து, ஒரு test server-ஐ அதன் மூலம் இயக்கி, world சரியாக load ஆகிறதா மற்றும் நீங்கள் கட்டிய கட்டிடங்கள் அப்படியே உள்ளனவா என்பதை உறுதிப்படுத்தவும்.
வாங்குவதற்கு முன் சரிபார்க்கவும்
ஒரு வருடத்திற்கு வாங்குவதற்குப் பதிலாக ஒரு மாதத்திற்கு மட்டும் வாங்கி, ஒரு மாலைப் பொழுதில் உண்மையான வீரர்களைக் கொண்டு சோதிக்கவும். ஒற்றை thread sysbench அளவீட்டை இயக்கி, பிறகு ஒவ்வொரு வீரரையும் server-ஐ நோக்கி mtr-ஐ இயக்கச் சொல்லுங்கள். முழுமையான VPS benchmark செயல்முறை அந்த கருவிகளைப் பயன்படுத்துவது எப்படி என்பதையும், மோசமான முடிவு எப்படி இருக்கும் என்பதையும் விளக்குகிறது. மேலும், ஒரு VPS-ன் உண்மையான மாதாந்திர செலவு என்பது, திட்டத்தின் பக்கத்தில் பெரியதாக அச்சிடப்பட்டிருக்கும் வளத்திற்காக அல்லாமல், உங்கள் server-ன் செயல்திறனைக் கட்டுப்படுத்தும் வளத்திற்காகவே நீங்கள் பணம் செலுத்துகிறீர்கள் என்பதை உறுதிப்படுத்த உதவும்.
இந்தக் கட்டுரை முடிவடையும் இடத்திலிருந்து அடுத்த இரண்டு கட்டுரைகள் தொடர்கின்றன. VPS-ல் Minecraft server-ஐ உருவாக்குதல் என்பது மேலே கூறப்பட்ட அனைத்தையும், பெரும்பாலானோர் தொடங்கும் விளையாட்டை வைத்து படிப்படியாக விளக்குகிறது. VPS-ல் இயக்கக்கூடிய பிற பயன்பாடுகளின் பட்டியல் என்பது, விளையாட்டு நேரங்களுக்கு இடையில் அந்த server பயனுள்ள வேறு ஏதேனும் பணிகளைச் செய்ய விரும்பினால் வாசிப்பதற்கு ஏற்றது.
FAQ
கேமிங் PC வாங்குவதற்குப் பதிலாக VPS-ல் விளையாட முடியுமா?
முடியாது. சாதாரண VPS-ல் GPU இருக்காது, provider-ன் console-க்காக ஒரு virtual display adapter மட்டுமே இருக்கும். எனவே, desktop-ஐ நிறுவிய பிறகு glxinfo -B மென்பொருள் renderer-ஐ llvmpipe என்று காட்டும், மேலும் 3D கேம்கள் மிகக் குறைந்த frames per second வேகத்திலேயே இயங்கும். GPU இணைக்கப்பட்டிருந்தாலும், remote play ஒவ்வொரு frame-க்கும் video encoding மற்றும் decoding செய்வதால் காலதாமதம் ஏற்படும்; RDP மற்றும் VNC இதற்காக உருவாக்கப்பட்டவை அல்ல. உங்கள் குழுவினர் இணையும் dedicated server-ஐ host செய்யவே VPS பயன்படுகிறது. உங்களுக்கு விளையாட வேண்டும் என்றால், GPU நேரத்தை வாடகைக்கு எடுங்கள் அல்லது cloud gaming சேவையைப் பயன்படுத்துங்கள்.
கேம் server-க்கு எத்தனை CPU cores தேவை?
பெரும்பாலான கேம்களுக்கு எட்டு மெதுவான cores-ஐ விட இரண்டு வேகமான cores சிறந்தது. ஏனெனில், கேம் உலகம் ஒரு முக்கிய thread-ல் இயங்குகிறது, அந்த thread 50 ms காலக்கெடுவுக்குள் முடிவடைய கூடுதல் cores உதவாது. sysbench cpu --cpu-max-prime=20000 --threads=1 run மூலம் திட்டங்களை ஒப்பிட்டு, events per second அளவைப் பாருங்கள். ஒரே server-ல் மற்றொரு server அல்லது database-ஐ இயக்கும்போது கூடுதல் cores பயனுள்ளதாக இருக்கும், ஏனெனில் அந்த வேலைகள் tick thread-ன் நேரத்தை எடுத்துக்கொள்ளாது.
Minecraft server-க்கு எவ்வளவு RAM தேவை?
சுமார் 10 வீரர்கள் கொண்ட vanilla world-க்கு 2 GB heap தேவை, அதே எண்ணிக்கையிலான வீரர்களுக்கு பெரிய modpack-க்கு 8 GB தேவை. -Xms மற்றும் -Xmx ஆகியவற்றை ஒரே மதிப்பில் அமைக்கவும். இயங்குதளத்திற்காக 1 GB முதல் 2 GB வரை RAM-ஐ காலியாக விடவும், ஏனெனில் JVM heap-க்கு வெளியே நினைவகத்தைப் பயன்படுத்துகிறது மற்றும் kernel-க்கு page cache தேவைப்படுகிறது. heap அளவு இயந்திரத்தின் திறனை விட அதிகமாக இருந்தால், kernel அந்த process-ஐ நிறுத்திவிடும்; இது Java பிழையாக இல்லாமல் dmesg-ல் out of memory வரியாகக் காட்டப்படும்.
CPU மற்றும் RAM காலியாக இருந்தும் ஏன் வீரர்கள் lag-ஐ உணர்கிறார்கள்?
இதற்கு இரண்டு காரணங்கள் இருக்கலாம். server log-ல் Can't keep up! Is the server overloaded? உள்ளதா என்று பாருங்கள்; இது மற்ற cores சும்மா இருந்தாலும், முக்கிய thread அதன் 50 ms tick வரம்பைத் தாண்டியது என்று அர்த்தம். அந்த வரி இல்லையென்றால், அது network பிரச்சினை. எனவே, ஒவ்வொரு வீரரையும் உங்கள் server முகவரிக்கு எதிராக mtr -rwzc 100 203.0.113.10-ஐ இயக்கச் சொல்லி, கடைசி வரியைப் பாருங்கள். மேலும் vmstat 1-ல் st நெடுவரிசையைச் சரிபார்க்கவும்: steal time சில சதவீதத்திற்கு மேல் இருந்தால், host அதிகப்படியான வாடிக்கையாளர்களைக் கொண்டுள்ளது என்று அர்த்தம்; எனவே நீங்கள் பார்க்கும் idle CPU உண்மையில் உங்களுக்குக் கிடைக்காது.
கேம் server-க்கு எந்தெந்த ports-ஐத் திறக்க வேண்டும்?
கேமின் சொந்த port மற்றும் SSH ஆகியவற்றை மட்டும் திறக்கவும். Minecraft Java TCP 25565-ஐயும், Minecraft Bedrock UDP 19132-ஐயும், Valheim UDP 2456 மற்றும் 2457-ஐயும், Palworld UDP 8211-ஐயும் பயன்படுத்துகின்றன. ufw enable-ஐ இயக்கும் முன் SSH விதியைச் சேர்க்கவும், இல்லையெனில் நீங்கள் server-க்கான அணுகலை இழப்பீர்கள். பல providers தங்கள் control panel-ல் இரண்டாவது firewall-ஐ வைத்திருப்பார்கள் என்பதை நினைவில் கொள்ளுங்கள்; port இரண்டிலும் திறந்திருக்க வேண்டும். RCON-ஐ 25575 port-ல் இணையத்திற்குத் திறக்க வேண்டாம், ஏனெனில் அதன் கடவுச்சொல் plaintext-ஆக அனுப்பப்படும்.