Bir Python programında, ana bilgisayardaki tüm disklerin birikmiş okuma/yazma hızlarını almam gerekiyor. Aşağıdaki Linux kabuk komutu aramaya subprocess.check_output()
ile yapıyordu:Python'da disk hızı nasıl okunur/yazılır?
$ sudo hdparm -t /dev/sda
Bu sonucu verir:
/dev/sda:
Timing buffered disk reads: 1488 MB in 3.00 seconds = 495.55 MB/sec
sonra 495.55 ayrıştırma yapabilir. Tamam, şimdiye kadar çok iyi.
cihazın zamanlamaları okur gerçekleştirin
:Ama
karşılaştırma ve karşılaştırma amaçları için. Anlamlı bir sonuç için, bu işlem en az birkaç megabayt boş belleğe sahip başka bir etkin olmayan sistemde (diğer aktif işlemlerde) 2-3 kez tekrarlanmalıdır. Bu, önbelleğe alma işleminden önce arabelleğe önbellek aracılığıyla okuma hızını görüntüler. Bu ölçüm, sürücünün Linux altında, herhangi bir dosya sistemi yükü olmadan, sıralı veri okumalarını ne kadar hızlı tutabileceğinin bir göstergesidir. Doğru ölçümleri sağlamak için, tampon önbelleği BLKFLSBUF ioctl kullanılarak -t işlemi sırasında temizlenir.hdparm
adamı sayfasında ı temelde ölçümü yaparken başka hiçbir işlem okuma/aynı anda diske yazma gerektiğini söylüyor-t
bayrağı için bu açıklamayı bulundu
soru geçerli:
nasıl ölçümleri yapılırken başka hiçbir işlem erişen diski aynı anda olduğundan emin olabiliriz?
Bir dizi hdparm seçeneğinin min/medyan/avg değerini mi alıyor? –
... yapamaz mısın? Kullanıcı başka süreçler çalıştırıyorsa, onları öldüremezsiniz. Ayrıca: her işletim sisteminin * her zaman * düzenli olarak bir şeyler yapması gereken bazı deamon işlemleri vardır, bu disk erişimi gerektirmese bile ... – Bakuriu
@ M.T: Bu dikişler iyi bir seçenek olabilir. Bunu düşündüm, ama değeri elde etmenin başka bir yolunu umuyordum. – RichArt