apr 032013
 

Sata

SATA è l’interfaccia bus più comune sui desktop e su molti server, quindi è importante conoscere alcuni concetti di base su di esso, dal sempre informato Wikipedia:

Il Serial ATA, in sigla SATA, è una interfaccia per computer generalmente utilizzata per connettere hard disk o drive ottici (masterizzatori e/o lettori di DVD, CD, ecc.)

Serial ATA sostituisce il vecchio AT Attachment standard (ATA, poi denominato Parallel ATA o PATA), che offre numerosi vantaggi rispetto la vecchia interfaccia: dimensioni del cavo e costi ridotti (sette conduttori invece di 40), sostituzione a caldo nativa, trasferimento più veloce dei dati e trasferimento dei dati attraverso un più efficiente (opzionale) protocollo di accocodamento dell’ I/O.

Revisioni
Revisione 1.0a è stata rilasciata il 7 gennaio 2003. L’interfacce SATA di prima generazione, ora conosciuta come SATA 1.5 Gbit/s, comunica ad una velocità di 1,5 Gbit/s, e non supporta la Native Command Queuing (NCQ).

La seconda generazione di interfacce SATA funziona con una velocità di trasferimento nativa di 3,0 Gbit/s, e tenendo in considerazione la codifica 8b/10b, la velocità massima di trasferimento in chiaro è di 2,4 Gbit/s (300 MB/s). Il throughput teorico del SATA 3.0 Gbit/s è il doppio di quello SATA Revision 1.0.

L’organizzazione Serial ATA International ha presentato il progetto di specifica di livello fisico SATA 6 Gbit/s nel mese di luglio 2008 ed ha ratificato le sue specifiche di livello fisico il 18 agosto 2008. Lo standard 3.0 completo è stato rilasciato il 27 maggio 2009. Funziona con una velocità di trasferimento nativa di 6,0 Gbit/s, e tenendo in considerazione la codifica 8b/10b, la velocità massima di trasferimento in chiaro è di 4,8 Gbit/s (600 MB/s).

In breve, essi sono di solito definiti come:

SATA revision 1.0 – 1.5 Gbit/s – 150 MB/s
SATA revision 2.0 – 3 Gbit/s – 300 MB/s
SATA revision 3.0 – 6 Gbit/s – 600 MB/s

Quindi, quale versione stai usando sul tuo computer?

E’ davvero facile con il terminale Linux trovare la velocità che si sta veramente usando sui vostri dispositivi, è sufficiente eseguire il comando:

dmesg |grep -i sata
[    0.718552] ata1: SATA max UDMA/133 cmd 0xf0d0 ctl 0xf0c0 bmdma 0xf090 irq 19
[    0.718557] ata2: SATA max UDMA/133 cmd 0xf0b0 ctl 0xf0a0 bmdma 0xf098 irq 19
[    0.718864] ata3: SATA max UDMA/133 cmd 0xf070 ctl 0xf060 bmdma 0xf030 irq 19
[    0.718868] ata4: SATA max UDMA/133 cmd 0xf050 ctl 0xf040 bmdma 0xf038 irq 19
[    1.193335] ata4: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    1.193448] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    2.219408] ata1.00: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    2.219422] ata1.01: SATA link down (SStatus 0 SControl 0)
[    2.219552] ata2.00: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[    2.219568] ata2.01: SATA link down (SStatus 0 SControl 0)

Oppure, se si desidera visualizzare solo i dispositivi collegati

dmesg |grep -i sata |grep up
[    1.193335] ata4: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    1.193448] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    2.219408] ata1.00: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    2.219552] ata2.00: SATA link up 1.5 Gbps (SStatus 113 SControl 300)

Così dal mio output mi rendo conto che ho 4 dispositivi SATA collegati e pronti (link up), 3 di questi dispositivi hanno una velocità di 3.0 Gbps ed 1 ha una velocità di 1,5 Gbps.
Ora, io conosco il mio hardware e credo che i 3 dispositivi a 3,0 Gbps siano i miei 3 hard disk e che l’ultimo sia il mio masterizzatore CD/DVD, ma come faccio a verificarlo ?

Stackexchange ha una soluzione bella e veloce:

