웹사이트 검색

리눅스에서 atop 명령어 가이드


atop 명령은 Linux에서 시스템 리소스를 모니터링하기 위한 도구입니다. 프로세스 수준에서 시스템 리소스의 부하량과 관련된 수많은 정보를 표시합니다. 이 유틸리티를 마스터하면 사용자에게 무한한 이점이 있을 수 있습니다.

먼저 시스템에 atop 명령을 설치해야 합니다. Debian/Ubuntu 사용자는 다음과 같이 할 수 있습니다.

sudo apt install atop

다른 Linux 사용자는 표준 패키지 관리자와 atop 키워드를 사용할 수 있습니다.

이 명령에는 시스템과 관련된 여러 기밀 정보를 표시하는 기능이 있습니다. 데이터 추상화를 방지하기 위해 sudo su 또는 sudo -s를 사용하여 높은 액세스 권한을 얻을 수 있습니다. sudo에 대한 완전한 문서가 있습니다.

atop 명령의 기본 출력

시스템 리소스의 모든 프로세스 수준 사용을 표시하려면 터미널에서 atop을 실행하면 됩니다.

atop

보시다시피 전체 레이아웃은 두 개의 패널로 나뉩니다. 상단 패널은 시스템 리소스의 누적 사용량을 제공하고 하단 패널은 각 프로세스에 대한 분해 정보를 표시합니다. 각각을 보자

atop 명령의 누적 통계

이 보기의 각 항목은 특정 시스템 리소스에 중점을 둡니다.

