과부하 현상 원인

리건2020.11.30 15:28조회 수 84댓글 4

    • 글자 크기










간단하게 설명하자면 과부하는 

자바내에 있는 GC 즉 가비지 컬렉터 기능이 정상적으로 수행되지 않는것으로부터 발생한다.

GC(가비지 컬렉터)란 자바에서 현재 쓰지 않는 메모리들을 자동으로 청소해주는 역활을 한다고 보면 된다.

 

GC가 정상적으로 되지 않는것에는 2가지의 이유가 있다.

1. 소스내부의 코딩 문제

2. 메모리할당이 잘못됨

 

 

1번의 문제는 소스내부 코딩이 잘못되서 다 쓴것이지만 GC가 청소를 못시켜주게됨 -> 반복 -> 과부하

(프@메에서 다수 발생되는 문제)

 

2번의 문제는 메모리할당이 잘못됨

가끔식 보면 XMS 4G XMX 4G 할당하는 얘들 있던데 그냥 둘다 지우셈

자신에게 맞는 GC방법으로 튜닝만 해도 과부하는 어느정도 막음 (1번문제 제외)

 

 

자 그럼 1번문제는 어떻게 해결해야 될까

자바는 우리에게 아주 좋은 해결책인 VisualVM을 주고갔다.

Java폴더-jdk-bin폴더 보면 jvisulvm이 있다.

가보면 visualGC기능도 있고 Sampler로도 현재 내가 사용하는 메모리나 CPU에서 가장 많이 불러오는것이 무엇인지 알수있다.

또한 덤프기능도 있는데 덤프를 한뒤 메모리에널라이즈라는 툴으로 분석하는것으로도 과부하를 잡을수 있지만

현역개발자들도 분석이 어렵다고 한다.

 

구버전의 경우 과부하의 원인은 쓰레드다.

대부분이 이용하는 화이트스타팩이라는건 자바의 기본코어를 이용하는데,

이 노답새끼들이 중요한게 뭐냐면 누가 접속할때마다 소켓을 생성한다.

그 과정에서 누군가의 소켓하나가 문제가난다면?

특히 많은 동접을 소유하고있는곳에서는 기본소켓을 쓰면 과부하가 일어날수밖에 없으니

구버전 대규모를 키우고싶다면 소켓부터 갈아치워라.

 

고버전의 경우 과부하의 원인은 소스코딩이다.

JVISUALVM으로 샘플러를 통해 CPU와 메모리에서 불러들이는것만으로도 확인해서 찍어맞추기로 소스코딩의 문제를 바로잡으면 좋겠지만 운이나쁠경우 메모리에널라이즈까지 써서 분석해야될 경우도 있다.

출처 : http://gamezone.live/?mid=board_RYMI94&page=2&document_srl=378496











    • 글자 크기

댓글 달기

댓글 4
번호 제목 글쓴이 조회 수
1282 (미라클대비) 큐브 싸게 사는법5 베베 152
1281 (수정) 유니온 8000용 템셋팅 기록판7 베베 159
1280 (스압) 메이플 유저들이 사용하는 줄임말/용어 총정리 (2019.01.25 수정)6 wwww 2779
1279 (움짤多)팬텀 기본유틸 활용 미세팁5 베베 169
1278 [1.2.65] NPC 코드 정리(대사포함)4 마그마버터 2728
1277 [1.2.65] 기타 아이템 코드 정리6 마그마버터 1516
1276 [1.2.65] 맵 코드 정리8 마그마버터 2167
1275 [1.2.65] 설치 코드 정리4 마그마버터 517
1274 [1.2.65] 장비 아이템 코드 정리4 마그마버터 8743
1273 [1.2.65] 주문서 드랍 몬스터6 마그마버터 424
1272 [1.2.65] 직업 선택시 도움될 한줄 요약7 마그마버터 2085
1271 [1.2.65] 캐시 코드 정리5 마그마버터 1274
1270 [1.2.65~1.2.95] 업데이트 패치노트 정리3 마그마버터 880
1269 [1.2.95] 듀얼블레이드 스킬트리 공략4 마그마버터 2602
1268 [1.2.95] 모험가 계열 스킬포인트 공략3 마그마버터 383
1267 [1.2.95] 시그너스 계열 스킬트리 공략4 마그마버터 510
1266 [1.2.95] 아란 스킬트리 공략5 마그마버터 403
1265 [No.17] 메이플 장비 아이템의 역사 (빅뱅 전)17 디아블로미오 936
1264 [RISE] 명예의 결투장 미세팁5 베베 65
1263 [메린이 필독] 현실적인 뉴비 육성 팁6 베베 466
이전 1 2 3 4 5 6 7 8 9 10... 65다음
첨부 (0)