Test Disk I / O-ydelse med dd-kommando

Hvordan kan jeg bruge dd-kommandoen til at teste I / O-ydeevnen på min harddisk? Hvordan kontrollerer jeg ydelsen på en harddisk, herunder læse-og skrivehastigheden på et operativsystem? Hvordan kan jeg bruge kommandoen dd under I / O performance test?
du kan bruge følgende kommandoer på et system til simpel sekventiel I / O-ydelsestest:

  • dd kommando : Det bruges til at overvåge skriveydelsen af en diskenhed på et system.
    Tutorial detaljer
    sværhedsgrad mellemliggende (rss)
    root privilegier Ja
    krav dd
    tid 15m
  • hdparm-kommando: det bruges til at hente/indstille harddiskparametre, herunder teste læsning og caching-ydeevne for en diskenhed på et Liniebaseret system.

i denne vejledning lærer du, hvordan du bruger dd-kommandoen til at teste disk I/O-ydeevne .

brug dd-kommando til at overvåge læse-og skriveydelsen for en diskenhed:

dd-kommandoen er nyttig til at finde ud af enkel sekventiel I/O-ydelse.

forståelse af DD-kommandoindstillinger

i dette eksempel bruger jeg RAID-10 (Adaptec 5405 med SAS SSD) array, der kører på en Ubuntu Linus 14.04 LTS-server. Den grundlæggende syntaks er som følger for at finde ud af serverens gennemstrømning:

Sample outputs:

Fig.01: Ubuntu Server med RAID10 og testing server throughput med dd

bemærk, at der blev skrevet en gigabyte til testen, og at 135 MB/s var server throughput til denne test. Hvor,

  • if=/dev/nul (if=/dev/input.fil): navnet på den inputfil, du vil have dd læst fra.
  • af=/tmp/test1.img (af= / sti / til / output.fil): navnet på den ønskede outputfil dd skriv input.fil til.
  • bs=1g (bs=blokstørrelse) : Indstil størrelsen på den blok, du vil have dd til at bruge. 1 gigabyte blev skrevet til testen. Bemærk venligst, at vi har brug for 1 GB ledig plads i RAM. Hvis dit testsystem ikke har tilstrækkelig RAM til rådighed, skal du bruge en mindre parameter til bs (såsom 128 MB eller 64 MB osv.).
  • count=1 (count=antal blokke): antallet af blokke, du vil have dd til at læse.
  • oflag=dsync (oflag=dsync) : brug synkroniseret I/O til data. Spring ikke over denne mulighed. Denne mulighed slippe af med caching og giver dig gode og præcise resultater
  • conv=fdatasyn: igen fortæller dette dd at kræve en komplet “synkronisering” en gang, lige før den går ud. Denne indstilling svarer til oflag=dsync.

find server latenstid

i dette eksempel blev 512 bytes skrevet tusind gange for at få RAID10 server latenstid:

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

prøve udgange:

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

bemærk, at serverens gennemløb og latenstid også afhænger af server / applikationsbelastning. Så jeg anbefaler, at du kører disse tests på en nyligt genstartet server samt spidsbelastning for at få bedre ide om din arbejdsbyrde. Du kan nu sammenligne disse tal med alle dine enheder.

men hvorfor er serverens gennemløb og latenstid så lav?

lave værdier betyder ikke, at du bruger langsomt udstyr. Værdien kan være lav på grund af RAID10-controllerens cache.

brug hdparm-kommandoen til at se bufferet og cachelagret disklæsningshastighed

jeg foreslår, at du kører følgende kommandoer 2 eller 3 gange udfør timinger af enhedslæsninger til benchmark-og sammenligningsformål:

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

for at udføre timings af cache læser til benchmark og sammenligning formål igen køre følgende kommando 2-3 gange (Bemærk-t mulighed):

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

eller kombinere begge tests:

hdparm -Tt /dev/sda

prøve udgange:

Fig.02: For at teste læsning og caching disk ydeevne

bemærk igen, at på grund af filsystems caching på filoperationer, vil du altid se høje læsehastigheder.

brug kommandoen dd til at teste læsehastighed

for at få nøjagtige læsetestdata skal du først kassere cacher før test ved at køre følgende kommandoer:

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

