Sabit disk performansını nasıl kontrol edilir

257

Bir sabit sürücünün performansını nasıl kontrol edilir (Terminal veya GUI aracılığıyla). Yazma hızı. Okuma hızı. Önbellek boyutu ve hızı. Rastgele hız.

    
sordu Luis Alvarado 12.12.2011 01:22

8 cevap

339

Terminal yöntemi

hdparm , başlamak için iyi bir yer.

sudo hdparm -Tt /dev/sda

/dev/sda:
Timing cached reads:   12540 MB in  2.00 seconds = 6277.67 MB/sec
Timing buffered disk reads: 234 MB in  3.00 seconds =  77.98 MB/sec

sudo hdparm -v /dev/sda bilgi de verecektir.

dd size yazma hızı hakkında bilgi verecektir.

Sürücünün bir dosya sistemi yoksa (ve sonra sadece ), of=/dev/sda kullanın.

Aksi takdirde, / tmp üzerine yazıp yazdıktan sonra test çıktı dosyasını silin.

dd if=/dev/zero of=/tmp/output bs=8k count=10k; rm -f /tmp/output

10240+0 records in
10240+0 records out
83886080 bytes (84 MB) copied, 1.08009 s, 77.7 MB/s

Grafiksel yöntem

  1. Sisteme git - & gt; Yönetim - & gt; Disk Yardımcı Programı.
    • Alternatif olarak, gnome-disks çalıştırarak Gnome disk yardımcı programını komut satırından başlatın.
  2. Sol bölmede sabit diskinizi seçin.
  3. Şimdi sağ bölmede "Karşılaştırma - Sürücü Performansını Ölçme" düğmesini tıklayın.
  4. Grafikler içeren yeni bir pencere açılır. İki düğme bulunur. Birincisi “Salt Okunur Okuma” ve diğeri “Okuma / Yazma Testi Başlat” içindir. Herhangi bir düğmeye tıkladığınızda, sabit diskin karşılaştırmasını başlatır.

Disk I / O'nun nasıl karşılaştırılacağı

Makale

İstediğiniz daha bir şey var mı?

    
verilen cevap Panther 12.12.2011 01:34
72

Suominen haklı, bir tür senkronizasyon kullanmalıyız; ama daha basit bir yöntem var, conv = fdatasync işi yapacak:

dd if=/dev/zero of=/tmp/output conv=fdatasync bs=384k count=1k; rm -f /tmp/output
1024+0records in
1024+0 records out
402653184 bytes (403 MB) copied, 3.19232 s, 126 MB/s
    
verilen cevap Tele 18.08.2013 20:31
42

Yazılımın% s_de% kullanılmasını tavsiye etmem çünkü yazılım tabanlı ve daha yavaş bir domuz. Ramdisk'e rastgele veri yığmak daha iyidir. Sabit disk testinde rasgele farketmez, çünkü her bayt olduğu gibi yazılır (ayrıca dd ile ssd'de). Ancak, eğer zfs havuzunu saf sıfır veya rastgele verilerle test edersek, büyük bir performans farkı vardır.

Başka bir bakış açısı, senkronizasyon zamanı içermesi olmalıdır; Tüm modern dosya sistemleri, dosya işlemlerinde önbellek kullanır.

Disk hızını ve belleği değil gerçekten ölçmek için, önbellekleme etkisinden kurtulmak için dosya sistemini senkronize etmeliyiz. Bu tarafından kolayca yapılabilir:

time sh -c "dd if=/dev/zero of=testfile bs=100k count=1k && sync"

bu yöntemle çıktı alırsınız:

sync ; time sh -c "dd if=/dev/zero of=testfile bs=100k count=1k  && sync" ; rm testfile 
1024+0 records in
1024+0 records out
104857600 bytes (105 MB) copied, 0.270684 s, 387 MB/s

real    0m0.441s
user    0m0.004s
sys 0m0.124s

Böylece, disk veri hızı sadece 104857600 / 0.441 = 237772335 B / s - & gt; 237MB / s

Bu, 100 MB / s'nin önbelleğe alınmasından daha düşük.

Mutlu kıyaslama,

    
verilen cevap Pasi Suominen 07.12.2012 00:18
30

Disk okuma ve yazma hızını gerçek zamanlı olarak izlemek istiyorsanız, iotop aracını kullanabilirsiniz.

Bu, bir diskin belirli bir uygulama veya görev için nasıl performans gösterdiği hakkında tam bilgi almak için kullanışlıdır. Çıktı size, işlem başına okuma / yazma hızını ve sunucu için toplam okuma / yazma hızını gösterir, top 'ye çok benzer.

iotop'u yüklemek için:

sudo apt-get install iotop  

Çalıştırmak için:

