0. 사건의 발단
평화롭게 개발을 진행하던 도중 이슈가 발생했다. 갑자기 서버가 먹통이 되었다는 소식이었다.
문제를 해결하기 위해 빠르게 ec2 인스턴스를 확인해 보았으나 cpu 사용량 및 인스턴스에는 문제가 없었다.
다음은 putty로 ec2 터미널에 접속하여 top 명령어를 사용해 서버 메모리 사용량을 확인해 보았다
결과는 놀라웠다...
내가만든 도커 이미지가 아니라 confluent가 제공하는 kafka 도커 이미지를 사용하는지라 어디서 메모리 누수가 발생하는지 파악을 할 길이 없다.
내가 할 수 있는 옵션은 무엇이 있을까?
- 도커 실행시 jvm heap opts를 256-256으로 설정한다.
- 도커이미지를 confluent에서 만든 이미지가 아닌 다른 이미지로 변경한다.
- 일단 당장 돌아가도록 메모리 swap을 설정하여 메모리 여유분을 만들어둔다.
우선 당장 할 수 있는 일인 1번부터 진행해보자
kafka-dev:
image: confluentinc/cp-kafka:5.5.1
hostname: kafka-dev
ports:
- "9093:9093"
environment:
KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://kafka-dev:19093,LISTENER_DOCKER_EXTERNAL://{my-ip}:9093
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL
KAFKA_ZOOKEEPER_CONNECT: "zoo-prod:2181,zoo-dev:2182,zoo-test:2183"
KAFKA_BROKER_ID: 2
KAFKA_LOG4J_LOGGERS: "kafka.controller=INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO"
KAFKA_HEAP_OPTS: "-Xmx256m -Xms256m" //옵션 추가
volumes:
- ./zk-multiple-kafka-multiple/kafka-dev/data:/var/lib/kafka/data
depends_on:
- zoo-dev
- 우선은 해당 옵션을 사용해서 문제를 일단락 시켰고 하루정도 시간이 지나 메모리 리소스 사용량을 확인하고 여전히 메모리 누수가 발생하는지 확인해보아야 한다. 제발 해당 옵션으로 문제가 해결되길 기도한다.
'실패록 > 오늘의 실패록' 카테고리의 다른 글
[실패록] Spring Controller 415 Error (0) | 2021.02.01 |
---|