1. 프로세스 관련 통계

  • PRC - "프로세스\를 나타냅니다.\n
    • 처음 두 값은 sys(시스템) 및 사용자 프로세스에서 소비한 시간입니다.
    • 다음에는 총 프로세스 수가 #proc로 표시됩니다.
    • 다음 값은 현재 시스템에서 실행 중인 스레드 수입니다. (#trun)
    • #tslpi는 현재 잠자고 있고 중단 가능한 스레드 수를 나타냅니다.
    • #tslpu는 현재 잠자고 있고 중단할 수 없는 스레드 수를 나타냅니다.
    • 다음 값은 좀비 프로세스의 수입니다.
    • 다음은 복제 시스템 호출의 수입니다.
    • 마지막 값은 경과 시간 동안 종료된 프로세스 수입니다. (#exit)

    2. 성과 관련 통계

    • CPU - CPU 사용률과 관련이 있습니다.
      • 처음 두 값은 시스템 및 사용자 프로세스에 의한 모든 코어의 사용률을 나타냅니다.
      • 인터럽트 요청에 사용된 CPU 비율. (<코드>irq)
      • 다음 값은 결합된 모든 코어의 유휴 비율입니다.
      • 다음 값은 각 CPU 코어가 수행해야 하는 대기 시간을 나타냅니다.
      • 다음은 도루 시간의 백분율입니다.
      • guest는 다른 가상 머신에서 소비된 CPU 시간인 게스트 비율을 나타냅니다.
      • 마지막 두 값은 CPU의 현재 주파수를 나타냅니다.

      • 처음 세 값은 1분, 5분, 15분 등 서로 다른 기간의 평균 로드입니다.
      • 다음에 컨텍스트 전환 횟수(csw)
      • 다음은 인터럽트 수입니다(intr)
      • 마지막 값은 사용 가능한 CPU 수입니다.

      3. 메모리 관련 통계

      • MEM - 메모리 사용률
        • 지원되는 총 물리적 메모리.
        • 현재 사용 가능한 메모리입니다.\n
        • 현재 캐시 메모리입니다.\n
        • \buffer에서와 같이 buff는 파일 시스템 메타데이터에서 소비되는 메모리의 양입니다.
        • slab로 표시된 커널의 메모리 할당을 위한 메모리 합계입니다.\n
        • 공유 메모리의 양입니다.

        SWP - 메모리 교환.

        3. 디스크 관련 통계

        • DSK - 디스크 사용량
          • 첫 번째 값은 시스템이 요청을 처리하는 시간의 백분율을 나타냅니다.
          • 읽기 요청이 발행되었습니다.
          • 작성 요청이 발행되었습니다.
          • 읽기 요청당 데이터를 읽는 속도(KB)입니다.
          • 쓰기 요청당 데이터가 기록되는 속도(KB)입니다.
          • 다음 두 값은 디스크에서 읽고 쓰는 시간 속도(MB)입니다.
          • 마지막 값은 요청 처리에 소요된 평균 시간(밀리초)입니다.

          4. 네트워크 관련 통계

          • NET - 전송 계층의 네트워크 통계
            • transport는 데이터 프로토콜을 다루는 네트워킹의 전송 계층을 나타냅니다.
            • TCP 프로토콜에 따라 시스템이 수신한 세그먼트 수입니다. (tcpi)
            • 전송된 세그먼트 수입니다. (tcpo)
            • UCP 프로토콜에 대한 유사한 통계입니다. (UDP 입력의 경우 udpi) 및 UDP 출력의 경우 (udpo).
            • tcpao는 활성 TCP 열린 연결 수입니다.
            • 이전 tcppo의 반대는 수동 TCP 연결의 수이지만 여전히 열려 있습니다.
            • tcprs로 TCP 재전송 수치.
            • UDP 입력 오류의 udpie 수치.

            • network는 인터넷 프로토콜, IPv4 및 IPv6 결합을 처리하는 네트워크 계층을 나타냅니다.
            • 네트워크 인터페이스에서 수신한 IP 패킷 수입니다. (ipi)
            • 인터페이스에서 전송된 IP 패킷 수입니다. (ipo)
            • 다른 인터페이스로 전달되는 IP 패킷의 양. (ipfrw)
            • 전달된 IP 패킷의 양. (배달)
            • 마지막 두 항목은 네트워크 인터페이스에서 수신하고 전송한 ICMP 패킷의 수입니다.

            • 첫 번째 값은 wlp19s0과 같은 네트워크 인터페이스의 이름입니다.
            • 다음 두 패킷은 특정 인터페이스를 통해 수신 및 전송된 패킷 수입니다. (pckipcko)
            • sp와 같은 메가비트(Mbps) 단위의 네트워크 속도입니다.
            • 초당 비트가 수신 및 전송되는 속도입니다. (siso)
            • 수신 및 전송된 패킷의 오류 수입니다. (errierro).
            • 마지막 두 값은 양방향으로 삭제된 패킷입니다. (drpidrpo)

            이것으로 atop 명령의 상단 패널에 대한 설명을 마칩니다.

            프로세스별 시스템 리소스

            atop 명령의 값이 특정 시간 간격 후에 계속 업데이트된다는 점은 주목할 가치가 있습니다.

            atop 명령의 일반 출력에는 각 프로세스 항목에 대한 다음 세부 정보가 표시됩니다.

            • PID - 프로세스 ID.
            • SYSCPU - 시스템을 처리하는 동안 프로세스가 소비하는 CPU의 양.
            • USRCPU - 프로세스가 사용자 모드에서 실행되는 동안 소비되는 CPU의 양입니다.
            • VGROW - 마지막 값 업데이트 이후 프로세스가 점유한 가상 메모리의 양
            • RGROW - 마지막 값 업데이트 이후 증가한 상주(물리적) 메모리 양
            • RDDSK - 디스크 읽기 중에 전송되는 데이터의 크기
            • WRDSK - 디스크 쓰기 중에 전송되는 데이터의 크기
            • RUD - 프로세스가 실행되는 실제 사용자 ID입니다.
            • EUID - 프로세스가 실행되는 유효 사용자 ID입니다.
            • ST - 프로세스의 현재 상태
            • EXC - 프로세스 종료 후 종료 코드
            • THR - 프로세스 내의 스레드 수입니다.
            • S - 프로세스 기본 스레드의 현재 상태
            • CPU - 전체 프로세스의 CPU 사용률입니다.
            • CMD - 프로세스의 이름입니다.

            이 일반 출력에서 프로세스는 CPU 사용률을 기준으로 정렬됩니다. 보시다시피 이 특정 출력에서 모든 유형의 시스템 리소스에 대한 소량의 정보를 얻습니다.

            각 시스템 리소스 유형에 대한 프로세스 수준 정보를 연구해 보겠습니다.

            atop 명령의 메모리 기반 출력

            atop 명령은 시스템에서 실행 중인 각 프로세스의 메모리 소비를 연구할 수 있는 기회를 제공합니다. 다음을 실행하여 그렇게 할 수 있습니다.

            atop -m
            

            보시다시피 메모리 옵션 -m을 추가해도 상단 패널은 일정하게 유지됩니다. 이제 각 프로세스 항목의 열을 이해하겠습니다.

            • PID - 프로세스 ID.
            • TID - 스레드 ID.
            • MINFLT - 사용 가능한 페이지의 데이터에 액세스하여 해결된 사소한 페이지 오류 수
            • MAJFLT - 특히 디스크에서 데이터를 검색하여 해결된 주요 페이지 오류 수
            • VSTEXT - 프로세스 텍스트가 차지하는 가상 메모리.
            • VSLIBS - 프로세스의 공유 라이브러리가 차지하는 가상 메모리
            • VDATA - 프로세스 개인 데이터의 가상 메모리 크기
            • VSTACK - 프로세스 개인 스택의 가상 메모리 크기
            • VSIZE - 프로세스의 총 가상 메모리 크기.
            • RSIZE - 프로세스가 차지하는 총 상주 메모리.
            • MEM - 프로세스에서 소비하는 RAM의 백분율입니다.

            프로세스는 MEM 열을 기준으로 정렬됩니다.

            atop은 다소 대화형 명령 유틸리티이므로 자체 내에서 열을 변경할 수 있습니다. 정보가 표시되는 동안 특정 옵션을 입력하기만 하면 됩니다.

            예를 들어 터미널에서 atop을 실행한 후 m을 입력하기만 하면 메모리별 출력으로 전환할 수 있습니다.

            Linux에서 atom 명령을 사용한 디스크별 출력

            디스크 사용과 관련된 정보를 추출하려면 atop 명령과 함께 -d 옵션을 사용할 수 있습니다.

            atop -d
            

            디스크별 출력에는 눈에 띄는 내용이 많지 않습니다. 주요 결과 중 일부는 다음과 같습니다.

            • RDDSK - 디스크 읽기 중에 전송되는 데이터의 크기
            • WRDSK - 디스크 쓰기 중에 전송되는 데이터의 크기
            • WCANCL - 초기에 작성되었지만 나중에 철회된 데이터의 크기
            • DSK - 점유된 디스크의 백분율입니다.
            • CMD - 프로세스의 이름입니다.

            프로세스는 DSK 열을 기준으로 정렬된다는 점에 유의해야 합니다.

            atop 명령으로 백그라운드에서 실행 중인 명령 찾기

            이는 명령줄 출력 형식의 프로세스로 백그라운드에서 실행 중인 명령을 제공합니다.

            atop -c
            

            명령줄 열 아래에 줄을 복사하여 붙여넣으면 동일한 프로세스를 다시 실행할 수 있습니다. 이 출력은 프로세스를 시작하기 위해 백그라운드에서 실행된 명령을 정확하게 알려줍니다.

            스레드 기반 정보

            프로세스 정보를 검사하는 대신 atop 명령은 스레드별 리소스 사용률을 확인하는 기능을 제공합니다. 이 출력에 액세스하려면 다음을 실행할 수 있습니다.

            atop -y
            

            또는 명령이 이미 시스템 리소스 정보를 표시하고 있을 때 y 키를 누르십시오.

            시스템 리소스 열이 변경되지 않은 것이 분명합니다. 추가된 모든 것은 해당 프로세스의 스레드 수입니다.

            기타 정보

            atop 명령을 사용하여 추출할 수 있는 많은 종류의 정보가 있습니다. 유용한 것 중 일부는 다음과 같습니다.

            1. 프로세스 시작 시간 찾기

            -v 옵션을 사용하여 프로세스 특성을 얻을 수 있습니다.

            atop -v
            

            2. 시스템의 각 사용자에 대한 프로세스 수

            atop -au
            

            3. 프로세스가 작업 중인 코어는 무엇입니까?

            이러한 특정 종류의 정보는 프로세스의 스케줄링 특성에 속합니다. -s 옵션을 사용하여 액세스할 수 있습니다.

            atop -s
            

            몇 가지 '최상' 트릭

            유용할 수 있는 특정 atop 명령 트릭이 있습니다.

            • z 키를 사용하여 화면 일시 중지.
            • 값 업데이트의 시간 간격 변경 - i 키와 초 수를 사용하여 변경하고자 합니다.
            • 중단하여 t 키를 사용하여 값을 즉시 업데이트합니다.
            • 디스플레이 종료 - q 키 사용.

            결론

            우리는 atop 명령이 Linux 사용자가 처리하기에는 너무 많을 수 있다는 것을 알고 있습니다. 이 훌륭한 명령에 대해 배우려면 인내와 인내가 필요합니다. 질문이 있으시면 댓글 섹션에서 언제든지 핑을 보내주십시오.