시스템과 커널의 정보를 확인 -a옵션을 사용하면 모든 정보 확인
[Linux : 커널명] [ip-172-31-20-134 : 호스트명]
[5.15.0-1036-aws : 커널 릴리즈 정보] [#40~20.04.1-Ubuntu : 커널 버전]
[x86_64 : 머신 하드웨어 이름, 프로세서 종류, 하드웨어 플랫폼] [GNU/Linux : 운영체제]
작업관리자와 비슷한 기능
프로세스 작업 명령어로, 시스템 프로세스들의 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] : 정렬 기준변경(오름, 내림)
메모리에 대한 정보를 확인할 수 있다. Memory와 Swap에 대한 총합 -t
[total : 설치된 총 메모리 크기 / 설정된 스왑 총 크기]
[used : total에서 free, buff/cache뺀 사용중인 메모리 / 사용중인 스왑크기]
[free : total에서 used, buff/cache뺀 사용 가능한 여유 메모리량 / 사용되지 않은 스왑 크기]
[shared : tmpfs(메모리 파일 시스템), ramfs 등으로 사용되는 메모리. 여러 프로세스에서 사용할 수 있는 공유 메모리]
[buffers : 커널 버퍼로 사용중인 메모리]
[cache : 페이지 캐시와 slab으로 사용중인 메모리]
[available : swapping없이 새로운 프로세스에서 할당 가능한 메모리의 예상 크기]
캐시 : 자주 사용하는 데이터나 값을 복사해 놓는 임시 저장소
버퍼 : 데이터를 한 곳에서 다른 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리 영역
: 속도차이가 있는 장치 사이에서 데이터를 전송할 떄 데이터의 손실을 방지하고 효율적으로 사용하기 위한 임시 저장공간(중간에 끊기지 않도록 미리 데이터를 받아오는 것!)
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번 출력
시스템에 메모리가 부족할 경우 하드 디스크의 일부 공간을 활용하여 작업을 도와주는 영역(메모리 공간 부족 방지)
하드 디스크의 일부를 RAM처럼 사용할 수 있게 만드는 것
프로그램들을 많이 실행하여 메모리가 부족하면, 메모리 상에 적재된 프로그램 중
당장 필요하지 않은 프로그램 데이터를 하드 디스크에 옮겨 메모리 공간 확보
물리적 메모리의 용량이 가득 차게 될 경우 하드 디스크 공간을 메모리 공간처럼 swap하는 것
RAM의 대체는 아님
Swapping이란, ram이 부족할 때 우선 하드디스크 공간으로 이용하고,
메모리가 다시 여유가 생겨 사용가능해지면 하드디스크에서 메모리로 옮겨오는 것을 의미
swapping 사용 방식
swap 파티션 방식 : 나누어진 파티션 중 하나를 스와핑 영역으로 사용
swap 파일 방식 : 일반적인 파일 시스템에 존재하는 파일을 스와핑 영역으로 사용
평균 cpu 부하와 디스크 I/O의 세부적인 내용확인
Device
[tps : 디바이스에 초당 전송 요청 건수]
[kB_read/s : 디바이스에서 초당 읽은 데이터 블록 단위]
[kB_wrtn/s : 디바이스에서 초당 쓴 데이터 블록 단위]
[kB_read : 디바이스에서 지정한 간격 동안 읽은 블록 수]
[kB_wrtn : 디바이스에서 지정한 간격 동안 쓴 전체 블록 수]
실시간 디스크 상태
iostat [delay [count]] : iostat 3 5, 3초간격으로 모니터링 정보를 5번 출력
현재 디스크의 전체 용량 및 남은 용량을 확인할 수 있습니다.
-h : 용량을 읽기 쉽게 단위를 계산하여 출력
-T : 파일 시스템 종류와 함꼐 디스크 정보 출력