Menulis file besar ke SSD utama saya tampaknya lambat dan saya mencoba mencari alasannya. Mainboard adalah ASUS Maximus VIII Hero dan saya punya dua SSD yang terhubung:
- Samsung SSD 840 EVO 120GB -> sda
- Samsung SSD 840 EVO 500 GB -> sdb
Inilah fdisk -l output
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
Jadi 120GB adalah disk sistem saya dan 500GB adalah disk sekunder. Jika saya menulis ke SSD dengan dd, saya mendapatkan hasil berikut:
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
Jadi untuk file 1GB, saya mendapatkan hasil yang sangat mirip. Tetapi menulis file 10GB ke sda menjadi sangat lambat.
Saya menemukan pertanyaan serupa tetapi berpikir bahwa oflag = langsung harus melewati semua cache dan menulis secara langsung. Selama eksekusi, saya memiliki memori bebas 25GB.
Satu-satunya penjelasan yang saya buat adalah bahwa sda memiliki lebih banyak file (sistem disk) dan SSD mungkin memiliki lebih banyak pekerjaan yang harus dilakukan agar sesuai dengan file 10GB di atasnya daripada di sdb. Apakah perilaku ini normal? Apakah ada tes yang lebih baik yang bisa saya lakukan?
sumber
dd
'sbs
parameter yang mempengaruhi kinerja negatif. Juga, tolok ukur menunjukkan bahwa 840 EVO tidak memiliki kinerja penulisan yang mendekati itu, lebih jauh mengisyaratkan pengujian yang cacat. // Terlepas dari semua itu: Model 500 GB memiliki dua kali cache "TurboWrite", 6 GB.Jawaban:
Berkat komentar Daniel B, saya yakin perilakunya normal.
Larutan
Kedua disk memiliki TurboWrites yang sangat berbeda dan setetes diharapkan saat menulis file besar. Untuk disk yang lebih kecil, drop hanya terjadi lebih cepat dan jauh lebih besar. Juga, blocksize (1G) yang saya gunakan tidak optimal untuk tes. Menggunakan 1M yang lebih masuk akal memberikan hasil yang lebih baik.
Kesimpulan
Saya masih akan menggunakan disk yang lebih kecil untuk partisi sistem saya karena mereka memiliki banyak file kecil dan ini bekerja dengan cepat. Tapi saya akan memindahkan dua VM. Saya juga menjalankan SSD ini ke SSD yang lebih besar karena saya sering melakukan backup dan menyalinnya.
sumber