<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://wiki.playcity.kr/index.php?action=history&amp;feed=atom&amp;title=%EB%A7%88%EC%9D%B8%ED%81%AC%EB%9E%98%ED%94%84%ED%8A%B8%2F%EC%84%9C%EB%B2%84_%EC%B5%9C%EC%A0%81%ED%99%94</id>
	<title>마인크래프트/서버 최적화 - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.playcity.kr/index.php?action=history&amp;feed=atom&amp;title=%EB%A7%88%EC%9D%B8%ED%81%AC%EB%9E%98%ED%94%84%ED%8A%B8%2F%EC%84%9C%EB%B2%84_%EC%B5%9C%EC%A0%81%ED%99%94"/>
	<link rel="alternate" type="text/html" href="https://wiki.playcity.kr/index.php?title=%EB%A7%88%EC%9D%B8%ED%81%AC%EB%9E%98%ED%94%84%ED%8A%B8/%EC%84%9C%EB%B2%84_%EC%B5%9C%EC%A0%81%ED%99%94&amp;action=history"/>
	<updated>2026-07-27T03:47:57Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.playcity.kr/index.php?title=%EB%A7%88%EC%9D%B8%ED%81%AC%EB%9E%98%ED%94%84%ED%8A%B8/%EC%84%9C%EB%B2%84_%EC%B5%9C%EC%A0%81%ED%99%94&amp;diff=93081&amp;oldid=prev</id>
		<title>Playcity: 마인크래프트 서버 최적화 문서 생성</title>
		<link rel="alternate" type="text/html" href="https://wiki.playcity.kr/index.php?title=%EB%A7%88%EC%9D%B8%ED%81%AC%EB%9E%98%ED%94%84%ED%8A%B8/%EC%84%9C%EB%B2%84_%EC%B5%9C%EC%A0%81%ED%99%94&amp;diff=93081&amp;oldid=prev"/>
		<updated>2026-06-01T05:58:51Z</updated>

		<summary type="html">&lt;p&gt;마인크래프트 서버 최적화 문서 생성&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;마인크래프트 서버 최적화&amp;#039;&amp;#039;&amp;#039;는 [[마인크래프트/서버|마인크래프트 서버]]가 안정적인 TPS와 응답성을 유지하도록 설정, 월드, 플러그인, 하드웨어, 운영 작업을 조정하는 과정이다. 최적화는 단순히 램을 많이 주거나 플러그인을 추가하는 일이 아니다. 서버가 느려지는 원인을 측정하고, 실제 병목에 맞게 조정하는 작업이다.&lt;br /&gt;
