Linux 프로세스 관리

LinuxBeginner
지금 연습하기

소개

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

성과

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

  • ps를 사용하여 프로세스를 나열하고 필터링합니다.
  • top을 사용하여 실시간으로 프로세스를 모니터링합니다.
  • free를 사용하여 시스템 메모리 사용량을 확인합니다.
이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 85%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

모든 프로세스 목록 보기

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 프로세스 관리에 대한 이해를 높이기 위해 이러한 명령을 직접 실험하는 것을 주저하지 마십시오. 이러한 도구를 더 많이 사용할수록 더 직관적으로 다가올 것입니다.