dmesg + syslog로 OOM killer 발견 → 메모리 프로파일링 → 스트리밍 처리로 수정
인턴 실습에서 리눅스 서버에서 간헐적으로 프로세스가 죽는 문제를 처음 직접 분석해봤습니다. 처음에는 원인이 보이지 않았는데, dmesg와 /var/log/syslog를 함께 확인하면서 OOM killer가 메모리 부족으로 프로세스를 강제 종료하는 로그를 발견했습니다. 원인을 파악하고 나서 메모리 사용량을 코드 레벨에서 프로파일링해보니, 특정 조건에서 대량의 데이터를 한 번에 메모리에 올리는 로직이 있었습니다. 데이터를 스트리밍 방식으로 나눠서 처리하도록 수정했더니 메모리 피크가 줄었습니다. 이 과정에서 단순히 서버 메모리를 늘리기보다 코드 구조를 먼저 보는 것이 더 근본적인 해결이라는 걸 배웠습니다.
리눅스 로그는 증상을 기록하는 게 아니라 원인을 찾는 시작점이라는 걸 그때 알았습니다.