질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

메모리와 디스크 고수님들의 조언 바람니다.

작성자 정보

  • 임근식 작성
  • 작성일

컨텐츠 정보

본문

redhat 9.0 입니다.프로그램을 만들어 소켓으로 통신 하는 프로그램입니다.그런데 이상한것은 메모리 1G가에 CPU 4개 짜리인데 IOwait는 항상 0.0 % 입니다.그리고 프로세스에서 log 정보를 disk 에 남기는데 메모리가 감소하고 cached 가 증가 합니다.그러다가 통신량을 증가 시키면 메모리가 얼마 없을때 panic 으로 빠집니다,아니면 중간에 process 를 kill 해두 메모리를 반환하지 않습니다,, 그런데 log 화일을삭제하면 메모리가 복구 됩니다.

==>  님이 만든 통신프로그램이 어떠한 부분에서 메모리 부족현상을 일으키는지
먼저 프로그램에 대한 System Tracing이 필요할것 같습니다.  아래와 같은 방법으로 메모리 부족현상에
대한 파악을 먼저 하셨으면 합니다.

* Memory : Segment fault 가 일어나는 thread id 조사하여 결과를 strace.out파일로 보관
#> strace -T -o strace.out hello.o [Enter]

메모리 미반환에 대한 원인분석이 완료되셨으면 작성하신 통신프로그램 자체의 옵티마이징/개선을
통하여 개선을 하시거나,
솔라리스에서는 정상적으로 실행되신다는 것처럼  Memory Management가 대폭 개선된  최근의
2.6.X커널을 쓰시는 것도 한가지 방법이 될수 있을 것입니다.

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,041 명
  • 현재 강좌수 :  35,855 개
  • 현재 접속자 :  100 명