&lt;br /&gt;
Java Edition 서버에서는 [[Paper(마인크래프트)|Paper]] 계열 구동기가 성능 개선과 세부 설정을 제공하기 때문에 널리 사용된다. 다만 Paper를 사용하더라도 청크, 엔티티, 블록 엔티티, 플러그인, 지도 렌더링, 백업 작업이 과도하면 성능 저하가 발생할 수 있다.&lt;br /&gt;
&lt;br /&gt;
== 기본 지표 ==&lt;br /&gt;
서버 성능을 볼 때 자주 사용하는 지표는 TPS와 MSPT이다.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 지표 !! 설명&lt;br /&gt;
|-&lt;br /&gt;
| TPS&lt;br /&gt;
| 초당 서버 틱 수이다. 일반적으로 20 TPS가 정상 기준이다.&lt;br /&gt;
|-&lt;br /&gt;
| MSPT&lt;br /&gt;
| 한 틱을 처리하는 데 걸리는 시간이다. 50ms를 넘으면 20 TPS를 유지하기 어렵다.&lt;br /&gt;
|-&lt;br /&gt;
| Ping&lt;br /&gt;
| 플레이어와 서버 사이의 네트워크 지연 시간이다.&lt;br /&gt;
|-&lt;br /&gt;
| CPU 사용량&lt;br /&gt;
| 서버 틱 처리와 플러그인 작업에 영향을 준다.&lt;br /&gt;
|-&lt;br /&gt;
| 메모리 사용량&lt;br /&gt;
| 월드, 플러그인, 캐시, Java 힙 사용량에 영향을 준다.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
TPS가 낮다고 해서 항상 메모리가 부족한 것은 아니다. 마인크래프트 서버는 많은 작업이 메인 스레드에서 처리되므로, CPU 단일 코어 성능이 중요하다.&lt;br /&gt;
&lt;br /&gt;
== 하드웨어 ==&lt;br /&gt;
서버 하드웨어에서 중요한 요소는 다음과 같다.&lt;br /&gt;
&lt;br /&gt;
* CPU 단일 코어 성능&lt;br /&gt;
* 충분한 메모리&lt;br /&gt;
* 빠른 SSD 또는 NVMe 저장 장치&lt;br /&gt;
* 안정적인 네트워크&lt;br /&gt;
* 백업 저장 공간&lt;br /&gt;
&lt;br /&gt;
메모리를 지나치게 많이 할당하면 Java GC 동작에 따라 오히려 불안정할 수 있다. 서버 규모와 플러그인 수에 맞게 할당하고, 사용량을 관찰하면서 조정하는 것이 좋다.&lt;br /&gt;
&lt;br /&gt;
== Java와 실행 옵션 ==&lt;br /&gt;
서버 구동기 버전에 맞는 Java 버전을 사용해야 한다. Paper 26.1 이상은 Java 25를 요구한다.&lt;br /&gt;
&lt;br /&gt;
실행 명령 예시는 다음과 같다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -Xms8G -Xmx8G -jar paper.jar --nogui&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JVM 플래그는 서버 버전과 Java 버전에 따라 권장값이 달라질 수 있다. 오래된 플래그를 그대로 복사하기보다 현재 사용하는 Java 버전에 맞는 권장값을 확인해야 한다.&lt;br /&gt;
&lt;br /&gt;
== view-distance와 simulation-distance ==&lt;br /&gt;
`view-distance`와 `simulation-distance`는 서버 성능에 큰 영향을 준다.&lt;br /&gt;
&lt;br /&gt;
* `view-distance`: 플레이어에게 전송되는 청크 거리&lt;br /&gt;
* `simulation-distance`: 실제 게임 로직이 시뮬레이션되는 청크 거리&lt;br /&gt;
&lt;br /&gt;
`view-distance`를 높이면 멀리 볼 수 있지만 네트워크와 청크 전송량이 늘어난다. `simulation-distance`를 높이면 몹, 레드스톤, 작물, 엔티티 처리량이 늘어난다. 공개 서버에서는 두 값을 무작정 높이기보다 서버 목적에 맞게 조정해야 한다.&lt;br /&gt;
&lt;br /&gt;
== 청크 관리 ==&lt;br /&gt;
청크 생성과 로딩은 서버 부하의 큰 원인이다. 새 월드를 탐험하거나 대형 지도 렌더링을 돌릴 때 청크 생성량이 크게 늘 수 있다.&lt;br /&gt;
&lt;br /&gt;
청크 관련 최적화 방법은 다음과 같다.&lt;br /&gt;
&lt;br /&gt;
* 월드 경계를 정한다.&lt;br /&gt;
* 필요한 지역을 미리 생성한다.&lt;br /&gt;
* 불필요한 청크 로딩 플러그인을 줄인다.&lt;br /&gt;
* 지도 렌더링 작업을 서버 피크 시간에 돌리지 않는다.&lt;br /&gt;
* 대규모 월드 편집 후 저장과 백업 시간을 고려한다.&lt;br /&gt;
&lt;br /&gt;
도시건축 서버에서는 월드를 넓게 확장하기보다 실제 건축과 지도 렌더링 범위를 기준으로 관리하는 것이 좋다.&lt;br /&gt;
&lt;br /&gt;
== 엔티티와 블록 엔티티 ==&lt;br /&gt;
엔티티와 블록 엔티티는 서버 틱에 영향을 준다.&lt;br /&gt;
&lt;br /&gt;
부하를 만들 수 있는 요소는 다음과 같다.&lt;br /&gt;
&lt;br /&gt;
* 많은 수의 몹&lt;br /&gt;
* 아이템 엔티티&lt;br /&gt;
* 마인카트와 보트&lt;br /&gt;
* 액자와 아이템 프레임&lt;br /&gt;
* 호퍼&lt;br /&gt;
* 상자와 셜커 박스&lt;br /&gt;
* 복잡한 레드스톤 장치&lt;br /&gt;
&lt;br /&gt;
엔티티를 무조건 제거하는 플러그인은 임시로 부하를 줄일 수 있지만, 원인을 숨길 수도 있다. 먼저 어떤 엔티티와 구역이 부하를 만드는지 확인하는 것이 좋다.&lt;br /&gt;
&lt;br /&gt;
== 플러그인 최적화 ==&lt;br /&gt;
플러그인은 서버 기능을 확장하지만 성능 문제의 원인이 되기도 한다.&lt;br /&gt;
&lt;br /&gt;
점검할 항목은 다음과 같다.&lt;br /&gt;
&lt;br /&gt;
* 오래된 플러그인&lt;br /&gt;
* 같은 기능을 중복 제공하는 플러그인&lt;br /&gt;
* 과도한 이벤트 리스너&lt;br /&gt;
* 반복 작업을 자주 실행하는 플러그인&lt;br /&gt;
* 데이터베이스 쿼리가 많은 플러그인&lt;br /&gt;
* 지도 렌더링 또는 통계 수집 플러그인&lt;br /&gt;
&lt;br /&gt;
문제가 있을 때는 플러그인을 하나씩 제거해 추측하기보다, 프로파일러로 어떤 작업이 시간을 쓰는지 확인하는 것이 좋다.&lt;br /&gt;
&lt;br /&gt;
== 지도 렌더링 ==&lt;br /&gt;
[[마인크래프트/플러그인/Dynmap|Dynmap]]과 [[BlueMap]] 같은 지도 플러그인은 서버 월드를 웹에서 볼 수 있게 하지만, 초기 렌더링과 대규모 갱신 작업은 많은 CPU와 디스크 I/O를 사용할 수 있다.&lt;br /&gt;
&lt;br /&gt;
지도 플러그인을 운영할 때는 다음을 고려한다.&lt;br /&gt;
&lt;br /&gt;
* 렌더링 범위&lt;br /&gt;
* 렌더링 스케줄&lt;br /&gt;
* 타일 저장 위치&lt;br /&gt;
* 외부 웹서버 사용 여부&lt;br /&gt;
* 지도 데이터 백업 여부&lt;br /&gt;
* 서버 피크 시간 회피&lt;br /&gt;
&lt;br /&gt;
도시건축 서버에서는 지도 품질과 서버 성능 사이의 균형이 중요하다.&lt;br /&gt;
&lt;br /&gt;
== 백업과 저장 ==&lt;br /&gt;
백업은 서버 안정성을 높이지만 실행 시점과 방식에 따라 성능에 영향을 줄 수 있다.&lt;br /&gt;
&lt;br /&gt;
주의할 점은 다음과 같다.&lt;br /&gt;
&lt;br /&gt;
* 피크 시간대에 무거운 백업 작업을 피한다.&lt;br /&gt;
* 월드 저장과 백업이 겹치지 않게 한다.&lt;br /&gt;
* 압축 작업이 CPU를 과도하게 사용하지 않는지 확인한다.&lt;br /&gt;
* 백업 대상과 보존 기간을 정한다.&lt;br /&gt;
* 복구 테스트를 주기적으로 한다.&lt;br /&gt;
&lt;br /&gt;
== 피해야 할 방법 ==&lt;br /&gt;
다음 방법은 문제를 더 복잡하게 만들 수 있다.&lt;br /&gt;
&lt;br /&gt;
* 원인을 확인하지 않고 플러그인을 무작정 추가하기&lt;br /&gt;
* `/reload`로 플러그인을 다시 불러오기&lt;br /&gt;
* 메모리만 계속 늘리기&lt;br /&gt;
* 오래된 최적화 플러그인을 최신 서버에 그대로 사용하기&lt;br /&gt;
* 오류 로그를 무시하고 설정만 바꾸기&lt;br /&gt;
* 테스트 없이 Paper 또는 Java 버전을 올리기&lt;br /&gt;
&lt;br /&gt;
== 같이 보기 ==&lt;br /&gt;
* [[마인크래프트/서버]]&lt;br /&gt;
* [[마인크래프트/서버 운영]]&lt;br /&gt;
* [[Paper(마인크래프트)]]&lt;br /&gt;
* [[마인크래프트/플러그인]]&lt;br /&gt;
* [[마인크래프트/청크]]&lt;br /&gt;
* [[마인크래프트/엔티티]]&lt;br /&gt;
* [[마인크래프트/플러그인/Dynmap]]&lt;br /&gt;
* [[BlueMap]]&lt;br /&gt;
* [[플레이시티 블록/서버]]&lt;br /&gt;
&lt;br /&gt;
== 외부 링크 ==&lt;br /&gt;
* [https://docs.papermc.io/paper/ PaperMC Docs]&lt;br /&gt;
&lt;br /&gt;
[[분류:마인크래프트]]&lt;/div&gt;</summary>
		<author><name>Playcity</name></author>
	</entry>
</feed>