Linux에서 프로세스당 메모리 사용량을 확인하는 방법

How Check Memory Usage Per Process Linux



오늘날 컴퓨터는 한 번에 많은 프로그램을 실행할 수 있습니다. CPU는 멀티태스킹을 처리하는 여러 코어를 가지고 있기 때문에 CPU는 이러한 모든 프로그램을 처리하는 데 문제가 없습니다.

이러한 각 프로그램은 하나 이상의 프로세스로 실행됩니다. 모든 프로세스는 자체적으로 일정량의 RAM 또는 메모리를 할당합니다. 프로세스가 올바르게 작동하려면 필수적입니다. 프로세스가 충분한 RAM이나 메모리를 할당하지 못하면 프로세스를 생성할 수 없고 프로그램을 시작할 수 없습니다.







따라서 컴퓨터에서 수행하는 기본 작업 중 하나는 각 프로세스에서 사용 중인 메모리 또는 RAM(Random Access Memory)의 양을 확인하는 것입니다. 컴퓨터의 RAM이나 메모리가 제한되어 있기 때문입니다.



어떤 프로그램을 실행하려고 하는데 메모리가 부족하여 실패하는 경우를 상상해 보십시오. 일부 프로세스가 지금 필요하지 않은 많은 메모리를 사용하고 있을 수 있습니다. 중요한 프로그램을 시작할 수 있도록 이러한 프로세스를 종료하거나 중지하여 RAM 또는 메모리를 확보할 수 있습니다.



이 기사에서는 Linux 시스템에서 실행되는 각 프로세스의 메모리 사용량을 확인하는 방법을 보여줍니다. 이 기사의 모든 데모에는 Debian 9 Stretch를 사용할 것입니다. 그러나 모든 최신 Linux 배포판에서 작동해야 합니다. 시작하자.





당신은 사용할 수 있습니다 추신 Linux에서 모든 프로세스의 메모리 사용량을 확인하는 명령입니다. 이 절차에는 한 가지 문제가 있습니다. 추신 프로세스가 KB 또는 MB 형식으로 사용하는 메모리 양을 실제로 표시하지 않지만 백분율로 사용 중인 메모리 양을 보여줍니다.

다음 명령을 사용하여 Linux 운영 체제에서 실행 중인 모든 프로세스의 메모리 사용량(백분율)을 확인할 수 있습니다.



$추신 -또는PID, 사용자,%나 나,명령도끼| 종류 -NS -k3 -NS

보시다시피, 메모리 사용량이 백분율로 표시된 모든 프로세스는 내림차순으로 나열됩니다(대부분의 메모리를 사용하는 프로세스가 먼저 나열됨).

pmap으로 프로세스의 메모리 사용량 확인:

다음을 사용하여 사람이 읽을 수 있는 형식(KB 또는 킬로바이트)으로 프로세스 또는 프로세스 집합의 메모리를 확인할 수 있습니다. 피맵 명령. 메모리 사용량을 확인하려는 프로세스의 PID만 있으면 됩니다.

예를 들어 PID 917을 사용하는 프로세스가 얼마나 많은 메모리를 사용하고 있는지 확인하려고 한다고 가정해 보겠습니다. 그러려면 실행 피맵 다음과 같이:

$수도피맵917

보시다시피 프로세스 917에서 사용하는 총 메모리는 516104KB 또는 킬로바이트입니다. PID 917을 사용하여 프로세스를 실행하는 데 필요한 라이브러리 및 기타 파일의 메모리 사용량도 여기에서 확인할 수 있습니다.

라이브러리 또는 기타 종속 파일이 사용하는 메모리 양에 신경 쓰지 않는다면 다음을 실행하십시오. 피맵 다음과 같이:

$수도피맵917 | 꼬리 -N 1

보시다시피 PID 917을 사용하는 프로세스에서 사용한 총 메모리만 화면에 인쇄됩니다.

