ps 명령의 메모리(rss)가 top 명령에 표시된 메모리와 다른 이유는 무엇입니까?

ps 명령의 메모리(rss)가 top 명령에 표시된 메모리와 다른 이유는 무엇입니까?

MacOS Catalina에서 프로세스의 메모리 사용량을 확인할 때 ps명령이 상단에 표시된 메모리 사용량과 다른 RSS 값을 표시하는 것을 발견했습니다.

$> ps e -o command,vsize,rss,%mem|grep "myapplication"|head -n 1
myapplication  4594896  51364  0.3

RSS -> 51364

top
PID    COMMAND       %CPU TIME    #TH             #WQ  #PORT MEM    
48106  myapplication 115.7        09:06.12 69/1   1    101   37M+

메모리 -> 37M

왜 그런 차이가 있습니까?

고쳐 쓰다:

IntelliJ 프로세스의 또 다른 예:

top -pid 357
PID  COMMAND      %CPU TIME     #TH   #WQ  #POR MEM    PURG CMPRS  PGRP PPID STATE    BOOSTS        %CPU_ME %CPU_OTHRS UID       FAULTS    COW   MSGSENT  MSGRECV  SYSBSD
357  idea         2.6  03:16:46 112   1    925  4906M  0B   1583M  357  1    sleeping  0[2884]      0.00000 0.00000    281451937 28337096  54627 8404446+ 2733245+ 156093159+

인기 프로그램4906M

ps aux
USER               PID  %CPU %MEM        VSZ    RSS   TT  STAT STARTED      TIME COMMAND

xxxxxxx            357   3.6 14.5 180050484 2430728   ??  S     1:44PM 196:48.70 /Applications/IntelliJ IDEA.app/Contents/MacOS/idea -psn_0_73746

ps RSS 표시2430728(지식 기반)

답변1

가장 그럴듯한 이유는 ps가 상주 메모리를 표시하는 반면 top은 총 메모리 또는 가상 메모리(예를 들어 교체 및 공유 메모리 포함)를 표시하기 때문입니다.

이를 포함하여 많은 질문이 있습니다.https://stackoverflow.com/questions/7880784/what-is-rss-and-vsz-in-linux-memory-management하지만 그렇기 때문에 여기서는 서로 다른 가치관을 가지고 있습니다.

관련 정보