이상을 꿈꾸는 몽상가.. 프로그래밍을 좋아함..


Process Status 사용법

  ps -eo user,pid,ppid,rss,vsz,size,pmem,pcpu,time,comm

  Result>
  USER   PID   PPID  RSS     VSZ      SIZE    %MEM  %CPU  TIME      CMD
  user1  2699  2615  431076  1421496  991748  7.1   0.9   00:07:44  /opt/google/chrome/
  user1  2584  2016  242248  1266588  596076  4.0   0.9   00:08:06  /opt/google/chrome/
  user1  1750  2615  172932  925232   562376  2.8   0.4   00:00:15  /opt/google/chrome/c
  user1  2841  2016  163652  735372   281308  2.7   0.0   00:00:13  /usr/bin/python3 /us
  user2  1099     1  147772  956008   899016  2.4   0.0   00:00:48  /usr/sbin/mysqld

프로세스별로 메모리, CPU 등의 상태를 파악하는데 유용합니다.

프로세스별 메모리 값을 합쳐서 전체 메모리 사용량을 구할 수 있습니다.
하지만 Shared Memory를 사용하는 프로세스들이 존재한다면 중복이 발생하므로 실제 값보다 크게 계산 됩니다.


Ubuntu의 용어와 명령어를 기준으로 설명합니다.

명령어 팁

상위 N개 출력

  • 상위 10개를 추력하기 위해서는 맨 뒤에 --sort -rss | head -n 10 을 추가합니다.
  ps -eo user,pid,ppid,rss,vsz,size,pmem,pcpu,time,comm --sort -rss | head -n 10

Command 상세하게 출력

  • comm를 cmd로 변경합니다.
  ps -eo user,pid,ppid,rssize,vsize,size,pmem,pcpu,time,cmd --sort -rss | head -n 10

메모리 출력량

RSS (alias RSSSIZE)

resident set size, the non-swapped physical memory that a task has used (in kiloBytes).
(출처 : Ubuntu Manual )

  • 프로세스가 실제 점유하고 있는 물리적 메모리의 사이즈입니다.
  • Swap에 사용되는 메모리는 제외합니다.

VSZ (alias VSIZE)

virtual memory size of the process in KiB(1024-byte units). Device mappings are currently excluded; this is subject to change.
(출처 : Ubuntu Manual )

  • 결론적으로 실제 메모리 사용량을 파악할 시에는 의미있는 값이 아닙니다.
  • 변할 수 있는 값이라는 것으로 봐선 실제 메모리 사용량의 limit 으로 볼 수도 없습니다.

  • RSS 는 킬로바이트인데, VSZ는 킬비바이트로 출력됩니다. 단위를 다르게 출력한 이유는 모르겠습니다.

Virtual Memory

가상 메모리는 메모리를 관리하는 방법의 하나로, 각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식을 말한다.
이러한 방식은 멀티태스킹 운영체제에서 흔히 사용되며, 실제 주기억장치보다 큰 메모리 영역을 제공하는 방법으로도 사용된다. 가상적으로 주어진 주소를 가상 주소(virtual address) 또는 논리 주소(logical address) 라고 하며, 실제 메모리 상에서 유효한 주소를 물리 주소(physical address) 또는 실주소(real address)라고 한다. 가상 주소의 범위를 가상 주소 공간, 물리 주소의 범위를 물리 주소 공간이라고 한다.
가상 주소 공간은 메모리 관리 장치(MMU) 에 의해서 물리 주소로 변환된다.

이 덕분에 프로그래머는 가상 주소 공간상에서 프로그램을 짜게 되어 프로그램이나 데이터가 주메모리상에 어떻게 존재하는지를 의식할 필요가 없어진다.

대부분의 현대적 아키텍처와 운영체제는 가상 메모리 기능을 제공하며, 각각의 응용프로그램에 더 적합한 메모리 관리를 위해 어도비 포토샵과 같은 일부 응용 프로그램은 스스로 가상 메모리를 관리하기도 한다.
(출처 : 위키피디아 )

SIZE

approximate amount of swap space that would be required if the process were to dirty all writable pages and then be swapped out. This number is very rough!
(출처 : Ubuntu Manual )

  • Swap 을 위한 메모리 공간입니다.
  • 이 메모리 량은 굉장히 대략적인 수치입니다.

References


Donations ❤

제가 작성한 글이 작게라도 도움이 되었기를 바랍니다.
관심 가져주시는 분이 있는 것을 느끼고 힘내기 위해 기부 버튼을 만들어봤습니다.
혹시 가능하시다면 $1 라도 기부 부탁드립니다 ^^





Associated Posts

관련된 주제를 살펴볼 수 있도록 동일한 Tag를 가진 글들을 모아뒀습니다. 제목을 눌러주세요.

  • 유용한 Linux 명령어


    유용하게 사용하는 Linux 명령어를 기록해봅니다.


  • Linux에서 컴파일 설치법을 알아야하는 이유


    GCC Compiler
    (이미지 출처 : https://gcc.gnu.org)

    Linux에서 뭔가 설치하려고 인터넷을 검색해보면
    컴파일 설치 방법에 대해서 가이드가 득실득실 합니다.

    Debian계열의 Ubuntu 에서는 apt-get가 있고
    CetnOS, RHEL 에서는 yum 이라는 편한 package-manager가 있는데..
    굳이 왜 컴파일해서 설치하는 법을 알아야할까요?


  • 패키지가 설치 된 위치 찾기 in Ubuntu


    Windows 에서는 대부분 Program files 디렉토리에 설치가 되는 편인데
    Ubuntu 는 좀 이곳저곳에 설치되는 느낌이 강합니다.

    어떤 방법으로 설치하느냐에 따라서도 좀 달라지고
    게다가 어떤 계정으로 설치하느냐에 따라 달라지는 것 같기도 하고요.

    패키지가 설치 된 디렉토리 찾는법을 알아보겠습니다.



Disqus Social Community

SNS계정으로 댓글을 달아도 SNS에 글이 남지 않습니다.
이메일 주소 입력으로 글을 남길 수 있으며, 답변이 달리면 이메일로 알림을 받을 수 있습니다.

i