Saya ingin melakukan benchmark ssd (mungkin dengan filesystem terenkripsi) dan membandingkannya dengan tolok ukur yang dilakukan oleh crystaldiskmark di windows.
Jadi bagaimana saya bisa mengukur hal yang kira-kira sama dengan crystaldiskmark?
Untuk baris pertama (Seq) saya pikir saya bisa melakukan sesuatu seperti
LC_ALL=C dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc
sudo su -c "echo 3 > /proc/sys/vm/drop_caches"
LC_ALL=C dd if=tempfile of=/dev/null bs=1M count=1024
Tapi saya tidak yakin dengan dd
parameternya.
Untuk 512KB acak, 4KB, 4KB (Kedalaman Antrian = 32) membaca / menulis tes kecepatan. Saya tidak tahu cara mereproduksi pengukuran di linux? Jadi bagaimana saya bisa melakukan ini?
Untuk menguji kecepatan membaca, sesuatu seperti sudo hdparm -Tt /dev/sda
sepertinya tidak masuk akal bagi saya karena saya ingin misalnya membandingkan sesuatu seperti encfs
mount.
Edit
@Alko, @iain
Mungkin saya harus menulis sesuatu tentang motivasi tentang pertanyaan ini: Saya mencoba membandingkan ssd saya dan membandingkan beberapa solusi enkripsi. Tapi itu pertanyaan lain ( Cara terbaik untuk membandingkan berbagai solusi enkripsi pada sistem saya ). Saat berselancar di web tentang SSD dan pembandingan saya sering melihat pengguna memposting hasil CrystelDiskMark mereka di forum. Jadi ini adalah satu-satunya motivasi untuk pertanyaan itu. Saya hanya ingin melakukan hal yang sama di linux. Untuk pembandingan khusus saya lihat pertanyaan saya yang lain.
sumber
Jawaban:
Menurut saya fio tidak akan kesulitan menghasilkan beban kerja itu. Perhatikan bahwa meskipun namanya CrystalDiskMark sebenarnya adalah tolok ukur sistem file pada disk tertentu - tidak dapat melakukan I / O mentah ke disk saja. Karena itu ia akan selalu memiliki overhead filesystem di dalamnya (tidak harus hal yang buruk tetapi sesuatu yang harus diperhatikan misalnya karena filesystem yang sedang dibandingkan mungkin tidak sama).
Contoh yang didasarkan pada mereplikasi output pada tangkapan layar di atas ditambah dengan informasi dari manual CrystalDiskMark (ini tidak lengkap tetapi harus memberikan gambaran umum):
HATI - HATI - contoh ini secara permanen menghancurkan data
/mnt/fs/fiotest.tmp
!Daftar parameter fio dapat dilihat di http://fio.readthedocs.io/en/latest/fio_doc.html .
sumber
fio
untuk Windows juga.Saya membuat skrip yang mencoba untuk meniru perilaku crystaldiskmark dengan fio. Script melakukan semua tes yang tersedia dalam berbagai versi crystaldiskmark hingga crystaldiskmark 6 termasuk tes 512K dan 4KQ8T8.
Script tergantung pada fio dan df . Jika Anda tidak ingin menginstal df, hapus baris 19 hingga 21 (skrip tidak akan lagi menampilkan drive mana yang sedang diuji) atau coba versi modifikasi dari komentator . (Mungkin juga memecahkan masalah lain yang mungkin terjadi)
Yang akan menampilkan hasil seperti ini:
(Hasilnya kode warna, untuk menghapus kode warna, hapus semua instance
\033[x;xxm
(di mana x adalah angka) dari perintah gema di bagian bawah skrip.)Script saat dijalankan tanpa argumen akan menguji kecepatan drive / partisi rumah Anda. Anda juga dapat memasukkan jalur ke direktori di hard drive lain jika Anda ingin mengujinya. Saat menjalankan skrip, buat file sementara tersembunyi di direktori target yang dibersihkan setelah selesai berjalan (.fiomark.tmp dan .fiomark.txt)
Anda tidak dapat melihat hasil tes setelah selesai, tetapi jika Anda membatalkan perintah saat sedang berjalan sebelum menyelesaikan semua tes, Anda akan bisa melihat hasil tes yang selesai dan file sementara akan dihapus setelahnya juga.
Setelah beberapa penelitian, saya menemukan bahwa hasil benchmark kristaldiskmark pada model drive yang sama karena saya tampaknya relatif cocok dengan hasil benchmark fio ini, setidaknya sekilas. Karena saya tidak memiliki instalasi windows saya tidak dapat memverifikasi seberapa dekat mereka sebenarnya pada drive yang sama.
Perhatikan bahwa Anda terkadang mendapatkan hasil yang sedikit, terutama jika Anda melakukan sesuatu di latar belakang saat tes sedang berjalan, jadi sebaiknya lakukan tes dua kali berturut-turut untuk membandingkan hasil.
Tes-tes ini membutuhkan waktu lama untuk dijalankan. Pengaturan default dalam skrip saat ini cocok untuk SSD (SATA) biasa.
Pengaturan SIZE yang disarankan untuk drive yang berbeda:
NVME High End biasanya memiliki sekitar ~ 2GB / s kecepatan baca (Intel Optane dan Samsung 960 EVO adalah contoh; tetapi dalam kasus yang terakhir saya akan merekomendasikan 2048 bukan karena kecepatan 4kb lebih lambat.), Low-Mid End dapat memiliki di mana saja antara ~ 500-1800MB / s kecepatan baca.
Alasan utama mengapa ukuran ini harus disesuaikan adalah karena berapa lama tes akan mengambil sebaliknya, untuk HDD yang lebih tua / lemah misalnya, Anda dapat memiliki kecepatan membaca 0,4MB / s 4kb. Anda mencoba menunggu 5 loop 1GB pada kecepatan itu, tes 4kb lain biasanya memiliki kecepatan sekitar 1MB / s. Kami memiliki 6 dari mereka. Setiap menjalankan 5 loop, apakah Anda menunggu 30GB data ditransfer pada kecepatan itu? Atau apakah Anda ingin menurunkannya ke 7.5GB Data sebagai gantinya (pada 256MB / s itu adalah tes 2-3 jam)
Tentu saja, metode ideal untuk menangani situasi itu adalah dengan menjalankan tes sekuensial & 512k yang terpisah dari tes 4k (jadi jalankan tes sekuensial dan 512k dengan sesuatu seperti katakanlah 512m, dan kemudian jalankan tes 4k pada 32m)
Model HDD yang lebih baru adalah ujung yang lebih tinggi dan bisa mendapatkan hasil yang lebih baik dari itu.
Dan begitulah. Nikmati!
sumber
--output-format=json
dan parsing JSON. Output yang dapat dibaca manusia Fio tidak dimaksudkan untuk mesin dan tidak stabil di antara versi fio. Lihat video YouTube ini tentang kasus di mana mengikis keluaran manusia fio menghasilkan hasil yang tidak diinginkan )Anda bisa menggunakan
iozone
danbonnie
. Mereka dapat melakukan apa yang dapat dilakukan tanda disk kristal dan banyak lagi.Saya pribadi
iozone
banyak menggunakan perangkat benchmark dan pengujian stres dari komputer pribadi ke sistem penyimpanan perusahaan. Ini memiliki mode otomatis yang melakukan segalanya tetapi Anda dapat menyesuaikannya dengan kebutuhan Anda.sumber
Saya tidak yakin berbagai tes yang lebih mendalam masuk akal ketika mempertimbangkan apa yang Anda lakukan secara detail.
Pengaturan seperti ukuran blok, dan kedalaman antrian, adalah parameter untuk mengontrol parameter input / output level rendah dari antarmuka ATA tempat SSD Anda berada.
Itu semua baik dan bagus ketika Anda hanya menjalankan beberapa tes dasar terhadap drive secara langsung, seperti file besar dalam sistem file yang dipartisi sederhana.
Setelah Anda mulai berbicara tentang membuat tolok ukur suatu enk, parameter ini tidak terlalu berlaku untuk sistem file Anda lagi, sistem file hanyalah sebuah antarmuka menjadi sesuatu yang lain yang pada akhirnya kembali ke sistem file yang kembali ke drive.
Saya pikir akan sangat membantu untuk memahami apa sebenarnya yang Anda coba ukur, karena ada dua faktor yang berperan di sini - kecepatan IO disk mentah, yang dapat Anda uji dengan menghitung waktu berbagai perintah DD (dapat memberikan contoh jika ini yang Anda inginkan) inginkan) / tanpa / encfs, atau prosesnya akan dibatasi oleh enkripsi dan Anda mencoba untuk menguji throughput relatif dari algoritma enkripsi. Dalam hal ini parameter untuk kedalaman antrian dll tidak terlalu relevan.
Dalam kedua hal tersebut, perintah DD waktunya akan memberi Anda statistik throughput dasar yang Anda cari, tetapi Anda harus mempertimbangkan apa yang ingin Anda ukur dan parameter yang relevan untuk itu.
Tautan ini tampaknya memberikan panduan yang baik untuk pengujian kecepatan disk menggunakan perintah DD berwaktu termasuk cakupan yang diperlukan tentang 'mengalahkan buffer / cache' dan sebagainya. Kemungkinan ini akan memberikan informasi yang Anda butuhkan. Putuskan mana yang lebih Anda minati, kinerja disk, atau kinerja enkripsi, salah satunya adalah bottleneck, dan menyetel non-bottleneck tidak akan menguntungkan apa pun.
sumber