기본 SSD에 대용량 파일을 쓰는 것이 느린 것 같아서 원인을 찾으려고 노력 중입니다. 메인보드는 ASUS Maximus VIII Hero이고 두 개의 SSD가 연결되어 있습니다.
- 삼성 SSD 840 EVO 120GB --> sda
- 삼성 SSD 840 EVO 500GB --> sdb
fdisk -l 출력은 다음과 같습니다.
Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A3DB9022-5AE0-4BF4-BCA0-E0DAF7BB2106
Device Start End Sectors Size Type
/dev/sda1 2048 1050623 1048576 512M EFI System
/dev/sda2 1050624 167569407 166518784 79.4G Linux filesystem
/dev/sda3 167569408 234440703 66871296 31.9G Linux swap
Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
따라서 120GB는 내 시스템 디스크이고 500GB는 보조 디스크입니다. dd를 사용하여 SSD에 쓰면 다음과 같은 결과를 얻습니다.
sda:
~$ dd if=/dev/zero of=/tmp/dd_performance bs=1G count=1 oflag=direct
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 2.1183 s, 507 MB/s
~$ dd if=/dev/zero of=/tmp/dd_performance bs=1G count=10 oflag=direct
10737418240 bytes (11 GB, 10 GiB) copied, 296.29 s, 36.2 MB/s
sdb:
~$ dd if=/dev/zero of=/mnt/temp_data/dd_performance bs=1G count=1 oflag=direct
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 2.13052 s, 504 MB/s
~$ dd if=/dev/zero of=/mnt/temp_data/dd_performance bs=1G count=10 oflag=direct
10737418240 bytes (11 GB, 10 GiB) copied, 21.1424 s, 508 MB/s
따라서 1GB 파일의 경우 매우 유사한 결과를 얻습니다. 하지만 10GB 파일을 sda에 쓰는 것은 고통스러울 정도로 느려집니다.
나는 찾았다유제하지만 oflag=direct는 모든 캐시를 건너뛰고 직접 작성해야 한다고 생각했습니다. 실행하는 동안 25GB의 여유 메모리가 생겼습니다.
내가 생각해낸 유일한 설명은 sda에 훨씬 더 많은 파일(시스템 디스크)이 있고 SSD는 sdb보다 10GB 파일을 저장하기 위해 더 많은 작업을 수행해야 한다는 것입니다. 이 동작이 정상인가요? 실행할 수 있는 더 나은 테스트가 있습니까?
답변1
Daniel B의 의견 덕분에 해당 동작이 정상이라고 확신합니다.
해결책
두 디스크의 TurboWrites는 매우 다르며 대용량 파일을 쓸 때 감소가 예상됩니다. 작은 디스크의 경우 드롭이 더 빨리 발생하고 훨씬 더 커집니다. 또한 제가 사용한 블록 크기(1G)는 테스트에 적합하지 않습니다. 보다 합리적인 1M을 사용하면 더 나은 결과를 얻을 수 있습니다.
결론
시스템 파티션에는 작은 파일이 많고 빠르게 작동하므로 더 작은 디스크를 계속 사용할 것입니다. 하지만 자주 백업하고 복사하므로 이 SSD에서 실행 중인 두 개의 VM을 더 큰 VM으로 이동하겠습니다.