ext2/3과 같은 Linux 파일 시스템을 어떻게 사용자 정의할 수 있나요?

ext2/3과 같은 Linux 파일 시스템을 어떻게 사용자 정의할 수 있나요?

실제로 IOzone은 파일 시스템 벤치마킹 도구입니다. 이 벤치마크는 순차 읽기/쓰기, 무작위 읽기/쓰기 등 다양한 파일 작업을 생성하고 측정합니다. 그래서 특정 애플리케이션의 성능이 더 향상되도록 임의 읽기(데이터베이스 집약적 또는 OLTP) 또는 순차 읽기(오디오/비디오 애플리케이션)에 대해 고유한 Linux 파일 시스템 ext3을 사용자 정의하려고 합니다. 더 나은 성능을 위해 블록 크기, 디스크 캐시, 버퍼 크기 등과 같은 파일 시스템 매개변수를 어떻게 변경할 수 있습니까?

답변1

이러한 사항을 변경하려면 파일 시스템을 생성할 때 사용해야 합니다.mke2fs ( mkfs.ext4예: 사용)또는 with를 사용하여 만든 후 일부 조정 옵션을 사용할 수 있습니다 tune2fs.Gentoo 포럼의 이 포럼 스레드는 ext3 튜닝에 관한 것입니다.. 이것이 제가 중요하다고 생각하는 부분입니다(모두 일부 형식으로 복사됩니다)*( data=journalext4의 일부 성능 향상 기능은 비활성화되어 있습니다.)*

디렉토리 색인 사용

이 기능은 해시된 이진 트리를 사용하여 디렉터리 정보를 저장함으로써 대규모 디렉터리나 많은 파일이 포함된 디렉터리에서 파일 액세스를 향상시킵니다. 사용하는 것은 매우 안전하며 대부분의 경우 상당한 개선을 제공하므로 활성화하는 것이 좋습니다.

tune2fs -O dir_index /dev/hdXY

이는 une2fs를 실행한 후 해당 파일 시스템에 생성된 디렉터리에만 적용됩니다. 이를 현재 존재하는 디렉터리에 적용하려면 e2fsck 유틸리티를 실행하여 파일 시스템의 디렉터리를 최적화하고 다시 색인을 생성해야 합니다.

e2fsck -D /dev/hdXY 

전체 일기 기능 활성화

기본적으로 ext3 파티션은 "순서 있는" 데이터 모드로 마운트됩니다. 이 모드에서는 모든 데이터가 기본 파일 시스템에 기록되고 해당 메타데이터가 로그에 커밋되며 로그 블록이 논리적으로 트랜잭션으로 그룹화되어 디스크 I/O를 줄입니다. 이는 대부분의 사람들에게 좋은 기본값이 되는 경향이 있습니다. 그러나 안정성과 성능을 향상시킬 수 있는 방법을 찾았습니다(경우에 따라): 파일 데이터 자체를 포함한 모든 것을 기록합니다("로그" 데이터 모드라고 함). 일반적으로 데이터가 디스크에 두 번 기록되기 때문에 모든 데이터를 기록하면 성능이 저하될 것이라고 생각할 수 있습니다. 한 번은 로그에 기록되고 그 다음에는 기본 파일 시스템에 커밋되지만 실제로는 그렇지 않습니다. 9개 파티션 모두에서 이 기능을 활성화했는데 대용량 파일을 삭제할 때 약간의 성능 저하만 발견했습니다. 실제로 이렇게 하면 동시에 많은 읽기 및 쓰기가 필요한 파일 시스템의 성능이 실제로 향상될 수 있습니다. 바라보다IBM 웹사이트에 게시된 Daniel Robbins의 기사에서 자세히 알아보세요.

실제로, /usr/portage를 자체 ext3 파티션에 두고 로그 데이터 모드를 사용하는 것은 Emerge --sync를 실행하는 데 필요한 시간을 크게 줄이는 것 같습니다. 또한 컴파일 시간도 약간 향상되었습니다.

로그 데이터 모드를 활성화하는 방법에는 두 가지가 있습니다. 첫 번째 방법은 /etc/fstab에 마운트 옵션으로 data=journal을 추가하는 것입니다. 이 작업을 수행하고 루트 파일 시스템에서도 이를 사용하도록 하려면 부트로더 구성에서 rootflags=data=journal을 커널 인수로 전달해야 합니다. 두 번째 방법에서는 tune2fs를 사용하여 파일 시스템의 슈퍼블록에 있는 기본 마운트 옵션을 수정합니다.

tune2fs -O has_journal -o journal_data /dev/hdXY

두 번째 방법은 이전 커널에서는 작동하지 않을 수 있습니다. 특히 Linux 2.4.20 및 이전 버전에서는 슈퍼블록의 기본 설치 옵션을 무시할 수 있습니다. 모험을 즐기고 싶다면 저널 크기를 조정하는 것이 좋습니다. (로그 크기는 기본값으로 두었습니다.) 로그가 클수록 성능이 향상될 수 있습니다(디스크 공간이 늘어나고 복구 시간이 길어지는 대신). 이 작업을 수행하기 전에 une2fs 매뉴얼의 관련 섹션을 읽으십시오.

tune2fs -J size=$SIZE /dev/hdXY

tune2fs를 사용하여 파일 시스템 옵션 확인

좋아요, 이제 파일 시스템을 조정했으므로 해당 조정 사항이 적용되었는지 확인하고 싶습니다. 그렇죠? 놀랍게도 une2fs 유틸리티를 사용하면 이 옵션을 매우 쉽게 수행할 수 있습니다. 파일 시스템 슈퍼블록의 모든 내용을 나열하려면 tune2fs에 "-l"(소문자 "L") 옵션을 전달할 수 있습니다.

tune2fs -l /dev/hdXY

다른 une2fs 호출과 달리 이러한 하위 수준 파일 시스템에 액세스하거나 변경을 시도하지 않기 때문에 손상을 주지 않고 마운트된 파일 시스템에서 작동할 수 있습니다.

이를 통해 블록/inode 정보는 물론 우리가 찾고 있는 파일 시스템 기능 및 기본 마운트 옵션을 포함하여 파일 시스템에 대한 많은 정보를 얻을 수 있습니다. 모든 것이 제대로 진행되면 출력의 관련 부분에 파일 시스템 기능 목록의 "dir_index" 및 "has_journal" 플래그가 포함되어야 하며 "journal_data"에 대한 기본 설치 옵션이 표시되어야 합니다.

관련 정보