문제

프로세스 크기를 얻는 올바른 방법은 무엇입니까 Solaris, HP-UX 그리고 AIX?우리는 사용해야합니까? top 또는 ps -o vsz 또는 다른 것?

도움이 되었습니까?

해결책

의 정확한 정의 vsize, rss, rprvt, rshrd, 및 기타 모호해 보이는 약어는 OS에 따라 다릅니다.매뉴얼 페이지 top 그리고 ps 명령에는 일종의 설명이 있지만 이러한 설명은 모두 크게 단순화되었습니다(또는 오랫동안 사라진 커널 구현을 기반으로 함).
"프로세스 크기"라는 개념은 일반적인 경우에 정확히 정의하기가 매우 어렵습니다.특정 사례의 답변은 OS의 실제 메모리 관리 구현에 크게 의존하며 대부분의 사용자(및 대부분의 개발자)의 마음 속에 존재하는 깔끔한 "프로세스 크기" 개념만큼 만족스럽지 않습니다.

예를 들어, 이러한 숫자 중 어느 것도(또는 이들의 조합도) 주어진 여유 메모리 양에서 한 번에 얼마나 많은 프로세스가 실행될 수 있는지 정확하게 알려주는 데 사용할 수 없습니다.하지만 실제로 가장 좋은 방법은 다음과 같은 목적을 달성하는 것입니다.왜 이 번호를 원하고, 어떤 용도로 사용할 건가요?해당 정보를 바탕으로 더 유용한 답변을 얻을 수 있을 것 같습니다.

다른 팁

Solaris에서는 다음을 사용하여 프로세스의 메모리 사용량에 대한 자세한 정보를 얻을 수 있습니다. pmap 명령.특히, pmap -x <pid> 프로세스의 메모리가 얼마나 공유되고 해당 프로세스에서 구체적으로 얼마나 사용되는지 보여줍니다.이는 프로세스의 "한계" 메모리 사용량을 계산하는 데 유용합니다. 이 기술을 사용하면 공유 라이브러리가 이중으로 계산되는 것을 방지할 수 있습니다.

예, VSZ에 문을 잠그는 것이 옳습니다.

ps u 가상 메모리 크기와 상주 세트 크기인 VSZ 및 RSS를 제공합니다.RSS는 프로세스에 할당된 실제 메모리의 양이고, VSZ는 프로세스의 가상 메모리 크기입니다.실행 중인 프로그램의 복사본이 여러 개 있는 경우 VSZ의 많은 메모리가 해당 프로세스 간에 공유됩니다.

루트로서 다음과 같은 모든 프로세스에 대한 상주 세트 크기를 요약했습니다.

ps ax -o rss | awk '{rss += $1;} END { print rss}'
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top