안녕하세요. 오늘은 최근 겪었던 문제 상황에 대해 포스팅 하도록 하겠습니다. 최근 담당하고 있는 프로젝트 중 고객의 문의가 들어오면 해당 문의가 상담원들에게 배분이 되도록 작동하는 배치성 프로젝트에 문제가 발생했습니다. 특정 시간이 되면 미처리 문의들이 배분이 되어 웹 화면에서 조회가 되어야 정상이지만 어찌된 일인지 아무리 테스트 문의를 넣어보아도 문의가 제대로 배분이 되지 않았습니다. 이 문제를 해결하면서 겪었던 에피소드에 대해 지금부터 포스팅 하도록 하겠습니다. # 해당 문제는 알파 환경(정식 사용자들에게 서비스 되지 않는 환경)에서 발생한 상황입니다. 문제 상황 :: 고객들의 문의가 상담원들에게 분배가 되지 않는 현상. 고객들이 문의를 넣게 되면 배치성 프로젝트를 통해 미처리 문의들을 상담원들에게 배분해주는 프로젝트가 정상 작동하지 않음 원인 파악 :: 위와 같은 문제상황이 발생하고 일단 서버에 접속해 톰캣이 혹여나 죽진 않았는지 ps -ef | grep java 명령어를 통해 확인해 보았습니다. 확인을 한 결과 톰캣은 정상작동하고 있는 것을 확인하였습니다. 그래도 혹시나 해서 톰캣을 재시작 해보았지만 역시나 정상작동하지 않았습니다. 그렇게 원인 파악에 대해 고민하던 중 선배님 df로 파일시스템을 사용해 보라고 하셨습니다. df 명령어(밑에 간단한 설명)를 통해 파일시스템을 보니 파일시스템 사용률이 100%을 다다랐던 것을 확인 할 수 있었습니다.
해당 문제의 원인은 프로젝트에 약 15개 정도되는 배치성 프로세스(보통 1,2 분에 한 번씩)가 작동하고 있었는데 로그 레벨이 DEBUG로 설정되어 있었던 것이 화근이되었습니다. 이에 아무도움이 되지 않는 불필요한 로그들이 무수히 쌓이게 되었고 파일시스템 사용률이 100%로 치닫게 되었던 것이었습니다. [그림 출처 : http://changpd.blogspot.kr/2013/05/spring-lo4j.html] 위의 그림을 보시면 log4j의 레벨을 보실 수 있는데 DEBUG로 설정을 하게 될 경우 DEBUG 상위수준의 로그 또한 모두 기록하는 것을 파악할 수 있다. (보통 실제 리얼환경에서는 ERROR 사용) 문제 해결 :: 먼저 해당 로그 파일들을 제거(실제 리얼환경에서는 백업을 하길 권장)해주고 톰캣을 재시작 해주었다. 실제 환경일 경우 파일 시스템 용량이 특정 %이상 치솟았을 때는 메일, SMS로 상황을 미리 파악하고 대처할 수 있지만 알파환경의 경우에는 그렇지 않기 때문에 파일시스템 용량 상황을 주기적으로 점검해주고 특별한 이슈가 없다면 로그 레벨의 수준을 DEBUG 상위 레벨로 설정해 줄 것을 권장한다.
#df 명령어에 대한 간단한 설명 :: 사용중인 파일시스템의 전체용량, 사용한 용량, 사용가능한 용량, 사용율, 마운트 정보 등을 보여주는 명령어로 현재 사용중인 파일 시스템들의 디스크사용량을 출력한다. df 명령어는 /etc/fstab파일에서 파일시스템정보를 참조하고, /etc/mtab에서 마운트된 정보를 참조한다고 한다. 기본표시 용량단위는 KB(Kilo Byte)이다. 모니터링을 통해 서버 상태를 항상 체크하도록 합시다^^ |
'Programming > Linux' 카테고리의 다른 글
ServerTokens 아파치 권장 설정에 대해 알아보자 (0) | 2017.05.09 |
---|---|
서버 보안을 위한 불필요한 HTTP method 비활성화 (0) | 2017.05.09 |
아파치톰캣7 따라잡기 책 정리 part.1 (0) | 2017.04.23 |
POP3서버 수동으로 접속하기 (1) | 2017.04.23 |
리눅스 wget으로 jdk1.7받기(jdk1.8포함) (0) | 2017.04.23 |