마인크래프트 서버 호스팅
게임 서버 호스팅
게임 서버 루프는 한 코어에서 실행되며, 플레이어가 불평하는지 여부를 결정하는 숫자는 그 코어의 속도와 중단 없이 일관되게 실행될 수 있는지입니다. 우리는 시장에서 가장 높은 클럭의 실리콘을 선택하고, 이를 고정하고, isolcpus와 tickless 모드로 커널 하우스키핑을 해당 코어에서 옮긴 다음, 게임 계층 필터링을 앞에 배치하여 커뮤니티에 대한 공격이 당신의 지원 티켓이 되지 않도록 합니다.
이 구성의 이유
NITRO는 코어가 고정되고 격리된 5.9GHz의 Zen 5를 실행하여, 서버가 가득 차도 프레임 시간 지터를 1밀리초 미만으로 유지합니다. L7 필터링 프로필은 Source 엔진, FiveM, Minecraft 및 TeamSpeak 트래픽 패턴을 이해하여 플레이어를 떨어뜨리지 않고 쓰레기를 차단합니다.
배포할 구성
사이징
코어 수가 아닌 단일 스레드 헤드룸으로 크기를 정하세요. 하나의 권위 있는 게임 루프는 한 코어에서 실행됩니다. 12슬롯의 128틱 슈터는 전체 클럭의 NITRO 코어 하나와 4GB를 원합니다. Rust 또는 100명 이상의 플레이어가 있는 대형 Source 서버는 엔티티 변동으로 루프가 급증하므로 2코어 분량의 헤드룸이 필요합니다. 플러그인 스택이 있는 40명의 Minecraft: 4코어, 12GB, 대부분 힙. 안정 상태 부하를 60% 미만으로 유지하세요.
틱 예산 계산
틱은 하드 데드라인입니다. 64틱에서는 프레임당 15.6ms, 128틱에서는 7.8ms입니다. 이 예산은 물리, 히트 등록, AI, 그리고 연결된 모든 플레이어에 대한 네트워크 직렬화를 포함합니다. 한 번 초과하면 서버는 틱을 드랍합니다. 플레이어는 이를 러버밴딩과 빗나간 샷으로 인식합니다. p99 프레임 타임을 프로파일링하세요, 평균이 아닌. 평균은 평평하게 유지되지만 라운드 시작, 맵 변경, 대규모 엔티티 스폰은 예산을 뚫고 지나갑니다. 정상 상태 프레임 타임이 예산의 절반 미만이 되도록 크기를 조정하세요. 그러면 스파이크도 여전히 그 안에 들어옵니다.
L7 게임 필터링이 실제로 하는 일
볼류메트릭 스크러빙은 파이프가 가득 차는 것을 막습니다. 유효한 패킷으로 구성된 쿼리 플러드에는 아무 효과가 없습니다. 소스 엔진은 모든 주소의 A2S_INFO에 응답하므로 공격자는 작은 쿼리를 보내고 당신의 틱 루프가 응답 비용을 지불하거나 다른 사람에게 반사시킵니다. 레이어 7에서 필터링한다는 것은 스크러버가 프로토콜을 말한다는 뜻입니다: 쿼리에 대한 챌린지-응답, 핸드셰이크에 대한 소스별 속도 제한, 잘못된 패킷은 게임 프로세스에 도달하기 전에 드랍됩니다. 15Tbps 인라인 용량은 바닥입니다. 프로토콜 인지가 루프를 일정에 유지하는 부분입니다.
문제점
- 틱 루프에 버스트 또는 공유 vCPU를 구매하는 것. 지속 부하는 부스트 클럭을 낮추고, p99 프레임 시간은 약 두 배가 되며, 그래프에 표시되기 전에 플레이어가 느낍니다. NITRO에서 코어를 고정하세요.
- 게임 서버와 MySQL 또는 Redis 백엔드를 같은 코어에서 실행하는 것. fsync 중단 또는 GC 일시 중지가 틱 창 내에 발생하고 서버는 부하 중에 프레임을 떨어뜨립니다.
- 평균 프레임 시간으로 크기를 정하는 것. 라운드 시작, 맵 회전 및 대량 엔티티 생성이 예산을 초과하는 동안 평균은 평평하게 유지됩니다. 유휴 상태가 아닌 이러한 이벤트 중에 측정된 p99에 대해 프로비저닝하세요.
머신 튜닝
- CPU 스케줄링 — Pinned + isolcpus + tickless · €18
- DDoS 보호 — Game-layer L7 filtering · €24
- 기타 — Second-resolution metrics + alerting · €5