역시나 기본부터 시작을 할려고 이것 저것 보다 보니 좋은 자료가 있어서 하나씩 정리를 하고 있다.
일반적으로 Disk IO subsystem은 모든 시스템 중에서 가장 느린 부분이다. ( 뭐 요즘은 SSD가 나오면서 많이 빨라지고 있지만…)
하지만 물리적인 동작이 필요한 부분이라서 다른 컴퓨터 구성요소보다는 느린 단점을 가지고 있다.
그리고 폰 노이만 컴퓨터 구조에서는 모든 프로그램이 결국에는 메모리에 올라와야 하는 형태를 뛰고 있기 때문에
이 Disk IO의 발생을 줄이는 것이 성능 향상에 주요한 요소이다.
일단 이야기에 들어가기 전에 간단한 용어 정리를 할려고한다.
Major Page Fault(MPF, sar에서는 majflt/s) : 필요한 Data가 Memory, Cache에 없는 경우에 발생하는 것으로 Disk에 있는 Data를 Memory로 옮기는 작업이 발생을 한다. --> 즉 IO event 발생
Minor Page Fault(MnPF, sar에서는 fault/s) : buffer에 데이터가 있는 경우 발생. 시간의 절약을 가져 옴.
==> File Buffer cache는 MPF는 최소하시키고 MnPF는 최대화 시키기 위함.
IO Monitoring tool : top, iostat, vmstat, sar
top에서는 F, u(page falut)순으로 정렬을 함.
vmstat 에서는 wa(wait IO), bi(block input(Disk->Memory), bo(Memory -> Disk)
sar -B를 통해서 pgpgin/s, pgpgout/s, fault/s,majflt/s 를 중점적으로 보아야 함.
IO문제는
1. Too much IO at onece : CPUs wait on I/O
2. Read and Write Efficiency : Pipes too small
3. Slow disks
4. When Virtual Memory Kills IO
일단 이런 이유가 있다.
댓글 없음:
댓글 쓰기