Linux 프로세스 관리

LinuxBeginner
지금 연습하기

소개

이 랩에서는 프로세스 및 시스템 리소스를 관리하기 위한 필수적인 Linux 도구를 소개합니다. 초보자로서, ps, top, 그리고 free 명령어를 사용하여 시스템 프로세스 및 메모리 사용량을 모니터링하고 분석하는 방법을 배우게 됩니다. 이러한 도구는 Linux 시스템에서 무슨 일이 일어나고 있는지 이해하는 데 기본적입니다.

성과

이 랩을 마치면 다음을 수행할 수 있습니다:

  • ps를 사용하여 프로세스를 나열하고 필터링합니다.
  • top을 사용하여 실시간으로 프로세스를 모니터링합니다.
  • free를 사용하여 시스템 메모리 사용량을 확인합니다.

모든 프로세스 목록 보기

ps 명령어를 사용하여 시스템에서 실행 중인 모든 프로세스를 나열하는 것으로 시작해 보겠습니다.

  1. 터미널을 엽니다. /home/labex/project 디렉토리에 있어야 합니다. 확실하지 않은 경우, pwd를 입력하고 Enter 키를 눌러 현재 디렉토리를 확인할 수 있습니다.

  2. 다음 명령을 실행하여 모든 프로세스를 나열합니다:

    ps -e
    

    이렇게 하면 프로세스 ID (PID), 터미널 (TTY), CPU 시간 및 명령 이름을 포함한 모든 프로세스 목록이 표시됩니다.

  3. 잠시 시간을 내어 출력을 살펴보십시오. 시스템 프로세스와 사용자 프로세스를 볼 수 있습니다. 각 열의 의미는 다음과 같습니다:

    • PID: 고유한 프로세스 ID
    • TTY: 프로세스와 관련된 터미널 유형
    • TIME: 프로세스에서 사용한 CPU 시간의 양
    • CMD: 명령 또는 프로그램 이름

    낯선 프로세스 이름이 보이더라도 걱정하지 마십시오. 이 중 많은 프로세스는 백그라운드에서 실행되는 시스템 프로세스입니다.

상세 프로세스 정보 표시

이제 프로세스에 대한 더 자세한 정보를 얻어보겠습니다.

  1. 다음 명령을 실행합니다:

    ps aux
    

    이 명령어는 프로세스를 시작한 사용자, CPU 및 메모리 사용량, 전체 명령줄을 포함하여 모든 프로세스의 상세 목록을 보여줍니다.

  2. 출력 결과가 상당히 길 수 있습니다. less 명령어를 사용하여 더 쉽게 볼 수 있습니다:

    ps aux | less
    

    이것은 ps aux의 출력을 less로 파이프하여 스크롤할 수 있도록 합니다.

  3. less 뷰어에서:

    • 위쪽 및 아래쪽 화살표 키를 사용하여 스크롤합니다.
    • Space 키를 눌러 한 페이지 앞으로 이동합니다.
    • b 키를 눌러 한 페이지 뒤로 이동합니다.
    • 완료되면 q 키를 눌러 less 뷰어를 종료합니다.
  4. 무엇을 보고 있는지 자세히 살펴보겠습니다:

    • USER: 프로세스의 소유자
    • PID: 프로세스 ID
    • %CPU: CPU 사용량
    • %MEM: 메모리 사용량
    • VSZ: 가상 메모리 크기 (Virtual memory size)
    • RSS: Resident Set Size (스왑되지 않은 물리적 메모리 사용량)
    • TTY: 터미널 유형
    • STAT: 프로세스 상태
    • START: 프로세스 시작 시간
    • TIME: 누적 CPU 시간
    • COMMAND: 모든 인수를 포함한 명령

지금 당장 이 모든 것을 이해하지 못하더라도 걱정하지 마십시오. 경험이 쌓이면서 이러한 용어에 익숙해질 것입니다.

사용자별 프로세스 필터링

특정 사용자에게 속한 프로세스만 표시하도록 프로세스를 필터링할 수 있습니다. 이는 특정 사용자 계정에 의해 소유된 프로세스에 집중하려는 경우 유용합니다.

  1. root 사용자가 소유한 프로세스를 보려면 다음을 실행합니다:

    ps -u root
    

    root 사용자는 Linux 시스템의 슈퍼유저 (superuser) 로, 전체 시스템 접근 권한을 가지고 있습니다. 많은 시스템 프로세스가 root 계정으로 실행됩니다.

  2. 현재 사용자 (labex) 가 소유한 프로세스를 보려면 다음을 실행합니다:

    ps -u labex
    

    이렇게 하면 사용자 계정에서 시작한 모든 프로세스가 표시됩니다.

  3. 이 두 명령의 출력을 비교해 보십시오. root 아래에서 사용자 계정보다 더 많은 프로세스를 볼 수 있을 것입니다.

top 명령어로 실시간 프로세스 모니터링

