QEMU 공유 폴더 성능 문제

QEMU 공유 폴더 성능 문제

Ubuntu 18.04 호스트(QEMU 2.11)에서 실행되는 Windows 10 가상 머신이 있습니다. 명령줄 매개변수를 사용하여 공유 폴더를 만들었습니다 -netdev type=user,id=smb0,smb=/mnt/ntfs,restrict=on -device virtio-net-pci,netdev=smb0. 대부분의 경우 디스크는 정상적으로 작동하지만 일부 사용 사례에서는 마지막 테스트 결과에 표시된 것처럼 쓰기 성능이 매우 느립니다.크리스탈 디스크 마크(임의 4K, 큐 1개, 스레드 1개): ~0.09MB/s(22 IOPS)에 불과합니다.

CrystalDiskMark 결과: 4KiB Q1T1: 0,089MB/s

이는 실제로도 나타납니다. Autopano Giga 4.4에서 600MB 파노라마를 생성하고 공유 드라이브에 저장하는 데는 1시간 45분이 걸리고 일반 드라이브에는 1분 30초가 걸립니다. 파일을 복사하는 데는 약 5초밖에 걸리지 않습니다.

눈에 띄는 개선 없이 시도한 사항:

  • 호스트 디스크를 NTFS HDD에서 EXT4 SSD로 변경합니다.
  • 임시 QEMU smb.conf에서 일부 성능 옵션을 수정하고 smbcontrol all reload-config.
  • 네트워킹을 위한 QEMU 명령줄 옵션을 변경합니다(제한 설정/해제, 다양한 장치 유형 등).

이 성능 문제를 해결할 수 있습니까?

고쳐 쓰다

나는 문제를 QEMU의 사용자 모드 네트워킹으로 분리했다고 생각합니다.

QEMU 명령줄에서 공유 폴더 옵션을 제거하고 기본적으로 동일한 구성으로 일반 Samba 서버를 시작했습니다. 사용자 모드 내부 네트워크(호스트 시스템의 //10.0.2.2/ -> 127.0.0.1)를 통해 드라이브를 마운트하면 성능 문제가 지속됩니다. 외부(홈 네트워크) IP(://192.168.1.11/)를 사용하여 다른 브리지(탭) 네트워크 장치를 통해 마운트했을 때 쓰기 속도는 거의 28MB/s(6800 IOPS)였습니다!

CrystalDiskMark가 사용하는 소스 코드를 읽어보니디스크 속도실제 테스트를 진행합니다. 코드를 올바르게 해독했다면 관련 테스트에 대한 명령줄은 다음과 같습니다.

diskspd -b4K -d5 -o1 -t1 -W0 -r -S -w100 -Z4K [file]

DiskSpd에는리눅스 버전, 다음은 대부분 동일합니다.

diskspd -b4K -d5 -o1 -t1 -W0 -r -Sd -w100 -Zr [file]

루프백 인터페이스에서 Samba가 제대로 작동하지 않을 가능성을 배제하기 위해 호스트 측에서도 속도를 테스트했습니다( mount 사용 mount -t cifs). 위 명령을 실행하면 뛰어난 성능이 표시됩니다. 90MB/s 또는 23000 IOPS 또는 하드웨어 버퍼링이 비활성화된 경우(-Sh)의 1/10입니다.

그래서 범인은 QEMU 사용자 네트워크임에 틀림없다고 생각합니다. Ubuntu 18.04의 QEMU 버전은 꽤 오래되었으며 이것이 최신 버전에서 작동하는지 모르겠습니다.

브리지된 네트워크의 일반 Samba 서버는 잘 작동하므로 내부 공유 폴더 메커니즘을 사용하는 것을 선호하지만 이를 해결 방법으로 사용하겠습니다.

관련 정보