개인 자료란 (JE)

  서버 커뮤니티

Profile 둥둥키 대표칭호 없음
Profile

질문하기 멀티플레이

tps 드롭 문제 해결해 주실분 구합니다

2024.07.29 조회 수 78 추천 수 0
이해도 입문자 
게임버전 (JE) 관련없음 
게임버전 (BE) 관련없음 

CPU : E5-2690 v2* 2ea (20C 40T)
RAM : 128G

트래픽 : 30Mbps

20명도 안들어왔는데 tps 드롭 문제가 계속 발생합니다

다른 개발자 분들이 많이 시도해보셨는데 다들 포기하셨습니다 제발 도와주세요..

성공하시면 페이 있습니다 실패하시면 없습니다

https://spark.lucko.me/69hs7mDlxZ

스파크분석 같이 첨부합니다


저녁동안 돌린 스파크 첨부합니다

https://spark.lucko.me/1mADDPY51i




5개의 댓글

qsef1256
2024.07.29

Enforce란 플러그인이 플러그인 틱의 20%를 먹고 있는데 얘는 조치가 필요해 보이네요, 따로 검색해도 안 나오는데 커스텀 플러그인인가요?

둥둥키
2024.07.29
@qsef1256

네네 커스텀 플러그인 입니다

qsef1256
2024.07.29
@둥둥키

죄송하지만 그 플러그인은 좀 잘못 만든 것 같아요.

 

ItemMeta를 처리하는 작업은 생각보다 좀 걸리는 작업이에요, 근데 제일 큰 자연이 발생하는 부분이 playerMaxHealthSet()인데 제가 보기에 이 메서드에서 플레이어 체력을 아이템 Lore에서 가져오는 것 같거든요, 그리고 그걸 계속 반복하고 있는 것 같고요. 메서드 이름으로 대강 추측은 할 수 있는데, 이런 기능을 구현하기 위해서 이런 방법을 쓰지 않아도 되고 비동기로 굴려서 지연이 없게 만들어도 상관 없는 부분이거든요.

 

또 regex 매칭용 Pattern 자체도 상당히 비용이 드는 작업이라 변수로 올려놓고 평가만 시키는 게 정석인데 매번 인스턴스를 새로 만들고 있는 것 같아요.

 

이런 정황들로 미루어보아서 플러그인 자체가 최적화가 많이 안됬다고 추측할 수 밖에 없을 것 같고요

qsef1256
2024.07.29
@둥둥키

사실 정확한 건 소스 까봐야 알겠지만 이게 무조건 플러그인을 쓴다고 좋은 게 아니에요, 플러그인으로도 스크립트보다 심한 서버 렉을 만들 수 있어요. 거의 대부분은 프로그래머의 실력에 달려 있어요

qsef1256
2024.07.29

일단 대부분의 지연은 엔티티랑 청크 때문인 것 같네요, 청크는 미리 로드 시켜두면 어느 정도 아낄 수 있고요 엔티티는 주기적 정리를 하시는 게 맞을 것 같고요 (특히 주민은 렉 많이 걸립니다)