리눅스 시스템 모니터링

지정온·2023년 9월 21일
0

uname : 시스템과 커널의 정보

  • 시스템과 커널의 정보를 확인 -a옵션을 사용하면 모든 정보 확인

    [Linux : 커널명] [ip-172-31-20-134 : 호스트명]
    [5.15.0-1036-aws : 커널 릴리즈 정보] [#40~20.04.1-Ubuntu : 커널 버전] 
    [x86_64 : 머신 하드웨어 이름, 프로세서 종류, 하드웨어 플랫폼] [GNU/Linux : 운영체제]

top : 운영체제 작업 내역 모니터링

  • 작업관리자와 비슷한 기능

  • 프로세스 작업 명령어로, 시스템 프로세스들의 cpu/memory 점유율을 실시간으로 볼 수 있다. 현재 몇 개의 프로세스가 있는지, cpu 사용률, memory와 swap얼마나 사용하고 있는지 확인

    %cpu(s)
    [us : 사용자가 사용중인 사용률(유저 레벨)]
    [sy : 시스템이 사용중인 사용률(시스템 레벨)]
    [ni : 프로세스 우선순위를 기반으로 사용되는 사용률(사용자 공간에서 사용됨)]
    [id : 아무 일도 하지 않는 여유률]
    [wa : 입출력을 기다리는 프로세스 사용률]
    [hi : 하드웨어 인터럽트 사용률]
    [si : 소프트웨어 인터럽트 사용률]
    [st : 가상화 환경에서 손실률]
    인터럽트 : CPU가 특정 기능을 수행하는 도중에 급하게 다른 일을 처리하고자 할 때 사용할 수 있는 기능이다
    process
    [pid : process ID]
    [USER : 프로세스를 실행시킨 사용자 ID]
    [PR : 커널에 의해서 스케줄링되는 프로세스의 우선순위]
    [NI : NICE값, 마이너스를 가지는 값이 우선순위가 높음(PR에 영향을 줌)]
    [VIRT : 가상 메모리의 사용량 (swap + res), 프로세스가 소비하는 총 메모리.
    		프로그램 실행중인 코드, heap, stack과 같은 메모리, IO buffer 메모리 포함]
    [RES : 현재 페이지가 상주하고 있는 크기(실제 RAM에서 사용중인 메모리 크기)]
    [SHR : 가상 메모리 중 사용중인 메모리를 제외한 잔여 가상 메모리]
    [S : 프로세스의 상태]
    [%CPU : 프로세스가 사용하는 CPU의 사용률]
    [%MEM : 프로세스가 사용하는 메모리의 사용률]
    [TIME+ : 프로세스가 CPU를 사용한 시간]
    [COMMANE : 실행된 명령어]
    
    [shift + m] : 메모리 사용률 정렬
    [shift + n] : pid 기준 정렬
    [shift + p] : cpu 사용률 정렬
    [shift + t] : 실행시간 기준 정렬
    [shift + r] : 정렬 기준변경(오름, 내림)
    

free : 메모리 모니터링

  • 메모리에 대한 정보를 확인할 수 있다. Memory와 Swap에 대한 총합 -t

    [total : 설치된 총 메모리 크기 / 설정된 스왑 총 크기]
    [used : total에서 free, buff/cache뺀 사용중인 메모리 / 사용중인 스왑크기]
    [free : total에서 used, buff/cache뺀 사용 가능한 여유 메모리량 / 사용되지 않은 스왑 크기]
    [shared : tmpfs(메모리 파일 시스템), ramfs 등으로 사용되는 메모리. 여러 프로세스에서 사용할 수 있는 공유 메모리]
    [buffers : 커널 버퍼로 사용중인 메모리]
    [cache : 페이지 캐시와 slab으로 사용중인 메모리]
    [available : swapping없이 새로운 프로세스에서 할당 가능한 메모리의 예상 크기]
     캐시 : 자주 사용하는 데이터나 값을 복사해 놓는 임시 저장소
     버퍼 : 데이터를 한 곳에서 다른 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리 영역
     	 : 속도차이가 있는 장치 사이에서 데이터를 전송할 떄 데이터의 손실을 방지하고 효율적으로 사용하기 위한 임시 저장공간(중간에 끊기지 않도록 미리 데이터를 받아오는 것!)

    캐시와 버퍼의 차이점

vmstat : 시스템 정보 모니터링

  • 시스템 작업, 하드웨어 및 시스템 정보를 확인할 수. 메모리, 페이징, 블록장치의 I/O, cpu 상태!
    procs
    [r : cpu에서 대기중인 프로세스의 수. r의 개수가 cpu 개수의 2배를 넘으면 cpu 성능 올려주어야]
    [b : 인터럽트가 불가능한 sleep 상태에 있는 프로세스의 수(I/O 처리를 하는 동안 블록 처리된 프로세스)이다.
    	b의 수치가 높은 경우 라면 cpu가 계속 대기상태로 있다는 의미 -> 디스크 I/O 확인]
    Swap
    [si(swap in): 디스크 swap 공간에 있는 데이터를 메모리로 호출하는 양을 의미한다.
    			사용되고 있는 swap 디스크가 해제되는 양]
    [so(swap out): 메모리에서 디스크로 보내는 데이터의 양을 의미합니다.
    	물리적 메모리가 부족할 경우 디스크로부터 사용되는 메모리양. swap out 이 지속적으로 발생한다면 메모리부족.
        swap out이 증가하면 메모리가 부족하다는 의미 -> 메모리 늘려야한다.
        swap out값은 0에 가까워야 좋고, 높다고 해도 free메모리에 여유가 있다면 부족한 것은 아님]
    실시간 메모리 상태
    vmstat [delay [count]] : vmstat 3 5, 3초간격으로 모니터링 정보를 5번 출력
  • Swap이란?
    시스템에 메모리가 부족할 경우 하드 디스크의 일부 공간을 활용하여 작업을 도와주는 영역(메모리 공간 부족 방지)
    
    하드 디스크의 일부를 RAM처럼 사용할 수 있게 만드는 것
    
    프로그램들을 많이 실행하여 메모리가 부족하면, 메모리 상에 적재된 프로그램 중 
    당장 필요하지 않은 프로그램 데이터를 하드 디스크에 옮겨 메모리 공간 확보
    
    물리적 메모리의 용량이 가득 차게 될 경우 하드 디스크 공간을 메모리 공간처럼 swap하는 것
    
    RAM의 대체는 아님
    
    Swapping이란, ram이 부족할 때 우선 하드디스크 공간으로 이용하고,
    메모리가 다시 여유가 생겨 사용가능해지면 하드디스크에서 메모리로 옮겨오는 것을 의미
    
    swapping 사용 방식
    	swap 파티션 방식 : 나누어진 파티션 중 하나를 스와핑 영역으로 사용
        swap 파일 방식 : 일반적인 파일 시스템에 존재하는 파일을 스와핑 영역으로 사용

iostat : CPU, 디스크 입출력 상태 모니터링

  • 평균 cpu 부하와 디스크 I/O의 세부적인 내용확인

    Device
    [tps : 디바이스에 초당 전송 요청 건수]
    [kB_read/s : 디바이스에서 초당 읽은 데이터 블록 단위]
    [kB_wrtn/s : 디바이스에서 초당 쓴 데이터 블록 단위]
    [kB_read : 디바이스에서 지정한 간격 동안 읽은 블록 수]
    [kB_wrtn : 디바이스에서 지정한 간격 동안 쓴 전체 블록 수]
    실시간 디스크 상태
    iostat [delay [count]] : iostat 3 5, 3초간격으로 모니터링 정보를 5번 출력

df: 디스크 모니터링

  • 현재 디스크의 전체 용량 및 남은 용량을 확인할 수 있습니다.

    -h : 용량을 읽기 쉽게 단위를 계산하여 출력
    -T : 파일 시스템 종류와 함꼐 디스크 정보 출력

참고할 만한 링크

profile
가보쟈고

0개의 댓글