Linux och Unix Testdisk I / O-prestanda med Dd-kommando

Hur kan jag använda dd-kommando på en Linux för att testa I/O-prestanda på min hårddisk? Hur kontrollerar jag prestandan på en hårddisk inklusive läs-och skrivhastigheten på ett Linux-operativsystem? Hur kan jag använda dd-kommandot under Linux I / O performance test?
du kan använda följande kommandon på ett Linux – eller Unix-liknande system för enkelt sekventiellt i / O-prestandatest:

  • dd-kommando : Det används för att övervaka skrivprestanda för en diskenhet på ett Linux-och Unix-liknande system.
    handledning detaljer
    svårighet mellanliggande (rss)
    root privilegier Ja
    krav dd
    tid 15m
  • hdparm-kommando: det används för att få/ställa in hårddiskparametrar inklusive testa avläsning och cachning av en diskenhet på ett Linux-baserat system.

i denna handledning lär du dig hur du använder dd-kommandot för att testa disk I/O-prestanda .

använd dd-kommandot för att övervaka läs-och skrivprestanda för en diskenhet:

dd-kommandot är användbart för att ta reda på enkel Sekventiell I/O-prestanda.

förstå dd-kommandoalternativ

i det här exemplet använder jag RAID-10 (Adaptec 5405Z med SAS SSD) array som körs på en Ubuntu Linux 14.04 LTS-server. Den grundläggande syntaxen är som följer för att ta reda på serverns genomströmning:

Provutgångar:

Fig.01: Ubuntu Linux Server med RAID10 och testa server genomströmning med dd

Observera att en gigabyte skrevs för testet och 135 MB/s var server genomströmning för detta test. Var,

  • om=/dev/noll (om=/dev/input.fil): namnet på den indatafil du vill läsa från.
  • av=/tmp/test1.img (av=/sökväg/till/utgång.fil): namnet på den utdatafil du vill ha dd skriv inmatningen.fil till.
  • bs=1g (bs=blockstorlek) : Ställ in storleken på det block du vill att dd ska använda. 1 gigabyte skrevs för testet. Observera att Linux behöver 1 GB ledigt utrymme i RAM. Om ditt testsystem inte har tillräckligt med RAM tillgängligt, använd en mindre parameter för bs (som 128MB eller 64MB och så vidare).
  • count=1 (count=antal block): antalet block du vill att dd ska läsa.
  • oflag=dsync (oflag=dsync) : använd synkroniserad I/O för data. Hoppa inte över det här alternativet. Detta alternativ bli av caching och ger dig bra och korrekta resultat
  • conv=fdatasyn: återigen, detta berättar dd att kräva en fullständig ”sync” en gång, precis innan den avslutas. Det här alternativet motsvarar oflag=dsync.

hitta server latenstid

i det här exemplet skrevs 512 byte tusen gånger för att få RAID10 server latenstid:

dd if=/dev/zero of=/tmp/test2.img bs=512 count=1000 oflag=dsync

Provutgångar:

1000+0 records in1000+0 records out512000 bytes (512 kB) copied, 0.60362 s, 848 kB/s

Observera att serverns genomströmning och latenstid också beror på server/applikationsbelastning. Så jag rekommenderar att du kör dessa tester på en nystartad server samt topptid för att få bättre uppfattning om din arbetsbelastning. Du kan nu jämföra dessa siffror med alla dina enheter.

men varför serverns genomströmning och latenstid är så låga?

låga värden betyder inte att du använder långsam hårdvara. Värdet kan vara lågt på grund av hårdvaru RAID10-styrenhetens cache.

använd hdparm-kommandot för att se buffrad och cachad diskläsningshastighet

jag föreslår att du kör följande kommandon 2 eller 3 gånger utför tidpunkter för enhetsläsningar för benchmark och jämförelse:

### Buffered disk read test for /dev/sda ##hdparm -t /dev/sda1## OR ##hdparm -t /dev/sda

för att utföra tidpunkter för cache läser för benchmark och jämförelse ändamål igen köra följande kommando 2-3 gånger (notera-t alternativet):

## Cache read benchmark for /dev/sda ###hdparm -T /dev/sda1## OR ##hdparm -T /dev/sda

eller kombinera båda testerna:

hdparm -Tt /dev/sda

Provutgångar:

Fig.02: Linux hdparm kommando för att testa läsning och caching diskprestanda

återigen notera att på grund av filsystem caching på filoperationer, kommer du alltid se höga läshastigheter.

använd dd-kommandot på Linux för att testa läshastighet

för att få exakta läsningstestdata, kassera först cachar innan du testar genom att köra följande kommandon:

flushecho 3 | sudo tee /proc/sys/vm/drop_cachestime dd if=/path/to/bigfile of=/dev/null bs=8k

