VS 프로세스 메모리 누적 문제 질문좀요
글쓴이: ksd1325 / 작성시간: 화, 2018/10/16 - 4:51오후
현재 vs하고 장비를 붙여서 네트워크 통신을 하고 있습니다.
그런데 서버를 열어둔 채로 식사를 하고 왔더니
프로세스 메모리가 거의 2배가 되어있네요 OMG
메세지를 new로 생성하여 제대로 안 지워지나 확인해보았지만
delete도 제대로 하고 있고 종료할 때 메모리 누수도 없습니다.
장비에서 메세지를 한꺼번에 보내면 프로세스 메모리가 3기가 가까이 치솟는데,
본래 40MB 정도였던 프로세스 메모리가 메세지가 다 지워진 뒤에는 100MB가 넘습니다.
어느 부분에 문제가 있다고 생각해봐야 할까요?
언어는 c++ 사용하고 있습니다.
Forums:
...
서버가 돌아가는 OS는 윈도우인가요?
일반적으로 delete/free를 한다고 메모리가 바로 OS로 반환되지 않습니다. 그랬다가 다음 번에 메모리가 필요할 때 다시 OS를 불러 요청하면 오버헤드가 너무 커서죠. 그래서 보통 new를 잔뜩 하고 delete를 하면 메모리 일부는 런타임 라이브러리가 "다음 번에 new가 불리면 쓸 용도"로 계속 들고 있는 게 정상입니다.
이건 윈도우, 리눅스, Mac OS, 기타 거의 모든 범용 OS에서 공통된 동작입니다.
* 메시지를 계속 보내면서 100MB였던 메모리가 200 300 400으로 계속 올라가는지 아니면 100MB 근처에서 유지되는지 확인해 보세요. 후자의 경우엔 큰 염려할 것 없습니다.
누적해서 계속 증가하는 것 같습니다.
os는 윈도우 사용하고 있습니다.
보통 메세지 6~7개 정도에 1MB 정도 증가하는 것 같네요.
문제는 그 메세지가 삭제되는 걸 확인해도 메모리가 누적된 상태라는 겁니다 :(
서버를 오래 켜놨다가 서버가 죽을까봐 걱정되네요.
많이 걱정되시면 스트레스 테스트를 해보시길 권장합니다. :)
Jmeter를 이용하여서 메시지 부하를 주시고, 측정해보시길 바랍니다. 메모리 한계까지 사용했을 때, 이미 사용하고 삭제했던 공간을 재사용하는지, 메시지 처리 증가율이 떨어지는지 아실 수 있으실겁니다.
흠.. 한번 찾아봐야겠네요.
좋은 정보 감사합니다 :)
흠.. 한번 찾아봐야겠네요.
좋은 정보 감사합니다 :)
댓글 달기