26장. I/O 및 파일 시스템 성능에 영향을 미치는 요소
스토리지 및 파일 시스템 성능에 대한 적절한 설정은 스토리지 목적에 따라 크게 달라집니다.
I/O 및 파일 시스템 성능은 다음과 같은 요인의 영향을 받을 수 있습니다.
- 데이터 쓰기 또는 읽기 패턴
- 순차적 또는 임의
- 버퍼링 또는 직접 IO
- 기본 데이터 정렬
- 블록 크기
- 파일 시스템 크기
- 저널 크기 및 위치
- 액세스 시간 기록
- 데이터 안정성 보장
- 사전 가져오기 데이터
- 디스크 공간 사전 할당
- 파일 조각화
- 리소스 경합
26.1. I/O 및 파일 시스템 문제 모니터링 및 진단 툴 링크 복사링크가 클립보드에 복사되었습니다!
시스템 성능을 모니터링하고 I/O, 파일 시스템 및 해당 구성과 관련된 성능 문제를 진단하는 데 Red Hat Enterprise Linux 10에서 다음 툴을 사용할 수 있습니다.
-
vmstat
툴은 전체 시스템의 프로세스, 메모리, 페이징, 블록 I/O, 인터럽트 및 CPU 활동에 대해 보고합니다. 관리자가 I/O 하위 시스템이 성능 문제를 담당하는지 여부를 결정하는 데 도움이 될 수 있습니다.vmstat
를 사용한 분석에 I/O 하위 시스템이 성능이 저하된 것으로 표시되면 관리자는iostat
툴을 사용하여 담당 I/O 장치를 확인할 수 있습니다. -
iostat
은 시스템의 I/O 장치 로드에 대한 보고서입니다. 이는 Cryostat 패키지에서
제공합니다. -
blktrace
는 I/O 하위 시스템에서 시간을 소비하는 방법에 대한 자세한 정보를 제공합니다. 기능 유틸리티blkparse
는blktrace
에서 원시 출력을 읽고blktrace
에서 기록한 입력 및 출력 작업에 대해 사람이 읽을 수 있는 요약을 생성합니다. BTT
는
blktrace
출력을 분석하고 I/O 스택의 각 영역에서 데이터가 소비하는 시간을 표시하여 I/O 하위 시스템에서 병목 현상을 보다 쉽게 파악할 수 있습니다. 이 유틸리티는blktrace
패키지의 일부로 제공됩니다.blktrace
메커니즘에서 추적하고btt
에서 분석한 중요한 이벤트 중 일부는 다음과 같습니다.-
I/O 이벤트 Queuing (
Q
) -
드라이버 이벤트(
D
)에 I/O의 디스패치 -
I/O 이벤트 완료 (
C
)
-
I/O 이벤트 Queuing (
-
iowatcher
는blktrace
출력을 사용하여 시간이 지남에 따라 I/O를 그래프로 표시할 수 있습니다. 디스크 I/O의 논리 블록 주소(LBA), 초당 처리량(MB), 초당 검색 수, 초당 I/O 작업 수에 중점을 둡니다. 이렇게 하면 장치의 1초당 작업 제한에 도달할 시기를 식별하는 데 도움이 될 수 있습니다. BPF 컴파일러 컬렉션(BCC)은
eBPF
(extended Berkeley Packet Filter) 프로그램을 쉽게 생성할 수 있는 라이브러리입니다.eBPF
프로그램은 디스크 I/O, TCP 연결 및 프로세스 생성과 같은 이벤트에서 트리거됩니다. BCC 툴은/usr/share/bcc/tools/
디렉터리에 설치됩니다. 다음bcc-tools
는 성능을 분석하는 데 도움이 됩니다.-
biolatency
는 히스토그램의 블록 장치 I/O(디스크 I/O)의 대기 시간을 요약합니다. 이를 통해 장치 캐시 적중을 위한 두 가지 모드와 캐시 누락 및 대기 시간 초과를 포함하여 배포를 검토할 수 있습니다. -
biosnoop
는 발행 프로세스 ID 및 I/O 대기 시간과 함께 각 I/O 이벤트를 표시하는 기본 블록 I/O 추적 툴입니다. 이 도구를 사용하면 디스크 I/O 성능 문제를 조사할 수 있습니다. -
biotop
는 커널의 블록 i/o 작업에 사용됩니다. -
filelife
툴은stat()
syscall을 추적합니다. -
파일은 느린
동기 파일 읽기 및 쓰기를 추적합니다. -
filetop
는 프로세스별 파일 읽기 및 쓰기를 표시합니다. ext4slower
,nfsslower
,xfsslower
는 특정 임계값보다 느린 파일 시스템 작업을 표시하는 툴입니다
.자세한 내용은 eBPF를 사용하여 시스템 성능 분석을 참조하십시오.
-
-
bpftace
는 성능 문제를 분석하는 데 사용되는eBPF
의 추적 언어입니다. 또한 I/O 성능 문제를 조사하는 데 유용한 시스템 관찰을 위해 BCC와 같은 추적 유틸리티를 제공합니다. 다음
SystemTap
스크립트는 스토리지 또는 파일 시스템 성능 문제를 진단하는 데 유용할 수 있습니다.-
disktop.stp
: 5초마다 디스크를 읽거나 쓰는 상태를 확인하고 해당 기간 동안 상위 10개의 항목을 출력합니다. -
iotime.stp
: 읽기 및 쓰기 작업에 소요된 시간과 읽기 및 쓰기 바이트 수를 출력합니다. -
traceio.stp
: 1 초마다 모니터링되는 누적 I/O 트래픽을 기반으로 상위 10개의 실행 파일을 출력합니다. -
traceio2.stp
: 실행 가능한 이름과 프로세스 식별자를 지정된 장치에 읽기 및 쓰기로 출력합니다. -
Inodewatch.stp
: 지정된 메이저 또는 마이너 장치의 지정된 inode에 읽기 또는 쓰기가 발생할 때마다 실행 가능한 이름과 프로세스 식별자를 출력합니다. -
inodewatch2.stp
: 지정된 메이저 또는 마이너 장치의 지정된 inode에서 속성이 변경될 때마다 실행 가능한 이름, 프로세스 식별자 및 속성을 출력합니다.
-
자세한 내용은 다음을 참조하세요.
-
vmstat(8)
,iostat(1)
,blktrace(8)
,blkparse(1)
,btt(1)
,bpftrace
,iowatcher(1)
도움말 페이지. - eBPF로 시스템 성능 분석