호스트에서 도커 컨테이너의 로그 정보를 주기적으로 수집하기 위한 golang 바이너리를 개발하는 것이 요구사항입니다. 그 결과 실행시 go pprof를 이용해 확인해 보니 고루틴이 유출된 것을 발견했습니다. 오랫동안 노력했지만 해결하지 못했습니다.
메모리 사용량, 메모리는 33분까지 계속 증가합니다.
으아아아pprof 결과:
으아아아디버깅 중 개인적인 코드 최적화로 인해 고루틴의 성장률이 크게 감소했습니다. 기껏해야 3000
이 있습니다.
goroutine-leak는 govendor를 사용하여 종속성 패키지를 관리합니다.
문제가 있는 코드를 추출하여 main.go에 넣고, github의 goroutine-leak 주소에 유지관리했습니다. pprof 기능은 기본적으로 통합되어 있습니다. 관심 있는 친구들은 함께 디버깅하고 배울 수 있습니다.
저는 이 문제를 해결하기 위해 계속해서 다양한 방법을 시도하겠습니다.