원하는 경우 다음을 사용하여 추가로 필터링할 수 있습니다. 어이쿠 KB 또는 킬로바이트 단위의 크기만 가져옵니다. 그러려면 실행 피맵 다음과 같이:

$수도피맵917 | 꼬리 -N 1 | 어이쿠 '/ [0-9] K / {$ 2 인쇄}'

보시다시피 KB 또는 킬로바이트 단위의 메모리 사용량만 인쇄됩니다.

이제 PID를 사용하여 여러 프로세스가 사용하는 메모리의 양을 나열할 수도 있습니다. 피맵 다음과 같이:

$수도피맵917 531 | 꽉 붙잡음

노트: 여기서 917과 531은 프로세스 ID 또는 PID입니다. 이 방법으로 원하는 만큼 PID를 입력할 수 있습니다.

pmap을 사용하여 모든 프로세스의 메모리 사용량을 킬로바이트 단위로 나열:

이 섹션에서는 Linux 운영 체제에서 실행되는 모든 프로세스의 메모리 사용량을 사람이 읽을 수 있는 형식(킬로바이트 또는 KB)으로 나열하는 자체 셸 스크립트를 작성하는 방법을 보여줍니다.

먼저 새 파일을 만듭니다. 시스템몬 다음 명령을 사용하여 현재 작업 디렉토리에서

$만지다시스템몬

이제 다음 명령으로 파일을 실행 가능하게 만드십시오.

$chmod+x 시스템

시스템몬 실행 중인 모든 프로세스를 표시하는 셸 스크립트입니다. PID , 소유자 , 메모리 (KB 내림차순) 및 명령 . 시작하자.

열기 시스템몬 좋아하는 텍스트 편집기로 스크립트를 사용하겠습니다. 케이트 .

이제 내가 실행할 첫 번째 명령은 PID , 소유자 그리고 명령 실행 중인 모든 프로세스 중 콜론(:) 기호로 구분하여 저장합니다. 라윈 변하기 쉬운. 그런 다음 출력을 반복하고 화면에 인쇄합니다.

보시다시피 올바른 출력을 얻고 있습니다.

이제 각 라인을 처리하고 콜론으로 구분된 정보를 별도의 변수에 저장할 차례입니다. 그것이 내가 7, 8, 9행에서 했던 일이다.

보시다시피 인쇄가 가능합니다 PID , 소유자 그리고 명령 지금 내 자신의 형식으로.

이제 각 PID의 메모리 사용량을 가져올 시간입니다. 10행이 바로 그 역할을 합니다.

보시다시피 모든 것이 완벽하게 작동합니다. 이제 각 프로세스의 메모리 사용량도 킬로바이트(KB)로 인쇄할 수 있습니다.

이제 출력을 보기 좋게 포맷하는 일만 남았습니다. 테이블 형식을 선호합니다. 5행은 테이블의 각 열 머리글을 인쇄합니다.

마지막으로 나는 인쇄했다. PID , 소유자 , 메모리 (KB) 및 명령 14행을 사용하여 표 형식으로 각 프로세스의

보시다시피, 그것은 잘 작동합니다. 약간의 문제가 있지만 프로세스가 메모리 사용량에 따라 내림차순으로 올바르게 정렬되지 않습니다.

이를 해결하기 위해 제거했습니다. 정렬 -bnr -k3 3행에서 모든 것을 쉘 함수로 감쌌습니다. sysmon_main() . 그런 다음 정렬 작업을 종류 명령.

최종 셸 스크립트는 다음과 같습니다.

보시다시피 훌륭하게 작동합니다.

이제 다음과 같은 위치로 이동할 수 있습니다. /usr/bin 다음과 같이 다른 명령과 마찬가지로 실행합니다.

$수도 뮤직비디오 -V시스템몬/usr/오전

실행 중 시스템몬 :

이 기사를 읽어 주셔서 감사합니다.