gc(2)
-
[GabageCollection] 가비지 컬렉션 알고리즘 종류와 구조
흔히 Java를 사용할 때의 장점을 말할 때 GC(GabageCollection)이 자주 나온다. 메모리 관리를 Java에 내장된 GC가 자동으로 해주면서개발자들이 일일이 메모리 관리에 시간을 쓸필요가 없기 때문이다. ( Java 이전의 언어들은 GC 같은 기능을 제공해주고 있지 않으나 파이썬이나 Node.js 계열 같이 자바 이후로 두각을 보이는 언어는 모두 자체적으로 메모리 관리 기능이 있다고 한다.) 오늘은 GC에 대한 정리를 하려한다. Gabage Collection GC(Gabage Collection)는 C언어 등에서 처럼 객체의 메모리를 직접 삭제해주는 로직이 없어도 자동으로 사용되지않는 객체에 할당된 메모리를 삭제해주는 역할을 한다. 여기서 메모리는 JVM의 힙(heap) 영역을 가리킨다...
2024.08.20 -
[PersonaAI - 비공개 프로젝트 d-3] GC Pause Full 발생
프로젝트를 개발 서버에 배포하고 테스트 진행중 웹이 멈추는 현상이 발생했다. 바로 해당 서버의 로그를 확인해보니 원인은 GC Pause Full 가비지 컬렉터의 메모리 문제였다. 일단은 서버복구가 급선무였고 마침 이전 프로젝트에서도 Java 서버에 heap out 이 된 경험이 있어서 root.xml에 가서 메모리를 늘려주고 기존에 멈춰버린 프로젝트를 직접 kill 하고 재실행 해줬다.( kill을 해줬는데 한번에 안죽어서 당황했다. 이런 상황에선 kill 하고나서 한번더 ps -ef로 다시 확인해보자!!) 하지만 이 상태로는 다시 GC의 메모리 문제가 생기는 것은 시간문제였기 때문에 소스 수정에 들어갔다. GC에 문제가 생길만한 부분은 불필요한 변수 또는 반복적인 객체 선언 그리고 데이터를 제대로 ..
2024.07.31