일단 해보고, 아니면 뭐

실패했어도 배웠으면 실패가 아냐.

무한한 개발세계 여행기

memory 2

Java heap memory leak - JNI

요 근래 이직 준비를 하면서 바빠 블로그를 신경 쓰지 못했는데, 운 좋게 서비스 회사에 이직을 하게 돼서 기쁜 마음으로 다시 블로그를 켜게 되었다. 무슨 주제로 포스팅을 할까 하다가 첫 직장에서 경험했던 업무들 중에 가장 인상 깊었던 일을 리마인드 겸 정리하고 공유하고자 한다. 때는 바야흐로 입사한 지 6개월도 되지 않은 따끈따끈한 신입시절 나는 통합관제 라이선스 모듈 기능을 개발하게 되었고, 라이선스 키를 암호화/복호화하는 모듈을 연동하게 되었다. 연동해야 하는 프로젝트는 Java + Spring Boot로 구성된 서버였고 암/복호화 모듈은 C언어로 구성되어 있었다. 나는 그래서 연동을 위해서 JNI를 처음 써보게 되었다. 일은 여기서 터진다. 나는 C언어도 처음이고 JNI도 처음 써보는데 Java m..

Linux Memory의 체계 - free 명령어 데이터 분석기

Linux 'free' 명령어의 결괏값을 분석하게 되면서 알게 된 내용을 정리해보자. 어쩌다 분석을 하게 되었는지 부터 보자면... Node Exporter를 설치하여 수집되는 메트릭으로 Promql을 사용하여 노드의 메모리 추이를 조회하는데, 실제로 쿼리결과의 데이터가 free 명령의 결과값과 달라서 데이터를 분석하게 된 것이다. 일단 비교할 두 대상의 데이터부터 확인해보자 먼저 node exporter의 데이터를 분석해보자 node exporter는 운영체제 내의 /proc/meminfo 파일을 통해서 데이터를 스크랩해오는 방식인데 /proc/meminfo 파일은 다음과 같이 구성되어있었다. [root@target-master ~]# vim /proc/meminfo MemTotal: 8144312 k..