CodeGym /행동 /Docker SELF /시스템 프로세스 관리: ps, top, htop

시스템 프로세스 관리: ps, top, htop

Docker SELF
레벨 2 , 레슨 4
사용 가능

시스템 프로세스 관리: ps, top, htop

1. ps 명령 — 프로세스에 대한 정적 보기

만약 Linux가 레스토랑이었다면, 프로세스는 주방의 셰프였을 거야. 이건 메모리에 존재하는 프로그램의 실행 가능한 인스턴스야. 커맨드 라인에서 애플리케이션을 실행하거나 파일을 실행하면 프로세스가 생성되고, 완료될 때까지 자신의 작업을 수행해.

프로그래밍 관점에서 보면, 프로세스는 Linux 커널에 의해 관리되고, 각각 고유한 식별자 — PID (Process ID)를 가지고 있어.

ps (process status) 명령은 프로세스 목록을 보기 위한 기본 명령이야. 이 명령은 시스템의 현재 프로세스에 대한 정적 스냅샷(=현재 상태)을 보여줘. ps를 사용하면 실행 중인 프로세스에 대한 정보를 얻을 수 있어: 그들의 ID, 소유자, 커맨드 라인, 사용된 리소스 등.

기본 문법

기본 명령은 다음과 같이 생겼어:

ps

이건 현재 터미널에서 실행 중인 프로세스를 보여줄 거야.

근데 이렇게는 너무 심심하지? 양념 좀 더해보자:

ps aux

여기서:

  • a — 다른 사용자의 프로세스도 보여줘.
  • u — 좀 더 읽기 쉬운 포맷을 추가해.
  • x — 터미널에 연결되지 않은 프로세스도 포함시켜.

출력 예시:

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.1  22556  1044 ?        Ss   12:34   0:01 /sbin/init
student      2345  0.1  0.2  34567  2048 pts/0    S+   12:35   0:02 bash
student      4567  0.3  0.5  56789  5144 pts/0    R+   12:36   0:03 ps aux
  • USER: 프로세스를 실행한 사용자.
  • PID: 프로세스 식별자.
  • %CPU: CPU 사용 비율.
  • %MEM: 메모리 사용 비율.
  • COMMAND: 프로세스를 호출한 명령.

고급 옵션

  1. 프로세스의 트리 구조를 살펴보자:

    ps -ejH
    

    이건 어떤 프로세스가 다른 프로세스의 '자식'인지 이해하는데 도움이 돼.

  2. PID로 필터링:

    ps -p 1234
    

    여기서 1234는 너의 PID. 지정된 프로세스만 출력해.

  3. 전체 명령 라인과 함께 모든 프로세스를 출력:

    ps -ef
    

2. top 명령 — 프로세스 실시간 모니터링

top은 마치 프로세스를 위한 텔레비전 같은 거야. 프로세스가 실시간으로 어떻게 변화하는지 볼 수 있어. 서버를 실행하거나 컴퓨터가 갑자기 느려졌다면, top이 최고의 친구가 되어줄 거야. 이걸로 어떤 프로세스가 CPU와 메모리를 가장 많이 사용하는지 한눈에 알아볼 수 있어.

사용 기본

터미널에 이렇게 입력해봐:

top

출력 예시:

  • 상단 줄은 "시스템 부하"를 보여줘.
  • 중간 부분은 작업에 대해 알려줘 (전체, 활성, 대기, 좀비).
  • 하단 부분은 메모리에 대한 내용이야.
  • 맨 아래 블록은 프로세스 목록이고, PID, USER, %CPU, COMMAND 같은 유용한 정보를 포함하고 있어.

top에서 내비게이션

  • k를 눌러서 프로세스를 종료할 수 있어. PID를 입력해.
  • P를 눌러서 프로세스를 CPU 사용량에 따라 정렬해.
  • M를 눌러서 메모리 사용량에 따라 정렬해.
  • q를 눌러서 나갈 수 있어.

3. htop 유틸리티 — 편리한 인터페이스

top이 너무 "투박하다"고 느껴질 때, htop으로 와봐. 이건 프로세스 모니터링을 위한 시각적 인터페이스야. 컬러도 있고, 마우스도 지원하고, 훨씬 사용자 친화적으로 설계되었어.

설치

만약 htop이 설치되어 있지 않다면, 다음을 추가해:

sudo apt-get install htop # Debian 기반 배포판용
sudo yum install htop     # RedHat 기반 배포판용

실행

htop을 실행하려면, 그냥 다음을 입력해:

htop

인터페이스 예시:

htop의 장점:

  • 프로세스 목록 스크롤 가능.
  • CPU, 메모리, swap의 컬러 강조 표시.
  • 프로세스를 종료하는 편리한 키 (예: F9).

4. 실습 과제

문제 1: 가장 "욕심쟁이" 프로세스를 찾아라

  • top이나 htop을 열어봐.
  • CPU 사용량 기준으로 프로세스를 정렬하고 해당 PID를 확인해.

문제 2: 프로세스를 종료해

  • kill을 사용해서 프로세스를 "죽여봐":
    kill <PID>
    

문제 3: 프로세스 분석

  • ps를 사용해서 PID 프로세스를 분석해봐:
    ps -p <PID> -o pid,user,%cpu,%mem,cmd
    

주의점과 추천사항

  1. 시스템 작동에 중요하지 않다는 확신이 없다면 프로세스를 죽이지 마. 예를 들어, PID 1번 프로세스는 OS의 핵심인 init 프로세스야.
  2. htop 유틸리티는 별도로 설치해야 할 수도 있어. 명령어가 작동하지 않는다면 설치를 확인해봐.
  3. 권한 문제에 주의해. 다른 사용자가 실행한 프로세스를 종료하려면 관리자 권한이 필요할 수 있어.

실제 사용해보면 이 도구들이 Linux 작업을 엄청 유연하고 직관적으로 만들어준다는 걸 알게 될 거야. 이제 너는 프로세스의 보스야!

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION