이것이 점프 투 공작소

파일시스템 성능 지표에 대해 알아보자 본문

리눅스

파일시스템 성능 지표에 대해 알아보자

겅겅겅 2022. 12. 31. 20:15

1. 처리량

초당 전송되는 데이터의 양을 의미합니다.

2. IOPS

초당 IO 요청 개수를 의미합니다.

SSD의 경우 최대 I/O크기는 256 KiB, HDD의 경우는 1,024KiB 입니다.

3. 읽기/쓰기 비율

페이지 캐시를 공유합니다, 페이지 캐시 크기가 작을 수록 캐시 미스가 많아집니다.

4. 동기적 쓰기 비율

비동기적인 쓰기에 대하여 성능차이가 매우 크게 나타납니다.

비동기적인 쓰기의 경우 페이지 캐시를 참조합니다. 디스크 접근 유/무의 차이

 

비동기적 I/O 방식

페이지 캐시란? (읽기 성능 개선)

디스크의 입출력을 최소화 하기 위해 디스크 접근이 필요한 데이터를 물리 메모리(RAM)에 페이지 단위로 저장합니다.

페이지 캐시에 있는 데이터에 대한 접근이 발생하면 디스크에서 처리하지 않고 캐시의 데이터를 반환합니다.

버퍼 캐시란? (쓰기 성능 개선)

헌재 리눅스는 페이지 캐시의 일부가 버퍼 캐시로서 사용됩니다.

쓰기 동작은 페이지 캐시에 저장되고 dirty bit를 세팅합니다. 이 때 디스크에 내용을 저장하지 않습니다.

pdflush데몬은 dirty bit가 세팅된 페이지 캐시 내용들은 주기적 또는 동기적으로 디스크에 저장됩니다. 

버퍼 캐시의 양이 dirty_background_ration값보다 높게 되면 쓰기 작업이 중단되고 강제로 pdflush의 flush작업이 진행됩니다.

동기적 I/O 방식

버퍼캐시를 이용하지않고 직접적으로 디스크에 저장합니다.

성능 및 안전성을 보장하기 위해 DB에서 주로 사용됩니다.

동기적 쓰기요청

fsync(int fd)  : 특정 파일에 대한 모든 지연된 쓰기 버퍼 내용을 동기적으로 디스크에 저장합니다.

동기적 쓰기 옵션

O_SYNC 모드 : write요청 + fsync요청

O_DIRECT : 버퍼 캐시를 사용하지 않고 바로 디스크에 쓰기

 

파일시스템 분석 명령어

free 

  • total : 전체 메모리
  • used : 사용중인 메모리
  • free 여유 메모리
  • shared : 호환성을 유지하기 위한 컬럼 사용 X
  • buffer/cache : 버퍼와 캐시를 합친 공간 -w로 두 공간 분리 표기가 가능합니다.
  • available : 새로운 앱 시작에 사용 가능한 메모리 공간 (free+page cache 일부 공간)