[질문] 대용량의 메모리가 필요한 프로그램에서 조심해야할 부분은? 혹은 미리 처리해야할 작업은?
안녕하세요, python programming을 하고 있습니다.
대용량의 메모리가 필요한 program을 만들고 있는데요,
프로그램이 돌아가는 것을 보니
(어쩔수 없이...)input size의 exponential이상으로 메모리를 잡아먹는것 같네요..ㅠㅠ
physical memory 128G , 64bit linux에서 프로그램을 돌리고 있는데요,,,
프로그램을 돌리다보니 input size가 적당할때는 프로그램이 완료가 되는데(이때 top했을때, 리소스,가상메모리는 각각 40G정도 사용하는것 같더군요..), input size가 그 이상이 될때에는, 어처구니 없는 곳에서 error가 납니다.( 메모리 allocation하는 부분이라든지, program 돌아가는 logic상 절대 일어날 수 없는 결과가 나와서 죽기도 하고, assertion을 정말 많이 박아놨거든요.., python이 segmentation fault가 나서 죽기도 합니다.), 그외 program안에서 popen도 수도없이 call하고, threading도 씁니다. 그러나, 각 sub thread는 간단한 popen만하고 resource는 많이 안씁니다. main thread에서만 엄청나게 memory를 씁니다. 그러나 python에서 out of memory exception은 난적이 없네요...
지금 stack size등 unlimit으로 설정하고 돌려보고 있긴한데요( limit, unlimit<-이것도 상관이 있나요?? )
대용량의 메모리가 필요한 program에서 미리 처리해줘야할 system설정이나, program skill 같은것이 있나요?
그럼 고수님들의 조언 부탁드리겠습니다.
감사합니다.
실제 사용중일때 메모리는 얼마나 쓰게되나요? cat
실제 사용중일때 메모리는 얼마나 쓰게되나요?
cat /proc/meminfo 라던지 cat /proc/cpuinfo 와 uname -a 정도는 같이 올려주는 센스
댓글 달기