Laptop eksempel

Kør følgende kommando:

Macbook Pro-eksempel

GNU dd har mange flere muligheder, men OS / BSD og unik dd-kommando skal køre som følger for at teste ægte disk I / O og ikke hukommelse Tilføj synkroniseringsindstilling som følger:

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

prøve udgange:

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

så jeg får 635346520 bytes (635.347 MB/s) skrivehastighed på min MBP.

ikke en fan af kommandolinjeværktøjerne…?

du kan bruge Diskværktøj (gnome-disk-utility) til at få de samme oplysninger. Følgende skærmbillede er taget fra min Fedora V22 VM og Ubuntu 20.04 desktop:

grafisk metode

Klik på “aktiviteter” eller tryk på “Super” – tasten for at skifte mellem aktivitetsoversigten og skrivebordet. Type “Diske”

Fig.03: Start Gnome disk utility

vælg din harddisk i venstre rude og klik på Konfigurer knappen og klik på “Benchmark partition”:

Fig.04: Benchmark disk / partition

endelig skal du klikke på knappen” Start Benchmark… ” (du kan blive forfremmet til admin brugernavn og adgangskode):

Fig.05: endelige benchmark resultat

kører diske værktøj under Ubuntu 20.04 LTS:

  1. Åbn først diske fra aktivitetsoversigten.
  2. vælg derefter disken fra listen i venstre rude.
  3. Vælg menuknappen, og vælg Benchmark disk… i menuen.
  4. Klik på Start Benchmark… og juster overførselshastigheden og Adgangstidsparametrene efter ønske.
  5. Klik endelig på Start Benchmarking for at teste, hvor hurtigt data kan læses fra disken. Administrative rettigheder kan være påkrævet. Indtast din adgangskode eller adgangskoden til den anmodede systemadministratorkonto.

Test ydeevnen på din harddisk ved hjælp af ‘diske’

hvilken metode og kommando anbefaler du at bruge til at teste disk I/O-ydeevne?

  • jeg anbefaler dd-kommando på alle unikke systemer (time sh-c “dd if=/dev/nul of=/tmp/testfile bs=100k count=1k&& sync”))
  • hvis du bruger GNU/Linuks, skal du bruge dd-kommandoen (dd if=/dev/nul of=/tmp/testALT.img bs=1g count=1 conv=fdatasync)
  • sørg for at justere count og bs argumenter som pr din opsætning for at få et godt sæt af resultatet.
  • GUI-metoden anbefales kun til brugere af bærbare computere, der kører Gnome 2 eller 3 desktop.
  • for detaljeret i/O performance benchmarking brug Fio kommandoen
  • vi bruger Iosonen. Det er et filsystem benchmark værktøj. Benchmarket genererer og måler en række filoperationer.

konklusion

du lærte, hvordan du bruger dd under Linuk eller unik til at teste enkel og sekventiel I/O-præstationsmåling. For detaljeret benchmarking af I/O-ydeevne skal du prøve “den fleksible I / O-Tester (FIO)” til f.eks. Se Sådan kontrolleres IDE / SATA-Harddiskoverførselshastighed og man-sider: hdparm (1) For mere information.

🐧 støt mit arbejde på Patreon eller med en donation.
få de nyeste vejledninger på Facebook, Open Source & DevOps via RSS-feed eller ugentlige e-mail-nyhedsbrev.
venstre 14 kommentarer hidtil… Tilføj en ↓
Kategori liste over kommandoer
filhåndtering kat
* CentOS 8 * openSUSE * RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 * Ubuntu 20.04
Netværk Utilities dig * host * ip * nmap
OpenVPN CentOS 7 * CentOS 8 * Debian 10 * Debian 8/9 * Ubuntu 18.04 * Ubuntu 20.04
pakkehåndtering apk * apt
processer Ledelse bg * chroot * cron * fornægte * fg * job * killall • dræbe * pidof * pstree • PV * tid
søger grep * hvor er * hvilken
Brugerinformation grupper * id * lastcomm * sidste * lid / libuser-lid • logname * medlemmer * brugere
VPN Alpine * CentOS 8 * Debian 10 * Brandvæg • Ubuntu 20.04

You might also like

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.