I dispositivi /dev/sdY vengono creati nello stesso ordine in cui gli identificatori ATAX sono enumerati nel file kern.log ignorando i dispositivi non-disco (ATAPI) ed i link non collegatii.

Quindi, il seguente comando mostra la mappatura:

grep 'Apr  3' /var/log/kern.log  |    grep 'ata[0-9]\+.[0-9][0-9]: ATA-' |    sed 's/^.*\] ata//' |    sort -n | sed 's/:.*//' |    awk ' { a="ata" $1; printf("%10s is /dev/sd%c\n", a, 96+NR); }'

L’output per me è:

ata1.00 is /dev/sda
ata3.00 is /dev/sdb
ata4.00 is /dev/sdc

Sto usando /var/log/kern.log e non /var/log/kern.log.0 perché sul mio desktop i messaggi di avvio non sono ruotati.
Il grep viene fatto per la data Apr 3, perché questa è l’ultimo avvio e voglio ignorare i messaggi precedenti, se si utilizza questo script basta cambiare la data a quella del vostro ultimo avvio.

Quindi questo conferma la mia idea, i 3 dispositivi a 3,0 Gbps sono i miei 3 hard-disk.
Ma ora ho un altro problema, questa è la velocità massima dei miei hard disk o è la scheda madre che li limita?


Per verificare questo userò un altro comando cobn molte potenzialità: hdparm.
hdparm fornisce un’interfaccia a riga di comando alle interfacce del kernel supportati dal Linux SATA / PATA / SAS al sottosistema “libata” e il vecchio sottosistema driver IDE.
Per ottenere le informazioni che stiamo cercando si può semplicemente utilizzare il flag -I , ma questo dà veramente un sacco di informazioni quindi suggerisco di utilizzare il seguente comando per ottenere solo le informazioni sulla velocità:

mint-desktop #sudo hdparm -I /dev/sda |grep -E "Model|speed" 
	Model Number:       ST500DM002-1BD142                       
	   *	Gen1 signaling speed (1.5Gb/s)
	   *	Gen2 signaling speed (3.0Gb/s)
	   *	Gen3 signaling speed (6.0Gb/s)

Interessante il mio primo disco potrebbe utilizzare SATA Revision 3, quindi la mia scheda madre sta limitando questo Hard Disk.

mint-desktop #sudo hdparm -I /dev/sdb |grep -E "Model|speed"
	Model Number:       Hitachi HUA721050KLA330                 
	   *	Gen1 signaling speed (1.5Gb/s)
	   *	Gen2 signaling speed (3.0Gb/s)
 
mint-desktop #sudo hdparm -I /dev/sdc |grep -E "Model|speed"
	Model Number:       Hitachi HUA721050KLA330                 
	   *	Gen1 signaling speed (1.5Gb/s)
	   *	Gen2 signaling speed (3.0Gb/s)

Il secondo ed il terzo disco rigido sono più vecchi (io li uso in Raid 10 ), quindi non sono sorpreso che supportino solo Sata revisione 2, e comunque con questa MB non è così importante.

Così come si è visto in questo articolo sul terminale GNU/Linux si può rapidamente scoprire qual è la velocità dei dispositivi, mappare i dispositivi ATA sui dischi rigidi SD e verificare la velocità effettiva dei dischi rigidi.

Popular Posts:

flattr this!

  5 Responses to “Come misurare la velocità dei dispositivi SATA da riga di comando su Linux”

  1. You didn’t actually measure anything… Only checked interface speed.

  2. cat /sys/class/ata_link/link?/sata_spd

    Ufficio complicazioni affari semplici .
    https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-ata

  3. Haj is right, use dd to measure the speed. I think it is the -T flag, but can’t recall from here without consulting man dd or Google.
    It will give the buffered and unbuffered speed, based on an actual measurement, not just the theoretical maximum of the spec.

    • Or use hdparm -tT /dev/sdX

      hdparm -tT /dev/sda
      
      /dev/sda:
       Timing cached reads:   10074 MB in  2.00 seconds = 5039.77 MB/sec
       Timing buffered disk reads: 416 MB in  3.01 seconds = 138.32 MB/sec
      

 Leave a Reply

(required)

(required)


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>