루프백 파일 시스템의 성능


10

Linux 루프백 파일 시스템에서 성능 / 벤치마킹 테스트를 수행 한 사람이 있습니까? 지금까지의 경험은 무엇입니까? 성능이 심각하게 저하 되었습니까? 견고성은 어떻습니까?

http://freshmeat.net/articles/virtual-filesystem-building-a-linux-filesystem-from-an-ordinary-file


성능을 비교하려면 기본 디스크와 루프백 디스크에서 bonnie ++를 실행하는 것이 매우 간단해야합니다.
ceving

답변:


11

루프백 장치에서 쓰기 작업으로 약간의 벤치마킹을 수행했습니다. 결론은 다음과 같습니다.

  • 모든 쓰기 후에 동기화하면 루프백 장치의 성능이 크게 저하됩니다 (거의 두 배).
  • 디스크 캐시에 IO 스케줄러가 작업을 수행하도록 허용하는 경우 루프백 장치 사용과 직접 디스크 액세스간에 차이가 거의 없습니다.

벤치 마크 결과

먼저 tmpfs 8GB의 루프백 장치와 해당 루프백 장치 내의 루프백 장치에 대한 벤치 마크를 실행했습니다 ( 모든 쓰기 작업 후 동기화 사용 ).

tmpfs의 ext4 :

Measured speed: 557, 567, 563, 558, 560, 559, 556, 556, 554, 557
Average speed : 558.7 MB/s  (min 554  max 560)

tmpfs의 extf에있는 ext4 :

Measured speed: 296, 298, 295, 295, 299, 297, 294, 295, 296, 296
Average speed : 296.1 MB/s  (min 294  max 299)

쓰기시 동기 루프백 장치를 사용할 때 성능에 약간의 차이가 있습니다.
그런 다음 HDD에서 동일한 테스트를 반복했습니다.
ext4 (HDD, 1000MB, 3 회) :

Measured speed: 24.1, 23.6, 23.0
Average speed : 23.5 MB/s  (min 23.0  max 24.1)

ext4의 ext4 (HDD, 945MB) :

Measured speed: 12.9, 13.0, 12.7
Average speed : 12.8 MB/s  (min 12.7  max 13.0)

모든 쓰기 후에 동기화하지 않고 HDD에서 동일한 벤치 마크 ( /로 time (dd if=/dev/zero bs=1M count=1000 of=file; sync)측정 ) ext4 (HDD, 1000MB) :<size><time in seconds>

Measured speed: 84.3, 86.1, 83.9, 86.1, 87.7
Average speed : 85.6 MB/s  (min 84.3  max 87.7)

ext4의 ext4 (HDD, 945MB) :

Measured speed: 89.9, 97.2, 82.9, 84.0, 82.7
Average speed : 87.3 MB/s  (min 82.7  max 97.2)

(놀랍게도, 루프백 벤치 마크는 원시 디스크 벤치 마크보다 더 좋아 보입니다. 아마도 루프백 장치의 크기가 더 작기 때문에 실제 디스크 동기화에 소요되는 시간이 줄어 듭니다)

벤치 마크 설정

먼저 / tmp (tmpfs)에 8G의 루프백 파일 시스템을 만들었습니다.

truncate /tmp/file -s 8G
mkfs.ext4 /tmp/file
sudo mount /tmp/file /mnt/
sudo chown $USER /mnt/

그런 다음 마운트 된 루프백 파일에 데이터를 채워 기준을 설정했습니다.

$ dd if=/dev/zero bs=1M of=/mnt/bigfile oflag=sync
dd: error writing '/mnt/bigfile': No space left on device
7492+0 records in
7491+0 records out
7855763456 bytes (7.9 GB) copied, 14.0959 s, 557 MB/s

그런 다음 이전 루프백 장치에 다른 루프백 장치를 만들었습니다.

mkdir /tmp/mountpoint
mkfs.ext4 /mnt/bigfile
sudo mount /mnt/bigfile /tmp/mountpoint
sudo chown $USER /tmp/mountpoint

그리고 벤치 마크를 10 번 다시 실행했습니다 :

$ dd if=/dev/zero bs=1M of=/tmp/mountpoint/file oflag=sync
...
7171379200 bytes (7.2 GB) copied, 27.0111 s, 265 MB/s

그런 다음 테스트 파일을 마운트 해제하고 제거했습니다.

sudo umount /tmp/mountpoint
sudo umount /mnt

( count=1000전체 디스크를 채우지 못하도록 테스트를 추가 한 것을 제외하고 HDD 테스트와 비슷 함 )
(동기화되지 않은 테스트의 경우 시간 ddsync동작을 실행 함)


0

나는 아무런 문제가 없었다. 모든 것이 견고했습니다. Linux의 파일 시스템 캐시와 IO 스케줄러는 디스크를 직접 요청하는 것과 디스크에서 파일 섹션을 요청하는 것 사이에 눈에 띄는 차이를 만들지 않을 정도로 충분히 합리적입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.