Linux

Linux Monitoring

재심 2022. 11. 13. 21:08

[메모리]

vm.swappiness 

메모리 swap 활용도 

vm.swappiness = 0 (스왑 사용안함)
vm.swappiness = 1 (스왑 사용 최소화)
vm.swappiness = 60 (기본값)
vm.swappiness = 100 (적극적으로 스왑 사용)
 
 
# 확인 방법
$ sysctl vm.swappiness
vm.swappiness = 1
$ sysctl -a | grep swappiness
vm.swappiness = 1
$ cat /proc/sys/vm/swappiness
1
 
# 변경 방법 (재부팅 시 초기화됨)
$ sysctl vm.swappiness = 40
 
# 영구 적용 방법 (/etc/sysctl.conf 기본값에는 vm.swappiness 설정이 없으므로 새로 추가해주어야 한다)
$ vim /etc/sysctl.conf
vm.swappiness = 40
 
#위 방법으로 적용되지 않는 경우 swap파일이 로드되고 있을 수 있다. 아래 커맨드로 제거 JIRA: https://jira.ebaykorea.com/browse/SYSCHECK-23563
$ sudo systemctl mask dev-sda2.swap

vm.min_free_bytes

커널 시스템 자체 기능 수행의 원활함을 보장하기 위해 시스템에서 최소한의 메모리를 갖고있도록 하는 설정

보유한 메모리의 0.5% 정도 할당하는 것을 권장한다. 

이 값을 올리면 free 명령어를 통해 확인하는 available 수치가 내려가게 될 것이다. (시스템에 고정된 메모리를 할당하게 되는 것이므로)

 

# 확인 방법
$ sysctl vm.min_free_kbytes
vm.min_free_kbytes = 67584

적용 예시

총 메모리는 3.5~3.75GB 이고, 현재 121MB를 사용 중이며 251MB는 버퍼캐시에 사용중. 사용가능한 메모리는 3.3GB.

명령어를 통해 vm.min_free_kbytes를 1500000 KB (약 1.5GB)로 변경하였음.

 

available이 3327 → 1222로 변경되었음.

 

[디스크]

(리눅스) I/O Scheduler

I/O 스케줄러란?

read, write 와 같은 I/O 작업들은 I/O 스케줄러를 비롯한 여러 시스템을 거쳐 block 디바이스로 전달된다.

I/O 스케줄러는 시스템의 여러 요소들보다 상대적으로 접근 속도가 느린 디스크의 성능을 최대화시키기 위해서 구현되있는 커널의 일부분이다. 

 

 

I/O 스케줄러 종류

  • noop : no operation 
    • 모든 I/O 요청을 FIFO 대기큐에 삽입하여 처리
    • 큰 캐싱 시스템을 가진 스토리지 환경 또는 SSD에 적합
      • 특히, SATA/HDD controller를 사용하는 SSD의 경우에 적합
  • deadline 
    • I/O 대기 시간의 limit을 정해놓고, deadline이 임박한 작업을 우선적으로 처리
      •  I/O가 특정 프로세스들에 집중되어 있을 때 유용
      • real time, DB, Disk 집약 어플리케이션에 효과적
      • 처리량보다 지연에 최적화된 스케줄링
    • 동작 원리
      • block number에 대해 정렬된 request queue인 sorted queue(요청 전체를 관리)
      • 요청 작업 종류에 따라 read FIFO queue와 write FIFO queue(작업 종류별로 관리)
      • sorted queue에서 요청을 꺼내서 처리하다가, read/write queue의 expiration time이 지나면 queue의 첫번째 요청을 처리

  • CFQ : Completely Fair Queuing
    • 기본 스케줄러, 각 프로세스마다 Round Robin에 의해 스케줄링 됨
    • 각 작업을 마친 후 일정 time slice만큼 기다린 후 다른 프로세스로 제어를 넘긴다
    • synchronous 작업이 asynchronous 작업보다 우선순위가 높다

 

디스크 정보 확인 (fdisk)

기존에 작성한 내용의 fdisk 부분 참조

https://jaemni.tistory.com/entry/HW-%EA%B5%AC%EC%84%B1%EC%9A%94%EC%86%8C 

 

H/W 구성요소

[CPU, Memory, I/O(Disk, NW)] 1. CPU 파이프라인 프로세서로 가는 명령어들의 움직임. 연산 자체를 복수의 Stage로 분할하여 처리함으로써 고속화를 꾀하는 컴퓨팅 방식 파이프라인을 사용하면 프로세서

jaemni.tistory.com

 

'Linux' 카테고리의 다른 글

xfs, ext4 파일시스템의 차이  (0) 2022.11.15
Linux Monitoring Tools  (0) 2022.11.13
H/W 구성요소  (0) 2022.11.02