top 명령은 실행 중인 프로세스에 대한 동적이고 실시간적인 보기를 제공합니다. 이는 시스템의 라이브 대시보드와 같습니다.

  1. 다음 명령을 실행합니다:

    top
    
  2. CPU 사용량별로 정렬된 시스템 프로세스의 지속적으로 업데이트되는 디스플레이를 볼 수 있습니다. 디스플레이는 두 개의 주요 섹션으로 나뉩니다:

    • 상단의 요약 영역, 시스템 전체 정보를 표시합니다.
    • 프로세스 목록, 개별 프로세스의 세부 정보를 표시합니다.
  3. top을 사용하는 동안 다양한 명령을 사용할 수 있습니다:

    • M 키를 눌러 CPU 대신 메모리 사용량으로 정렬합니다.
    • P 키를 눌러 CPU 사용량으로 정렬하는 것으로 돌아갑니다.
    • T 키를 눌러 실행 시간별로 정렬합니다.
    • N 키를 눌러 PID 별로 정렬합니다.
    • 위쪽 및 아래쪽 화살표 키를 사용하여 프로세스 목록을 탐색합니다.
    • q 키를 눌러 top을 종료합니다.
  4. 요약 영역에는 중요한 시스템 정보가 포함되어 있습니다:

    • 시스템 가동 시간 및 부하 평균
    • 작업 요약 (총, 실행 중, 절전, 중지됨, 좀비)
    • CPU 상태 (사용자, 시스템, 유휴 등)
    • 메모리 사용량 (총, 사용 가능, 사용 중, 버퍼/캐시)
    • 스왑 사용량

top을 탐색하는 데 시간을 할애하십시오. 이는 시스템에서 실시간으로 무슨 일이 일어나고 있는지 이해하는 강력한 도구입니다.

시스템 메모리 사용량 확인

free 명령을 사용하면 시스템의 메모리 사용량을 빠르고 쉽게 확인할 수 있습니다.

  1. 다음 명령을 실행하여 사람이 읽을 수 있는 형식으로 메모리 사용량을 확인합니다:

    free -h
    

    -h 옵션은 "human-readable"을 의미하며, 크기를 1024 의 거듭제곱으로 표시합니다 (예: 1K, 234M, 2G).

  2. 다음과 유사한 출력을 볼 수 있습니다:

                  total        used        free      shared  buff/cache   available
    Mem:           7.7G        4.1G        287M        624M        3.3G        2.7G
    Swap:          2.0G        506M        1.5G
    

    각 행과 열의 의미를 자세히 살펴보겠습니다:

    • Mem: 이 행은 시스템의 RAM 에 대한 정보를 보여줍니다.
    • Swap: 이 행은 스왑 공간 (가상 메모리) 에 대한 정보를 보여줍니다.

    열:

    • total: 설치된 총 메모리
    • used: 현재 사용 중인 메모리
    • free: 사용하지 않는 메모리
    • shared: 여러 프로세스에서 공유하는 메모리
    • buff/cache: 커널 버퍼, 페이지 캐시 및 슬랩에서 사용되는 메모리
    • available: 스와핑 없이 새 애플리케이션을 시작하는 데 사용할 수 있는 메모리의 추정치
  3. "free" 메모리가 적어 보인다고 해서 당황하지 마십시오. Linux 는 시스템 성능을 향상시키기 위해 사용 가능한 메모리를 디스크 캐싱에 사용하지만, 이 메모리는 애플리케이션에서 필요할 경우 회수될 수 있습니다.

요약

이 랩에서는 주요 Linux 프로세스 관리 도구를 사용하는 방법을 배웠습니다:

  • ps를 사용하여 프로세스를 나열하고 필터링합니다.
  • top을 사용하여 실시간으로 프로세스를 모니터링합니다.
  • free를 사용하여 시스템 메모리 사용량을 확인합니다.

이러한 명령은 시스템 관리 및 문제 해결에 필수적입니다. 시스템에서 실행 중인 내용, 리소스가 어떻게 사용되고 있는지에 대한 통찰력을 제공하며 잠재적인 문제를 식별하는 데 도움이 될 수 있습니다.

이러한 도구에 익숙해지면 추가 옵션을 탐색하고 다른 Linux 명령과 결합하여 보다 고급 시스템 분석을 수행할 수 있습니다. 예를 들어:

  • grep과 함께 ps를 사용하여 특정 프로세스를 찾습니다.
  • top의 자세한 정보를 해석하여 리소스 집약적인 애플리케이션을 식별하는 방법을 배웁니다.
  • 스크립트에서 free를 사용하여 시간 경과에 따른 메모리 사용량을 모니터링합니다.

기억하세요, 연습이 완벽을 만듭니다! Linux 프로세스 관리에 대한 이해를 높이기 위해 이러한 명령을 직접 실험하는 것을 주저하지 마십시오. 이러한 도구를 더 많이 사용할수록 더 직관적으로 다가올 것입니다.