Linux Laptop exempel

kör följande kommando:

Apple OS X Unix (Macbook pro) exempel

GNU dd har många fler alternativ men OS X/BSD och Unix-liknande dd-kommando måste köras enligt följande för att testa real disk I / O och inte minne Lägg till synkroniseringsalternativ enligt följande:

## Run command 2-3 times to get good results ###time sh -c "dd if=/dev/zero of=/tmp/testfile bs=100k count=1k && sync"

Provutgångar:

1024+0 records in1024+0 records out104857600 bytes transferred in 0.165040 secs (635346520 bytes/sec) real0m0.241suser0m0.004ssys0m0.113s

så jag får 635346520 byte (635.347 MB/s) skrivhastighet på min MBP.

inte ett fan av kommandoradsverktygen…?

du kan använda disk utility (gnome-disk-utility) på ett Linux-eller Unix-baserat system för att få samma information. Följande skärmdump tas från min Fedora Linux v22 VM och Ubuntu 20.04 desktop:

grafisk metod

klicka på ”aktiviteter” eller tryck på ”Super” – knappen för att växla mellan Aktivitetsöversikten och skrivbordet. Skriv ”Diskar”

Fig.03: starta Gnome disk utility

Välj din hårddisk i vänstra rutan och klicka på knappen Konfigurera och klicka på ”Benchmark partition”:

Fig.04: Benchmark disk / partition

slutligen, klicka på” Start Benchmark… ” knappen (Du kan främjas för admin användarnamn och lösenord):

Fig.05: slutligt riktmärke resultat

kör diskar verktyg under Ubuntu 20.04 LTS:

  1. öppna först diskar från Aktivitetsöversikten.
  2. välj sedan skivan från listan i den vänstra rutan.
  3. välj menyknappen och välj Benchmark disk… från menyn.
  4. klicka på Start Benchmark… och justera överföringshastigheten och Åtkomsttidsparametrarna efter önskemål.
  5. klicka slutligen på Starta Benchmarking för att testa hur snabbt data kan läsas från disken. Administrativa behörigheter kan krävas. Ange ditt lösenord eller lösenordet för det begärda systemadministratörskontot.

testa prestandan på din hårddisk med ’diskar’

vilken metod och kommando rekommenderar du att du använder för att testa disk I / O-prestanda?

  • jag rekommenderar dd-kommando på alla Unix-liknande system (tid sh-c ”dd if=/dev/zero of=/tmp/testfile bs=100k count=1k && sync”))
  • om du använder GNU/Linux använd dd-kommandot (dd if=/dev/zero of=/tmp/testALT.img bs=1g count=1 conv=fdatasync)
  • se till att du justerar räkna och BS argument enligt din inställning för att få en bra uppsättning resultat.
  • GUI-metoden rekommenderas endast för Linux/Unix-bärbara användare som kör Gnome 2 eller 3 desktop.
  • för detaljerad benchmarking av I/O-prestanda använd Fio-kommandot
  • vi använder IOzone. Det är ett riktmärkesverktyg för filsystem. Riktmärket genererar och mäter en mängd olika filoperationer.

slutsats

du lärde dig hur du använder dd under Linux eller Unix för att testa enkel och sekventiell I/O-prestandamätning. För detaljerad benchmarking av I / O-prestanda prova ”den flexibla I / O-testaren (FIO)” för Unix eller Linux. Se hur Linux kontrollera IDE / SATA hårddisk överföringshastighet och manualsidor: hdparm (1) för mer information.

🐧 Vänligen stödja mitt arbete på Patreon eller med en donation.
bisexuell få de senaste tutorials på Linux, Open Source & DevOps via RSS-flöde eller vecko nyhetsbrev.
14 kommentarer hittills… Lägg till en ↓
Kategori lista över Unix-och Linux-kommandon
filhantering katt
brandvägg Alpine Awall * CentOS 8 * OpenSUSE * RHEL 8 * Ubuntu 16.04 * Ubuntu 18.04 * Ubuntu 20.04
nätverksverktyg gräva * värd * ip * nmap
OpenVPN CentOS 7 * CentOS 8 * Debian 10 * Debian 8/9 * Ubuntu 18.04 * Ubuntu 20.04
pakethanterare apk * apt
processer hantering bg * chroot * cron * förneka * fg * jobb * killall * döda * pidof * pstree * pwdx * tid
söker grep * vari * som
användarinformation grupper * id * lastcomm * sista * lock / libuser-lock * logname * medlemmar * användare * whoami * vem * w
WireGuard VPN Alpine * CentOS 8 * Debian 10 * brandvägg • Ubuntu 20.04

You might also like

Lämna ett svar

Din e-postadress kommer inte publiceras.