Linux에서 rss의 전체 이름은 "Resident Set Size"입니다. 이는 상주 메모리 세트를 나타내며 RAM에서 해당 프로세스가 차지하는 실제 물리적 메모리 크기를 나타내며 SWAP에서 차지하는 가상 메모리는 포함되지 않습니다. RSS에는 스왑 파티션에 들어가는 메모리가 포함되지 않지만 공유 라이브러리가 메모리에 있는 한 공유 라이브러리가 차지하는 메모리는 포함됩니다.
이 튜토리얼의 운영 환경: CentOS 6 시스템, Dell G3 컴퓨터.
Linux 메모리 관리에는 top 명령이든 ps 명령이든 RSS와 VSZ라는 두 가지 용어가 있습니다. 예:
[root@localhost ~]# ps aux #查看系统中所有的进程 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.2 2872 1416 ? Ss Jun04 0:02 /sbin/init root 2 0.0 0.0 0 0 ? S Jun04 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S Jun04 0:00 [migration/0] root 4 0.0 0.0 0 0 ? S Jun04 0:00 [ksoftirqd/0] …省略部分输出…
여기에서는 RSS 및 VSZ에 대해 알아보도록 하겠습니다.
linux RSS
RSS는 Resident Set Size로 해당 프로세스가 RAM에서 차지하는 실제 물리적 메모리 크기를 나타내며 SWAP에서 차지하는 가상 메모리는 포함되지 않습니다. 스택 및 힙의 전체 메모리를 포함하여 공유 라이브러리를 사용하는 메모리의 메모리 크기도 계산에 포함됩니다.
RSS에는 스왑 파티션으로 들어가는 메모리가 포함되지 않습니다.
RSS에는 공유 라이브러리가 차지하는 메모리가 포함됩니다(공유 라이브러리가 메모리에 있는 한).
RSS에는 할당된 스택 메모리와 힙 메모리가 모두 포함됩니다.
linux VSZ
VSZ(가상 메모리 크기)는 가상 메모리 크기를 나타내며 스왑 메모리 및 공유 라이브러리 메모리를 포함하여 프로세스가 액세스할 수 있는 모든 메모리를 나타냅니다.
VSZ에는 스왑 파티션에 들어가는 메모리와 공유 라이브러리가 차지하는 메모리를 포함하여 프로세스가 액세스할 수 있는 모든 메모리가 포함됩니다.
예:
프로세스 A의 바이너리 파일 크기가 500KB이고 2500KB 공유 라이브러리에 연결되어 있는 경우 스택/힙 크기는 200KB이며, 이 200KB 중 100KB는 메모리에 있고 100KB는 SWAP 공간에 있으며 1000KB의 공유 라이브러리와 400KB의 자체 바이너리를 로드합니다. 그러면
RSS:
400K + 1000K + 100K = 1500K
VSZ
500K + 2500K + 200K = 3200K
일부 RSS는 공유 라이브러리에서 나오며 공유 라이브러리는 여러 프로세스에서 사용될 수 있으므로 모든 프로세스의 RSS를 합산하면 시스템 메모리보다 커질 수 있습니다. .
RSS와 다르게 공유 메모리를 계산하는 새로운 매개변수 PSS(비례 세트 크기)가 있습니다. 이전 예를 참조하면 동일한 공유 라이브러리를 사용하는 두 개의 프로세스가 있는 경우:
PSS:
400K + (1000K/2) + 100K = 400K + 500K + 100K = 1000K
스레드가 동일하게 공유합니다. 주소 공간이므로 프로세스 내의 모든 스레드는 동일한 RSS, VSZ 및 PSS를 갖습니다. ps 또는 top 명령을 사용하여 이 정보를 관찰할 수 있습니다.
관련 추천: "Linux 비디오 튜토리얼"
위 내용은 리눅스에서 RSS는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!