inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)

CPU를 과도하게 점유하면서 멈추는 현상

해결된 질문

197

Jorn

작성한 질문수 3

0

안녕하세요

 

쓰레드 배분 강의 소스 코드부터 현재 강의까지, 서버가 정상적으로 동작하지 않는 현상이 있어 확인 요청드립니다.

DBThreadJob 메서드에서 _executeQueue가 비어 있을 때 루프가 무한히 반복되면서 CPU를 과도하게 점유하는 문제가 있는 것 같습니다.

저는 macOS에서 서버를 실행 중인데, Windows와의 CPU 스케줄링 차이로 인해 발생하는 문제로 추측됩니다.

 

확인해주시면 감사하겠습니다!

C# unity mysql MMORPG ef-core asp.net-web-api

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.
4513zxc님, macOS 환경에서 쓰레드가 무한 반복으로 인해 CPU를 과도하게 점유하는 문제를 겪고 계시는군요. 이러한 문제가 발생하는 것은 주로 쓰레드가 매우 빠른 루프를 도는 구조에서 흔히 나타나는 현상입니다. DBThreadJob 메서드에서 _executeQueue를 체크하면서 대기 시간이 없이 while 루프가 계속 돌게 되는 경우 CPU 사용량이 급증할 수 있습니다.

비슷한 문제와 관련된 기존 질문을 참조하시어 해결 방법의 힌트를 얻으실 수 있을 것입니다.

  1. 맥북에서 비쥬얼 스튜디오 사용중인데 아래와 같은 결과가 나타나지 않습니다. 무슨 문제일까요?
    이 질문에서는 Windows와 macOS에서의 쓰레드와 관련된 이슈에 대해 다루고 있습니다. 기본적으로 Mac의 Visual Studio에서 발생할 수 있는 쓰레드풀 문제와 이를 보완하기 위한 업데이트 또는 패치 확인을 권장하고 있습니다.

쓰레드 루프가 과도하게 CPU를 사용하지 않게 하기 위해서는 다음과 같은 방안을 고려해볼 수 있습니다:
- 쓰레드 루프 내부에 적절한 Thread.Sleep() 메서드를 추가하여 루프 실행의 빈도를 줄입니다.
- _executeQueue가 비어 있는 경우에 대비하여 대기 상태로 전환하는 메커니즘을 구현하는 것도 좋습니다.

문제가 계속 지속되면 Visual Studio for Mac의 업데이트 확인 또는 .NET Core의 최신 버전으로 업데이트하는 것을 고려해 보세요. 또한, 조언드린 방법들을 활용하는 것이 문제 해결에 도움이 될 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

Jorn

저는 Thread.Sleep()을 while 다음에 배치하여 문제를 해결했습니다.

이 문제의 원인이 Sleep 위치라고 생각되어, 다른 수강생 분들께도 이런 문제가 발생할 수 있기 때문에 도움이 될까 하여 댓글로 공유드립니다.

 

감사합니다.

 

학습 전 커리큘럼 관련 질문 드립니다

0

112

1

강의 커리큘럼 질문 드립니다

0

62

1

수업질문은 아닌데요^^

0

117

1

게임 로직 루프에서 게임 틱 누락으로 인한 높은 CPU 사용 문제

0

85

1

선 이동과 히트 판정에 대해 질문 드립니다.

0

91

1

Job Scheduler - Cache locality

0

76

2

MMO 3D 게임 서버의 스킬 판정을 어떻게 하면 좋을까요?

0

190

2

코드 머지와 관련하여.

0

95

1

퀘스트 처리 시 궁금한게 있습니다.

0

116

2

Nagle Algorithm

0

100

1

현재 강의를 이용하여 3D 게임을 만들 경우 변경되야 될 사항들에 대해 궁금합니다.

0

134

2

ResourceManager에서 Multiple Sprite를 로드하는 방법

0

102

1

M2는 업데이트가 끝난건가요?

0

149

1

Interpolation & Server Tick Frequency

0

172

2

서버에서 디스커넥트되시는분들 JWT 관련 참고하셔요

0

121

1

aws 와 microsoft azure 중 aws 선택하신 이유가 궁금합니다.

0

189

1

강의는 끝인건가요?

0

332

2

아이템 강화 테이블 관련

0

226

2

강의 관련 질문 드립니다.

0

238

1

리니지1의 이동 질문

0

402

2

버그에대한 썰

0

132

1

포탈 프로젝트에 서버 코드에 에러가 뜨네요

0

139

1

아이템 수량에 관해서 질문입니다.

0

143

1

퀘스트 관련 질문 드립니다.

0

144

1