sudo iotop
    
verilen cevap Lars 17.09.2013 16:24
23

bonnie ++, linux için bildiğim en iyi karşılaştırma aracıdır.

(Şu anda windows tabanlı makinemizi test etmek için bonnie ++ ile işyerinde linux livecd hazırlıyorum!)

Önbelleğe alma, senkronizasyon, rasgele veriler, diskteki rastgele konum, küçük boyut güncellemeleri, büyük güncellemeler, okumalar, yazmalar vb. ile ilgilenir. Bir USB anahtarının, bir harddisk'in (döner), bir katı hal sürücüsünün ve bir ram tabanlı dosya sistemi, yeni kullanıcı için çok bilgilendirici olabilir.

Ubuntu'ya dahil olup olmadığına dair hiçbir fikrim yok, ancak bunu kolayca kaynaktan derleyebilirsiniz.

İşte

    
verilen cevap Corto 03.02.2014 17:13
17

Yazma hızı

$ dd if=/dev/zero of=./largefile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 4.82364 s, 223 MB/s

Blok boyutu aslında oldukça büyük. 64k veya 4k gibi daha küçük boyutlarda deneyebilirsiniz.

Okuma hızı

Bellek önbelleğini temizlemek için aşağıdaki komutu çalıştırın

$ sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"

Şimdi yazma testinde oluşturulan dosyayı okuyun:

$ dd if=./largefile of=/dev/null bs=4k
165118+0 records in
165118+0 records out
676323328 bytes (676 MB) copied, 3.0114 s, 225 MB/s
    
verilen cevap Limon Monte 06.05.2016 00:12
12

bonnie ++ 'nın nasıl kullanılacağına dair bazı ipuçları

bonnie++ -d [TEST_LOCATION] -s [TEST_SIZE] -n 0 -m [TEST_NAME] -f -b -u [TEST_USER] 
bonnie++ -d /tmp -s 4G -n 0 -m TEST -f -b -u james

Biraz daha: BASİT BONNYA ++ ÖRNEĞİ .

    
verilen cevap nyxee 28.09.2015 21:02
8

Doğruluğu istiyorsanız, fio değerini kullanmalısınız. Kılavuzun okunmasını gerektirir ( man fio ), ancak size doğru sonuçlar verecektir. Herhangi bir doğruluk için, tam olarak ne ölçmek istediğinizi belirtmeniz gerektiğini unutmayın. Bazı örnekler:

Büyük bloklarla sıralı READ hızı (bu, sürücünüzün teknik özelliklerinde gördüğünüz numaraya yakın olmalıdır):

fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=read --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --fsync=10000 --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting

Büyük bloklarla sıralı WRITE hızı (bu, sürücünüzün teknik özelliklerinde gördüğünüz sayıya yakın olmalıdır):

fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=write --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --fsync=10000 --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting

Rastgele 4K QD1 oku (emin olduğunuzdan emin olmadığınız sürece gerçek dünya performansı için gerçekten önemli olan sayıdır):

fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=randread --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --fsync=1 --iodepth=1 --direct=1 --numjobs=1 --runtime=60 --group_reporting

Karışık rastgele 4K, QD1'i senkronize olarak okuyun ve yazın (bu, sürücünüzden beklemeniz gereken en kötü durum numarasıdır; genellikle, özellik sayfasında listelenen sayının% 1-10'u):

fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=randrw --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --fsync=1 --iodepth=1 --direct=1 --numjobs=1 --runtime=60 --group_reporting

Dosya boyutunu artırmak için --size argümanı artırın. Daha büyük dosyaları kullanmak, sürücü teknolojisine ve ürün bilgisine bağlı olarak aldığınız sayıları azaltabilir. Küçük dosyalar döner medya için "çok iyi" sonuçlar verir, çünkü okuma kafası bu kadar fazla harekete gerek duymaz. Cihazınız boşsa, sürücüyü neredeyse dolduracak kadar büyük dosya kullanmak, her bir test için size en kötü durum davranışını sağlayacaktır. SSD durumunda, dosya boyutu o kadar önemli değil.

fio 'nin ilk çalıştırmada gerekli geçici dosyayı oluşturacağını unutmayın. Verileri kalıcı depolama alanına yazmadan önce sıkıştıran cihazlardan çok iyi numaralar almaktan kaçınmak için rastgele verilerle doldurulur. Geçici dosya yukarıdaki örneklerde fio-tempfile.dat olarak adlandırılacak ve mevcut çalışma dizininde saklanacaktır. Bu yüzden önce test etmek istediğiniz cihaza bağlı dizine geçmelisiniz.

    
verilen cevap Mikko Rantalainen 01.01.2018 19:14

Etiketlerdeki diğer soruları oku