איך לבחור שרת VPS לשרת משחקים: המדריך המלא
בחירת VPS לשרת משחקים דורשת דגש על מהירות ליבה בודדת וזיכרון RAM מספק. המדריך מסביר על חשיבות המיקום הגיאוגרפי להפחתת Latency, ניהול פורטים, הגדרות systemd וגיבויים.
למה הכוונה במונח "שרת VPS למשחקים"?
שרת VPS המיועד לשרתי משחקים הוא רכישה כדאית למטרה אחת בלבד: הרצת שרת ייעודי (dedicated server) שאליו אתם וחבריכם מתחברים מהמחשבים האישיים שלכם. זוהי רכישה לא מוצלחת למטרה השנייה שאנשים נוטים לייחס למונח זה, והיא משחק במשחק ישירות על גבי ה-VPS באמצעות שולחן עבודה מרוחק. שתי המשימות הללו דורשות חומרה שונה בתכלית. שרת ייעודי זקוק לליבת CPU אחת מהירה ולדי מספיק RAM כדי להחזיק את עולם המשחק בזיכרון. משחק ישיר דורש GPU (יחידת עיבוד גרפי), ותוכנית VPS סטנדרטית אינה כוללת רכיב כזה.
כל המידע להלן מתייחס למשימה הראשונה. המשימה השנייה שווה שתי דקות מזמנכם, כיוון שאנשים רבים רוכשים עבורה את השרת הלא נכון.
מדוע לא ניתן להריץ משחקים על VPS
שרת VPS סטנדרטי מספק ליבות CPU וירטואליות ללא כרטיס גרפי. שום רכיב חומרה אינו מועבר (passthrough) מהמארח הפיזי, ולכן אין מנוע רינדור חומרה שהמשחק יכול להשתמש בו. ניתן לבדוק מה קיבלת בפועל:
sudo apt install -y pciutils
lspci | grep -iE "vga|3d"התוצאה היא מתאם תצוגה וירטואלי, כגון התקן Cirrus Logic או virtio GPU. הוא קיים כדי לאפשר למסוף הניהול של ספק הענן להציג לך מסך, ואין מאחוריו שום האצת תלת-ממד. אם תתקין סביבת שולחן עבודה ושרת VNC, הפקודה glxinfo -B תדווח שהמרנדר הוא llvmpipe, שהוא מנוע הרינדור התוכנתי של Mesa שרץ על ה-CPU. משחק תלת-ממד מודרני שמתרנדר על ידי ה-CPU ירוץ בקצב של פריימים בודדים לשנייה, ולכן הוא אינו שחיק עוד לפני שהמידע עוזב את השרת. מופעי Windows נתקלים באותה בעיה מכיוון אחר. כותרים רבים נסגרים בעת ההפעלה עם הודעת שגיאה על אי-יכולת ליצור התקן Direct3D, כיוון שאין מתאם תצוגה שניתן ליצור עליו התקן כזה.
הבעיה השנייה היא הדרך חזרה אליך. משחק על שרת מרוחק אומר שכל פריים מקודד לווידאו, נשלח דרך האינטרנט ומפוענח על המסך שלך. זה מוסיף זמן קידוד ופענוח מעבר לזמן התגובה (input lag) של המשחק עצמו, ופרוטוקולי RDP ו-VNC תוכננו עבור שולחנות עבודה ולא עבור תנועה של 60 פריימים לשנייה. שירותי גיימינג בענן פותרים זאת באמצעות חומרת GPU אמיתית ופרוטוקול הזרמה ייעודי. ב-VPS רגיל אין אף אחד מאלה. אם ברצונך לשחק, שכור זמן GPU. אם ברצונך לארח, המשך לקרוא.
מה שרת משחקים ייעודי באמת צריך
שרת משחקים הוא לולאת סימולציה. הוא מחזיק את עולם המשחק בזיכרון ומקדם אותו מספר קבוע של פעמים בשנייה. לאחר מכן, כל שחקן מחובר מקבל את החלק של העולם שהוא יכול לראות.
המבנה הזה קובע את דרישות החומרה. הלולאה רצה ברובה על thread יחיד, לכן מהירות הליבה חשובה יותר ממספר הליבות. העולם נמצא בזיכרון, ולכן ה־RAM הוא בדרך כלל המגבלה הראשונה שבה תיתקלו. הדיסק שקט במהלך המשחק ועמוס בזמן טעינה ושמירה. נתיב הרשת שלכם קובע את ה־ping, ושום חבילת תוכנית (plan tier) לא תשנה זאת.
מהירות ליבה בודדת עדיפה על ריבוי ליבות
רוב שרתי המשחקים מריצים את לוגיקת העולם על thread מרכזי אחד. לולאת ה-tick של Minecraft ומנוע ה-server frame של Source פועלים שניהם בדרך זו. לכל tick יש דדליין לביצוע. Minecraft Java רץ ב-20 ticks לשנייה, מה שנותן לכל tick תקציב של 50 מילי-שניות. כאשר העבודה אינה מסתיימת בזמן, השרת מדפיס בדיוק את ההודעה הבאה:
[12:04:51] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 2547ms or 50 ticks behindשורה זו מעידה על כך ש-thread אחד חרג ממכסת הזמן שלו. הוספת ליבות לא תעניק ל-thread הזה זמן נוסף. תוכנית עם 2 ליבות vCPU מהירות תשמור על קצב tick יציב, בעוד תוכנית עם 8 ליבות vCPU איטיות תסבול מנפילות, כיוון שרק אחת מתוך השמונה מבצעת את העבודה הקריטית.
מדדו את מהירות ה-thread הבודד לפני שאתם מתחייבים לתוכנית כלשהי:
sudo apt install -y sysbench
sysbench cpu --cpu-max-prime=20000 --threads=1 runקראו את השורה events per second. המספר כשלעצמו אינו אומר דבר, אך הוא בעל משמעות רבה בהשוואה; לכן, הריצו את הבדיקה על שתי תוכניות מועמדות והשוו את התוצאות זו לצד זו. הרצה מלאה של benchmark ל-VPS מכסה את ביצועי הדיסק והרשת באותו אופן.
לליבות נוספות יש עדיין תפקיד חשוב. הן מריצות את שרת המשחק השני, את מסד הנתונים, את הגיבוי הלילי ואת ה-chunk pre-generator מבלי לגזול זמן מה-thread המרכזי. תוכנות שרת למדו גם הן להתפצל, ו-Paper, גרסה פופולרית של שרת Minecraft, מעבירה חלק מהעבודה מחוץ ל-thread ה-tick המרכזי. לכן, התצורה המומלצת לרכישה היא מספר קטן של ליבות מהירות, ולא הרבה ליבות איטיות.
מספר אחד לעולם לא מופיע בדף התוכנית, והוא זה שקובע האם הליבה המהירה ששילמתם עליה היא אכן שלכם:
vmstat 1 5העמודה st מייצגת את אחוז הזמן שבו ה-vCPU שלכם היה מוכן לעבודה, אך המארח הפיזי הקצה את הליבה למישהו אחר. ערך st יציב הגבוה מאחוזים בודדים מעיד על כך שהמארח עמוס מדי (oversold). השחקנים ירגישו זאת כגמגום (stutter), בעוד ש-top בשרת שלכם עדיין יציג CPU פנוי, כיוון שזמן ה-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. מדובר בהנחיות כלליות, ולא במספרים שנמדדו על שרת ספציפי. Minecraft Java בגרסת Vanilla פועל היטב עם 2 GB של heap עבור כ-10 שחקנים. אותו מספר שחקנים בחבילת מודים גדולה ידרוש 8 GB, כיוון שהמודים מוסיפים ישויות ומבנים שנוצרים בעולם, וכולם נשמרים בתוך ה-heap. הדרישה המינימלית הרשמית של Valheim היא 2 GB, אך מפעילים עם עולם קטן מדווחים שהתהליך מתייצב סביב 3 GB, לכן 4 GB היא נקודת התחלה הגיונית. Palworld הוא החריג עם 16 GB עבור 32 שחקנים, כפי שממליצה חברת Pocketpair.
צריכת ה-RAM אינה גדלה ליניארית לפי מספר החיבורים, אלא לפי היקף העולם הטעון. כל שחקן שומר את האזור שסביבו טעון בזיכרון, לכן שני שחקנים שעומדים יחד צורכים הרבה פחות משאבים משני שחקנים שחוקרים קצוות מנוגדים של המפה. זו הסיבה ש"RAM לכל שחקן" הוא רק הערכה גסה, בעוד ש"RAM לכל אזור פעיל" הוא הגורם המכריע, וזו הסיבה שקבוצה קטנה שאוהבת לחקור יכולה לחרוג ממכסת זיכרון שתוכננה עבור כמות כפולה של שחקנים.
שרתי Java דורשים שני כללים נוספים. הגדירו את ה-heap המינימלי והמקסימלי לאותו ערך כדי שה-JVM לעולם לא יעצור כדי לשנות את גודלו:
java -Xms4G -Xmx4G -jar server.jar noguiהשאירו מרווח נשימה. ה-JVM משתמש בזיכרון מחוץ ל-heap שהקציתם עבור מחסניות תהליכונים (thread stacks) ומאגרים מקוריים (native buffers), וה-kernel זקוק ל-page cache כדי לקרוא קובצי עולם במהירות. בשרת עם 6 GB של RAM, הקצאת heap של 4 GB היא הגיונית, בעוד ש-6 GB אינה מומלצת.
שני סוגי כשלים בזיכרון נראים שונים לחלוטין, לכן חשוב להכיר את שניהם. heap קטן מדי גורם לשגיאות בתוך Java, והשרת בדרך כלל ממשיך לקרטע:
java.lang.OutOfMemoryError: Java heap spaceheap גדול יותר מהזיכרון הפיזי בשרת גורם להריגת התהליך מבחוץ. הקונסולה תציג רק Killed, וההוכחה לכך תופיע בלוג של ה-kernel:
sudo dmesg -T | grep -i "out of memory"הוספת swap תמנע את הריגת התהליך אך לא תפתור את הבעיה. לולאת tick שצריכה לקרוא את העולם מתוך ה-swap תחמיץ כל deadline, והתוצאה תהיה שרת קפוא במקום שרת שקרס.
הערת גרסה, נכון לאוגוסט 2026: Minecraft Java 1.20.5 ומעלה דורשים Java 21. סביבת הרצה (runtime) ישנה יותר תתחיל ותיכשל עם שגיאת unsupported class file version, שנראית כמו הודעת קומפילציה ומבלבלת משתמשים רבים בפעם הראשונה שהם נתקלים בה.
sudo apt install -y openjdk-21-jre-headless
java -versionהאם מהירות הדיסק משמעותית עבור שרת משחקים?
פחות ממה שאנשים מצפים במהלך המשחק, אך היא קריטית בשני רגעים ספציפיים. העולם נטען לזיכרון בעת העלייה ונכתב חזרה בעת שמירה אוטומטית, לכן מהירות הדיסק באה לידי ביטוי בעלייה איטית ובקפיאה בזמן ביצוע השמירה. בין לבין, רוב פעולות הקריאה מתבצעות מה-RAM.
שני דברים הופכים את הדיסק למשמעותי יותר ממה שסיכום זה מרמז. חקירת העולם טוענת אזורים או "צ'אנקים" חדשים מהדיסק בזמן שהשחקנים נעים, וקריאה זו מתרחשת בתוך תקציב ה-tick. שמירה אוטומטית בעולם גדול כותבת כמות גדולה של נתונים בבת אחת, ועל כונן איטי הכתיבה חוסמת את הלולאה למשך זמן רב מספיק כדי להציג את אזהרת ה-"Can't keep up" שהוזכרה לעיל. שתי הבעיות הללו הן בעיות latency ולא בעיות throughput, וזו הסיבה ש-הפער בין NVMe ל-SATA SSD ב-VPS משמעותי כאן יותר ממה שנתוני המגה-בייט לשנייה המוצהרים מרמזים. מה שחשוב הוא כמה זמן לוקח לפעולה קטנה אחת להסתיים.
יש לתכנן את נפח האחסון בהתאם לצמיחה. העולם גדל בכל פעם שמישהו הולך למקום חדש, והגיבויים שלכם מכפילים את משקלו. הריצו את du -sh world פעם בשבוע במשך חודש ותדעו מהו קצב הצמיחה האמיתי שלכם.
קצב ה-Tick, ה-ping, וההבדל ביניהם
קצב ה-Tick הוא מספר הפעמים בשנייה שבהן השרת מחשב מחדש את מצב העולם. Minecraft Java פועל ב-20. שרתי Source engine פועלים בדרך כלל ב-64. ב-Minecraft לא ניתן לרכוש קצב גבוה יותר, כיוון שהקצב הוא חלק מתכנון המשחק; לכן, המטרה היא לשמור על 20 ולא לחרוג ממנו.
ה-ping הוא זמן הלוך-חזור של התקשורת בין שחקן בודד לבין השרת. שני המדדים הללו מייצרים תלונות שונות, לכן יש להפריד ביניהם לפני שמשקיעים כסף. כאשר השרת מחמיץ ticks, כל השחקנים חווים "קפיצות" (rubber-banding) באותו רגע, ולוג השרת מציין זאת בטקסט ברור. כאשר לשחקן אחד יש נתיב רשת ארוך, רק אותו שחקן יחווה השהיה (lag) בעוד שאר הקבוצה תתפקד כרגיל. מעבד חזק יותר לעולם לא יפתור את המקרה השני.
השהיה (Latency) תלויה במיקום, לא במסלול השירות
אור בסיב אופטי נע במהירות של כ-200 קילומטרים למילי-שנייה. הלוך-חזור מכסה את המרחק פעמיים, לכן הרף התחתון הוא בערך 1 ms לכל 100 ק"מ בין השחקן לשרת. אף ספק אינו יכול לעקוף זאת, ושום שדרוג של תוכנית שירות לא ישנה זאת.
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
}
]אלו הם רפים תחתונים המחושבים לפי מרחק מעגל גדול. סיב אופטי אמיתי אינו עובר בקו ישר, וכל נתב בנתיב מוסיף השהיה קלה, לכן תוצאה ריאלית טובה נמצאת בערך בפי שניים מהרף התחתון. שחקן בטורונטו המתחבר לשרת בניו יורק, במרחק 550 ק"מ, נהנה מרף תחתון של 5.5 ms ובדרך כלל יראה תוצאה של עשרות בודדות. הקו מלוס אנג'לס לסידני הוא בעל רף תחתון של 120.7 ms, ושום סכום כסף לא ישנה זאת.
לכן, מקמו את השרת קרוב לאנשים שמשחקים בו. אם הקבוצה שלכם מפוצלת מעבר לאוקיינוס, מישהו יקבל את הנתיב הארוך, והפתרון ההוגן הוא בדרך כלל לבחור באזור שבו נמצאים רוב השחקנים.
מדדו את הנתיב במקום לנחש אותו:
sudo apt install -y mtr-tiny
mtr -rwzc 100 203.0.113.10קראו תחילה את השורה האחרונה. שורה זו היא השרת, וה-loss וה-latency שלה הם היחידים שקובעים כיצד המשחק ירגיש. loss שמופיע בנתב ביניים בעוד הנתב האחרון תקין, הוא כמעט תמיד תוצאה של ICMP rate limiting באותו נתב, כיוון שנתבים נותנים עדיפות נמוכה למענה לחבילות בדיקה בעודם מעבירים תעבורה אמיתית כסדרה. בקשו מכל שחקן להריץ את הבדיקה לעבר השרת, כיוון שכל אחד מהם עובר בנתיב שונה.
כיצד מחושב הרף התחתון של הלוך-חזור
אור בזכוכית נע במהירות של כשני שלישים ממהירותו בריק, מה שמתרגם ל-200 ק"מ למילי-שנייה בקירוב. הלוך-חזור מכסה את המרחק פעמיים, לכן הרף התחתון במילי-שניות הוא המרחק בכיוון אחד בקילומטרים חלקי 100. המרחק בין ניו יורק ללונדון הוא 5,570 ק"מ, וחילוק של 5570 ב-100 נותן 55.7 ms. כל מספר שיימדד יהיה גבוה מזה, כיוון שכבלים עוקבים אחר קווי חוף ונתבים זקוקים לזמן עיבוד.
פתחו רק את הפורטים הנדרשים למשחק
שרת משחק זקוק לפורט אחד או שניים פתוחים ותו לא. ברירות המחדל הנפוצות הן:
- Minecraft Java Edition: TCP 25565
- Minecraft Bedrock Edition: UDP 19132
- Valheim: UDP 2456 וגם UDP 2457
- Palworld: UDP 8211
- משחקי מנוע Source כגון Counter-Strike 2: UDP 27015
עיינו בתיעוד של המשחק עצמו, שכן כותרים רבים משתמשים בפורט שאילתות (query port) נוסף. Valheim הוא הדוגמה המובהקת ביותר: פורט 2456 מעביר את תעבורת המשחק, ופורט 2457 עונה לשאילתות שרת של Steam, מה שגורם לשרת שלכם להופיע ברשימת השרתים. פתיחת פורטים אלו ב-TCP לא תועיל, כיוון ש-Valheim משתמש ב-UDP בלבד.
אפשרו גישת SSH לפני הפעלת ה-firewall, אחרת תנעלו את עצמכם מחוץ לשרת:
sudo ufw allow 22/tcp
sudo ufw allow 25565/tcp
sudo ufw enable
sudo ufw status verboseספקי שירות רבים מפעילים גם firewall רשתי בלוח הבקרה שלהם, בנפרד מזה שעל השרת. פורט שפתוח ב-ufw אך סגור בלוח הבקרה יחסום חיבורים, והתסמין מבחוץ יהיה זהה; לכן, בדקו בשני המקומות לפני שתתחילו לערוך קובצי תצורה.
בדיקת פורט TCP ממכונה אחרת היא פשוטה:
sudo apt install -y netcat-openbsd
nc -vz 203.0.113.10 25565לא ניתן לבדוק פורט UDP בדרך זו. פורט UDP סגור הוא בדרך כלל שקט, כך שבדיקה שלא מקבלת מענה אינה מעידה על דבר. במקום זאת, אשרו זאת מצד השרת ובדקו שתהליך המשחק מאזין לפורט המצופה:
sudo ss -lunp | grep 2456לעולם אל תחשפו את RCON, פרוטוקול הקונסולה המרוחקת, לאינטרנט. מדובר בסיסמה יחידה שנשלחת בחיבור טקסט גלוי, כברירת מחדל בפורט 25575. הגדירו אותו להאזנה ל-127.0.0.1 וגשו אליו דרך מנהרת SSH. הריצו את שרת המשחק כמשתמש ללא הרשאות מיוחדות (unprivileged user), כך שבאג ב-mod לא יוכל להגיע לשאר חלקי המכונה. המדריך עשר הדקות הראשונות ב-VPS חדש מכסה את יצירת חשבון המשתמש ואת הקשחת ה-SSH, פעולות שסעיף זה מניח שכבר ביצעתם.
הרצת השרת תחת systemd כדי להבטיח הפעלה מחדש
שרת שמופעל ידנית בתוך session של SSH קורס עם סגירת ה־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.targetההגדרה Restart=on-failure מחזירה את השרת לפעולה לאחר קריסה ומשאירה אותו כבוי לאחר כיבוי מסודר, וזהו המצב הרצוי. ההגדרה Restart=always תילחם בכם בכל פעם שתנסו לעצור את השרת באופן יזום. ההגדרה TimeoutStopSec=180 חשובה יותר ממה שהיא נראית. הפקודה systemctl stop שולחת אות SIGTERM; שרת Minecraft סטנדרטי קולט את האות הזה, שומר את העולם ויוצא. אם הזמן הקצוב פג, systemd שולח SIGKILL במקום. עולם גדול עלול לדרוש יותר מ־90 השניות המוגדרות כברירת מחדל לכתיבה, וכל מידע שלא הגיע לדיסק עד הגעת ה־SIGKILL יאבד.
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 או ב־heap גדול יותר מזיכרון השרת.
מכיוון ש־systemd לא מספק מסוף אינטראקטיבי, תכננו זאת מראש. השתמשו ב־RCON על localhost עבור פקודות, או הריצו את השרת בתוך session של tmux, אותו הרגל ששומר על session פעיל של Claude Code בשרת VPS בין התחברויות.
משחקים המופצים דרך Steam דורשים את SteamCMD לפני כל שלב אחר. החבילה ב־Ubuntu היא קובץ בינארי של 32 ביט, וזו הסיבה לשורת ה־architecture. אם תדלגו על שורה זו, apt ידווח שאין מועמד להתקנה:
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y steamcmdצריכת הזיכרון של שרתי משחק מסוימים עולה ככל שהם רצים זמן רב יותר, וביצוע הפעלה מחדש מתוזמנת בשעות שקטות הוא הפתרון המקובל במקום תיקון שורשי. קל יותר להבין timer של systemd שמפעיל את systemctl restart מאשר רשומה ב־cron, כיוון ש־systemctl list-timers מציג לכם בדיוק מתי הוא יופעל בפעם הבאה.
גיבוי עולם המשחק לפי לוח זמנים
כל רכיב בשרת משחק ניתן להחלפה, למעט תיקיית העולם ונתוני השחקנים. התקנה מחדש של המשחק אורכת דקות ספורות, אך שחזור המבנים שבנתה הקבוצה שלכם עשוי לקחת חודשים.
גיבוי בטוח הוא כזה שמתבצע כאשר אין כתיבה לקבצים. עצירת השרת לדקה היא הדרך הפשוטה ביותר להבטיח זאת:
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אם השבתה לילית אינה באה בחשבון, בצעו תחילה flush לעולם. בקונסולת Minecraft, הפקודה save-off עוצרת את השמירה האוטומטית, save-all flush כותבת את כל הנתונים הממתינים, ו-save-on מפעילה מחדש את השמירה האוטומטית לאחר סיום ההעתקה. העתקת עולם בזמן שהשרת נמצא באמצע תהליך כתיבה עלולה להוביל לקובץ region חלקי, תקלה שלא תתגלה עד היום שבו תזדקקו לשחזור.
שמרו עותק אחד לפחות מחוץ למכונה. גיבוי על אותו דיסק לא ישרוד כשל בדיסק, וצילום מצב (snapshot) של ספק הענן הוא נוחות ולא גיבוי, כיוון שהוא נשמר באותו חשבון שעלול ללכת לאיבוד. גיבויים מתוזמנים באמצעות restic לאחסון מרוחק מטפלים בשימור נתונים ובמניעת כפילויות (deduplication), כך שחודש של גיבויים ליליים לא ימלא את נפח האחסון שלכם.
לאחר מכן, בצעו שחזור. גיבוי שמעולם לא שוחזר הוא בגדר ניחוש בלבד. חלצו את הארכיון של הלילה האחרון לתיקייה נפרדת, הפנו אליו שרת בדיקות, וודאו שהעולם נטען ושהמבנים נמצאים במקומם.
בדקו את השירות לפני התחייבות
רכשו מנוי לחודש אחד בלבד במקום לשנה, ובצעו בדיקה עם שחקנים אמיתיים במשך ערב אחד. הריצו את נתון ה-single thread ב-sysbench, ולאחר מכן בקשו מכל שחקן להריץ mtr לעבר השרת. הליך ה-benchmark המלא ל-VPS מפרט את השימוש בכלים אלו ומציג כיצד נראית תוצאה גרועה, ו-מה העלות האמיתית של VPS לחודש מסייע לכם לוודא שאתם משלמים על המשאב שמגביל את השרת שלכם, ולא על המשאב שמופיע באותיות הגדולות ביותר בדף התוכניות.
שני פוסטים ממשיכים מהנקודה שבה מדריך זה עוצר. הקמת שרת Minecraft על גבי VPS היא הגרסה המפורטת של כל האמור לעיל, עבור המשחק שרוב האנשים מתחילים איתו. הרשימה המורחבת של יישומים שניתן להריץ על VPS מומלצת לקריאה אם תרצו שהשרת יבצע פעולות מועילות נוספות בין ערבי המשחק.
FAQ
Can I play games on a VPS instead of buying a gaming PC?
No. A standard VPS has no GPU, only a virtual display adapter for the provider's console, so once a desktop is installed glxinfo -B reports the software renderer llvmpipe and a 3D game runs at a few frames per second. Even with a GPU attached, remote play adds video encoding and decoding to every frame's round trip, and RDP and VNC were never built for that. A VPS is for hosting the dedicated server your group connects to. Rent GPU time or use a cloud gaming service if what you want is to play.
How many CPU cores does a game server need?
Two fast cores beat eight slow ones for most games, because the world simulation runs on one main thread and extra cores cannot help that thread meet its 50 ms deadline. Compare candidate plans with sysbench cpu --cpu-max-prime=20000 --threads=1 run and read the events per second figure. Extra cores are worth paying for when you also run a second server or a database on the same box, since those workloads can then run without stealing time from the tick thread.
How much RAM does a Minecraft server need?
Around 2 GB of heap for a vanilla world with roughly 10 players, and 8 GB for a large modpack at the same player count. Set -Xms and -Xmx to the same value, and leave 1 GB to 2 GB of the machine free for the operating system, because the JVM uses memory outside the heap and the kernel needs page cache. A heap larger than the box gets the process killed by the kernel, which appears in dmesg as an out of memory line rather than as a Java error.
Why do my players lag when the server has spare CPU and RAM?
Two causes fit that description. Check the server log for Can't keep up! Is the server overloaded?, which means the single main thread missed its 50 ms tick budget while the other cores sat idle. If that line is absent, the problem is the network path, so have each player run mtr -rwzc 100 203.0.113.10 against your server address and read the last line. Also check the st column in vmstat 1: steal time above a few percent means the host is oversold, so the idle CPU you see is not actually available to you.
Which ports do I need to open for a game server?
Only the game's own port, plus SSH. Minecraft Java uses TCP 25565, Minecraft Bedrock uses UDP 19132, Valheim uses UDP 2456 and 2457, and Palworld uses UDP 8211. Add the SSH rule before you run ufw enable, or you lose access to the box. Remember that many providers run a second firewall in their control panel, and the port has to be open in both. Never open RCON on port 25575 to the internet, because it is one password sent in plaintext.