结论: 游戏服务器选型的核心顺序是 CPU 单核主频 > 内存容量 > 磁盘随机 IO > 网络质量,而不是核心数。Minecraft 类 Java 服吃单核主频、每 10 名在线玩家约需 1~1.5 GB 内存;Palworld 建议 4 核 16 GB 起;CS2 需 128 tick 下的高主频 CPU;所有游戏服必须配 UDP 防护,因为游戏流量几乎全是 UDP。
游戏服务器是服务器选型里最"反直觉"的一类:一台 32 核的电商级服务器,跑 Minecraft 可能还不如一颗 5.0 GHz 主频的 4 核机器流畅。原因很简单——绝大多数游戏服务端的主循环(Game Loop / Tick Loop)是单线程或弱多线程的,20 TPS 的 tick 预算只有 50 ms,单个 tick 卡住,全服玩家一起掉帧。
这篇文章按游戏逐个给配置,给换算公式,也给你可直接执行的部署与防护命令。
游戏服务器的配置逻辑和网站有什么不同?
结论:网站看并发总量,游戏看单帧耗时;网站可以横向扩展,游戏服大多数只能纵向堆料。
| 维度 | 网站服务器 | 游戏服务器 |
|---|---|---|
| 关键 CPU 指标 | 总核数、多核吞吐 | 单核主频、L3 缓存、IPC |
| 内存 | 按缓存与并发进程算 | 按在线玩家数与世界数据量算 |
| 网络协议 | TCP/HTTP 为主 | UDP 为主(少数用 TCP 或 Steam 的 UDP 封装) |
| 流量特征 | 突发、可缓存、可 CDN 分发 | 持续双向小包,不可缓存,必须直连 |
| 延迟敏感度 | 100~300 ms 可接受 | 超过 80 ms 玩家就能感知,FPS 类要求 < 50 ms |
| 扩展方式 | 加机器 + 负载均衡 | 主要靠升配,部分游戏支持多世界分片 |
| 安全威胁 | CC、SQL 注入、爬虫 | UDP Flood、反射放大、假人压服 |
一个重要的工程结论:游戏服的 CPU 选型要优先看单核睿频和架构 IPC,而不是核心数。 截至 2026 年,适合开游戏服的 CPU 大致有三类:
- 高主频消费级(如 Intel Core i9-14900K 系、AMD Ryzen 9 7950X/9950X 系):单核睿频 5.5 GHz 以上,适合 Minecraft、CS2、FiveM 这类单线程吃重的游戏。
- 高频服务器级(如 AMD EPYC 高频型号、Intel Xeon E-2400 系 / Xeon w3/w5):兼顾 ECC 内存与稳定性,适合长期开服的商业服。
- 云厂商的高频型实例(主频 3.8 GHz 以上的计算型实例):弹性好,适合活动服、测试服。
主流游戏配置对照表
结论:下面这张表可直接对号入座,玩家数指"同时在线(CCU)",不是注册用户数。
| 游戏 | 推荐 CPU | 10 人 | 30 人 | 50~80 人 | 内存公式 | 磁盘要求 |
|---|---|---|---|---|---|---|
| Minecraft(Paper/Purpur,原版) | 单核 ≥ 4.0 GHz | 2 核 / 4 GB | 4 核 / 8 GB | 6 核 / 12~16 GB | 2 GB 基础 + 0.1~0.15 GB/人 | NVMe SSD,世界存档随机写多 |
| Minecraft(大型 Modpack,ATM/RLCraft) | 单核 ≥ 4.5 GHz | 4 核 / 8 GB | 6 核 / 12 GB | 8 核 / 16~24 GB | 4 GB 基础 + 0.25 GB/人 | NVMe 必需 |
| 幻兽帕鲁 Palworld | 4 核 ≥ 3.5 GHz | 4 核 / 16 GB | 6 核 / 24 GB | 8 核 / 32 GB+ | 12 GB 基础 + 0.3~0.5 GB/人 | NVMe,档存档较大 |
| CS2 / CS:GO 社区服 | 单核 ≥ 4.5 GHz(128 tick) | 4 核 / 4 GB | 4 核 / 8 GB | 6 核 / 8~16 GB | 2 GB 基础 + 0.05 GB/人 | SSD 即可 |
| FiveM(GTA5 RP) | 4 核 ≥ 4.0 GHz | 4 核 / 8 GB | 6 核 / 16 GB | 8 核 / 24~32 GB | 6 GB 基础 + 0.3 GB/人 | NVMe,资源包大 |
| Valheim | 4 核 ≥ 3.5 GHz | 2 核 / 4 GB | 4 核 / 8 GB | 6 核 / 12 GB | 2 GB 基础 + 0.15 GB/人 | SSD,世界文件增长快 |
| Rust | 4 核 ≥ 4.0 GHz | 4 核 / 8 GB | 6 核 / 16 GB | 8 核 / 24 GB | 4 GB 基础 + 0.3 GB/人 | NVMe 推荐 |
| Terraria / 小型独立游戏 | 2 核 ≥ 3.0 GHz | 2 核 / 2 GB | 2 核 / 4 GB | 4 核 / 6 GB | 1 GB 基础 + 0.05 GB/人 | 普通 SSD |
玩家数 → 配置换算公式(通用版):
所需内存 = 基础内存 + 单玩家内存 × 峰值CCU
所需核数 = max(2, ceil(峰值CCU / 单核承载人数) + 1)
所需带宽(Mbps) ≈ 单玩家码率(kbps) × 峰值CCU / 1000 × 1.4(协议开销与突发余量)
所需磁盘随机写 IOPS ≈ 峰值CCU × 20(存档类游戏,含自动回档写入)单玩家码率参考(上行+下行合计):Minecraft 约 50~120 kbps;CS2 64 tick 约 60~100 kbps、128 tick 约 120~200 kbps;Palworld 约 100~250 kbps;FiveM 约 150~300 kbps;Rust 约 100~200 kbps。
举例:60 人同时在线的 Palworld 服 —— 内存 12 + 0.4×60 = 36 GB(取 32~48 GB 档),核数按单核 20 人算需 4 核,带宽 0.2×60×1.4 = 16.8 Mbps(取 20~30 Mbps)。
部署实操:以 Palworld 与 Minecraft 为例
结论:游戏服部署的关键是"独立的系统用户 + systemd 守护 + 定时存档备份",不要直接在前台跑。
先看机器底子够不够:
# 1) 单核性能粗测:单线程素数,events/sec 越高越好(4.0GHz 以上机器通常 > 1500)
sysbench cpu --cpu-max-prime=20000 --threads=1 run
# 2) 确认主频与是否关闭了节能(governor 应为 performance)
lscpu | egrep 'Model name|CPU max MHz|CPU MHz'
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# 3) 关闭节能,避免游戏 tick 抖动(需要 root)
sudo apt install -y cpufrequtils
echo 'GOVERNOR="performance"' | sudo tee /etc/default/cpufrequtils
sudo systemctl restart cpufrequtils
# 4) 内存与磁盘
free -h
fio --name=game --ioengine=libaio --direct=1 --rw=randwrite --bs=4k \
--numjobs=1 --iodepth=16 --runtime=30 --time_based --group_reporting \
--filename=/tmp/game.test --size=1GPalworld 专用服务端(Linux,SteamCMD 方式):
# 创建独立用户,禁止 root 直接运行游戏服
sudo useradd -m -s /bin/bash palworld
sudo apt update && sudo apt install -y lib32gcc-s1 lib32stdc++6 steamcmd
# 下载服务端
sudo -u palworld mkdir -p /opt/palworld && cd /opt/palworld
sudo -u palworld /usr/games/steamcmd +force_install_dir /opt/palworld \
+login anonymous +app_update 2394010 validate +quit创建 systemd 单元,保证崩溃自动重启:
# /etc/systemd/system/palworld.service
[Unit]
Description=Palworld Dedicated Server
After=network.target
[Service]
Type=simple
User=palworld
WorkingDirectory=/opt/palworld
ExecStart=/opt/palworld/PalServer.sh \
-publicip=<你的公网IP> -publicport=8211 \
-players=32 -useperfthreads -NoAsyncLoadingThread -multithread
Restart=always
RestartSec=10
LimitNOFILE=100000
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable --now palworld
sudo journalctl -u palworld -f # 实时看服日志
# 定时备份存档(每 30 分钟一次,保留最近 48 份)
sudo crontab -u palworld -l 2>/dev/null; echo '*/30 * * * * tar czf /opt/backup/pal-$(date +\%Y\%m\%d-\%H\%M).tar.gz -C /opt/palworld/Pal/Saved/SaveGames . && ls -t /opt/backup/pal-*.tar.gz | tail -n +49 | xargs -r rm -f' | sudo crontab -u palworld -Minecraft(Paper 1.21.x)侧,JVM 参数比配置更影响体验:
# 启动命令示例:10 GB 内存、Aikar's Flags 优化 GC
java -Xms10G -Xmx10G -XX:+UseG1GC -XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 \
-jar paper-1.21.4.jar nogui注意:-Xms 与 -Xmx 必须设成相同值,避免堆动态扩容造成 tick 卡顿;内存不要一次给太大,超过 12 GB 后 G1 的 GC 停顿反而变长。
网络、延迟与抗 DDoS:游戏服的生死线
结论:游戏服的防护必须包含 UDP,普通"高防 HTTP"对游戏服无效。
游戏流量几乎全走 UDP,攻击也以 UDP Flood、NTP/DNS 反射放大、以及"假人连接压服"(用脚本模拟大量玩家握手耗尽 tick 与内存)为主。防护要点:
- 选带 UDP 防护的高防节点:问清防护类型是"流量清洗"还是"游戏专用防护",清洗阈值多少 Gbps,是否支持 UDP 端口自定义。
- 隐藏真实 IP:通过 SDR(Source Deflection Relay)或高防 IP 转发,玩家只连高防 IP,源站 IP 不暴露。
- 限制连接速率:用 nftables 限制单 IP 的 UDP 新建连接速率,能挡掉大部分假人压服。
- 选对机房位置:玩家在华东就选华东/上海节点,跨省延迟通常增加 15~30 ms,跨国增加 100 ms 以上。
延迟和 UDP 丢包实测命令:
# 服务端开启 iperf3,用 UDP 模式测丢包与抖动(游戏最怕抖动)
iperf3 -s -p 5201
# 客户端:10 Mbps UDP 打流 30 秒,看 lost/total 与 jitter
iperf3 -c <服务端IP> -p 5201 -u -b 10M -t 30
# 持续延迟与丢包:mtr 看每一跳的丢包点
mtr -r -c 200 --report-wide <服务端IP>
# 查看 UDP 连接与丢包统计
ss -u -s
netstat -su | egrep 'receive buffer errors|packets to unknown port'一个简单的 UDP 限速规则(nftables):
# 限制单 IP 对游戏端口 8211 的 UDP 速率,超过则丢弃
sudo nft add table inet gamefilter
sudo nft add chain inet gamefilter input '{ type filter hook input priority 0 ; }'
sudo nft add rule inet gamefilter input udp dport 8211 \
meter game_meter '{ ip saddr limit rate over 200/second }' drop
# 查看规则与计数
sudo nft list table inet gamefilter玩家数换算成配置时最容易踩的三个坑
结论:公式算出的是下限,真实配置要按"峰值同时在线 + 30% 余量"来定,并预留纵向升级空间。
第一,峰值 CCU 不等于日活,也不等于注册用户数。不少服主按注册量估配置,结果周末晚高峰一上来就卡。公式里的 CCU 必须取历史最高同时在线人数,再叠加 30% 余量,因为 Mod、插件、实体生成与自动存档都会额外吃掉内存和 tick 预算。
第二,内存不是给得越大越好。Java 类服务端(Minecraft Paper/Purpur)的堆内存超过 12 GB 后,G1 垃圾回收的单次停顿会明显变长,表现为每隔几分钟全服卡一下。更合理的做法是把堆控制在 6~10 GB,用降低视距(view-distance)、限制实体数量、精简插件来压占用,而不是无脑加内存。
第三,磁盘要按"存档写入峰值"而不是容量来选。自动保存时,存档类游戏会在几秒内产生上百 MB 的随机写:NVMe SSD 的 4K 随机写可达数万 IOPS,SATA 企业级 SSD 通常在数万以下,机械硬盘不足 200。这一项直接决定自动保存时会不会全服卡顿,因此存档盘一律建议 NVMe。
常见误区 / 排错提示
- 误区一:堆核心数。 32 核低频 CPU 跑 Minecraft 不如 8 核高频。选购时先问主频,再看核数。
- 误区二:内存给太满。 系统本身、Page Cache 和存档写入都需要内存,给 JVM 分配超过物理内存 80% 会导致 OOM 杀进程。
- 误区三:用机械硬盘。 游戏存档是高频小随机写,HDD 的 IOPS 不足 200,自动保存时全服卡顿,必须 SSD/NVMe。
- 误区四:忽略上行带宽。 游戏服的上行(服务器→玩家)才是瓶颈,很多机房标称带宽是下行,签约前务必确认上行。
- 排错提示:全服周期性卡顿。 先看是不是自动存档(
paper.yml的autosave-interval、PalWorldSettings.ini的 AutoSave)触发的磁盘写峰;再看 GC 日志;最后看是否被假人连接刷满。用top -H看哪个线程吃满单核。
常见问题(FAQ)
开一个 20 人的 Minecraft 服要什么配置?
推荐 4 核(单核主频 4.0 GHz 以上)、8 GB 内存(分配 6 GB 给 JVM)、NVMe SSD 40 GB 以上、10 Mbps 带宽。原版生存服这个配置很宽裕;装了大型 Modpack 则要升到 12~16 GB 内存。同时记得设置视距(view-distance)为 6~8,这是降低 tick 压力最有效的一项。
幻兽帕鲁服务器为什么内存越用越多?
Palworld 专用服务端在长时间运行后存在内存增长问题,这是社区广泛反馈的现象。实践中的缓解办法是:每天定时重启一次(比如凌晨 4 点)、限制 PalWorldSettings.ini 中的掉落物与建筑上限、把内存给到 32 GB 以上留出缓冲,并监控 RSS 超过阈值时自动重启。
CS2 社区服 128 tick 需要多高主频?
128 tick 意味着每秒 128 次 tick 计算,比 64 tick 的 CPU 开销高一倍左右。建议单核睿频 4.5 GHz 以上、且关闭 CPU 节能模式,否则 tick 不稳会出现"跳帧"手感。同时把服务器放在离玩家最近的机房,延迟控制在 30 ms 以内。
游戏服务器需要多大带宽?
结论:先按"单玩家码率 × 峰值在线 × 1.4"估算,且这个数字指的是上行带宽。 60 人的 Minecraft 服约需 5~10 Mbps,60 人的 FiveM 服约需 15~25 Mbps。判断依据是:游戏服的瓶颈在服务器发给玩家的数据,签约时务必确认机房提供的是对称带宽还是限上行;上线后应在晚高峰用 sar -n DEV 1 实测出网流量,实测值持续超过标称带宽 70% 就该升配,否则玩家感受到的会先是延迟抖动与"回弹",而不是直接掉线。
游戏服被 DDoS 了怎么办?
第一步切到高防 IP 或启用机房清洗;第二步隐藏源站 IP(换 IP 并只接受高防回源);第三步在服务端用 nftables 限制单 IP 连接速率;第四步保留攻击时段的流量日志与 ss -s 快照,提交给服务商调整防护策略。事前预防比事后补救便宜得多。
可以用云服务器开游戏服吗?
可以,但要选计算型/高频型实例,避免选共享型或突发性能实例(CPU 有积分限制,跑满会被降频)。短期活动服、测试服尤其适合云服务器;长期稳定开服且人数多时,独立服务器或高频独服的单位成本更低。
企业QQ咨询




