Solaris, HP-UX및
AIX에서 프로세스 크기를 얻는 올바른 방법은 무엇인가요? top
또는 ps -o vsz
또는 다른 것을 사용해야 하나요?
크기,
rss,
rprvt,
rshrd및 기타 모호해 보이는 약어에 대한 정확한 정의는 OS마다 다릅니다. top
및 ps
명령에 대한 설명서 페이지에는 일종의 설명이 있지만, 이러한 설명은 모두 매우 단순화되어 있습니다(또는 오래 전에 사라진 커널 구현에 기반하고 있습니다).
'프로세스 크기'라는 개념은 일반적인 경우에서 정확히 정의하기가 매우 어렵습니다. 특정 경우의 해답은 OS의 실제 메모리 관리 구현에 따라 크게 달라지며, 대부분의 사용자(및 대부분의 개발자)의 머릿속에 존재하는 깔끔한 '프로세스 크기' 개념만큼 만족스러운 경우는 드뭅니다.
예를 들어, 주어진 여유 메모리에서 한 번에 몇 개의 프로세스를 실행할 수 있는지 정확히 알려주는 숫자는 없습니다(또는 그 어떤 조합도 가능하지 않습니다). 그러나 실제로 가장 좋은 방법은 이 숫자가 왜 필요한지, 그리고 이 숫자를 어디에 사용할 것인지에 대한 관점에서 접근하는 것입니다. 이 정보가 주어지면 더 유용한 답변을 얻을 수 있을 것입니다.
예, VSZ에서 잠글 수 있습니다.
'ps u'는 가상 메모리 크기와 상주 세트 크기인 VSZ와 RSS를 제공합니다. RSS는 프로세스에 할당된 물리적 메모리의 양이고 VSZ는 프로세스의 가상 메모리 크기입니다. 프로그램의 복사본이 여러 개 실행 중인 경우 VSZ의 많은 메모리가 해당 프로세스 간에 공유됩니다.