관련 문서: 마인크래프트/모드
<colbgcolor=#ffc93a><colcolor=#000> spark 스파크 | |
다운로드 페이지 | 공식 사이트 Modrinth CurseForge |
버전 | 1.7.10, 1.12.2, 1.16.5 ~ 1.21.1 |
지원 로더 | Spigot, Paper, Forge(1.7.10~), NeoForge(1.20.2~), Fabric(1.15.2~), Sponge, BungeeCord, Velocity, Nukkit |
공식 링크 | Github spark 공식문서 |
[clearfix]
1. 개요
spark는 클라이언트 내 프레임이나 서버 내 틱을 분석하여 어느 부분이 문제가 있는지 파악해주는 모드이다.2. 사용법
spark 공식 문서 참조 유튜브 영상(한국)도 참고하면 좋다.설치 방법은 기존 모드/플러그인과 같이 mods 혹은 plugin 폴더에 넣는다. Paper 서버의 경우 기본 내장이므로 설치할 필요가 없다.
/sparkc
는 클라이언트 전용 명령어로 OP 없이 사용할 수 있지만 /spark
는 서버 전용 명령어로 OP가 있어야 사용이 가능하다. /sparkb
(BungeeCord)와 /sparkv
(Velocity)는 프록시 서버 전용 명령어다./spark profiler start
프로파일러를 시작한다./spark profiler start --only-ticks-over <milliseconds>
- 프로파일러를 시작한다. 단 지정된 기간(밀리초)보다 오래 걸리는 틱만 기록한다. 주로 지연이 규칙적으로 발생할때 쓰인다./spark profiler start --timeout <seconds>
- 프로파일러를 시작하고. 몇 초 후에 자동으로 중지한다./spark profiler stop
프로파일러를 중지 하고 결과를 확인한다./spark profiler info
프로파일러의 현재 상태를 확인한다.서버 및 상황에 다르지만
/spark profiler start
입력하고 보통 1분뒤에 /spark profiler stop
을 치는 편이다.2.1. 프로파일러 분석하기(서버)
프로파일러를 얻었다면 특정 사이트(https://spark.lucko.me/고유식별값)에 접속하라고 안내한다.영어 실력과 약간의 생각과 상식이 있다면 여기는 대충 어느 일을 하는지 알 수 있다.
많이 보이게 될 제목은 다음과 같다.
java.lang.Thread.run()
- 최상위 디렉토리이다.MinecraftServer.run()
- 그 위의 다음 디렉토리이다.MinecraftServer.tick()
,MinecraftServer.tickServer()
, - 서버의 모든 연산을 틱하는 시간이다. 서버에 문제가 있다면 펼쳐보자.Thread.sleep()
,MinecraftServer.waitForNextTick()
- 틱 연산을 다 마치고 다음 틱을 기다리는 상태이다.- 일반적으로 이 값이 높으면 높을수록 좋다. 더 많은 플레이어를 수용할 수 있다는 의미.
- 이 값이 20% 미만이라면 서버가 꽤 열심히 일하고 있다는 뜻이고, 일부 틱에서 렉이 발생할 수 있다.(대부분의 서버 평균이므로 괜찮다.)
- 이 값이 5% 미만이라면 서버가 렉걸리기 직전이다.
계속 숫자가 높은 값을 따라가다보면 서버마다 다르지만 zombie, (모드id)가 있을 것이다. 그렇다면 대충 좀비, (특정 모드)가 렉의 원인으로 추측이 가능하다.