5,004 瀏覽數

SATA / SAS Link Speed

PCI-E 的速度可以透過 lspci 來查,lspci (PCI Express Gen 1 , 2 , 3) 但 SATA / SAS Link Speed 就沒有辦法透過 lspci 的指令查詢的到了.須要使用下面的指令來查詢.

SATA

除了 dmesg , hdparm 還有 lsscsi ,甚至於直接查 /sys/class/ata_link/link1/sata_spd 也是可以的.

#dmesg -print or control the kernel ring buffer

# dmesg | grep -i sata
[    2.630625] ahci 0000:00:1f.2: AHCI 0001.0200 32 slots 6 ports 3 Gbps 0x3f impl SATA mode
[    2.988260] ata4: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[    2.988285] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    2.988306] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    2.988324] ata6: SATA link down (SStatus 0 SControl 300)
[    2.988343] ata5: SATA link down (SStatus 0 SControl 300)
[    2.988366] ata3: SATA link down (SStatus 0 SControl 300)

SATA 為 3Gbps (SATA 2.0 的裝置),換算時需注意 20% overhead (每八個位元的資料串上用十位元來加以編碼).

  • Generation 1(1.5 Gbit/s) = (1.5G*0.8)/8 = 150 MByte/s
  • Generation 2( 3 Gbit/s) = (3G*0.8)/8 = 300 MByte/s
  • Generation 3( 6 Gbit/s) = (6G*0.8)/8 = 600 MByte/s

#hdparm – get/set SATA/IDE device parameters

# hdparm -I /dev/sda |grep -i speed
           *    Gen1 signaling speed (1.5Gb/s)
           *    Gen2 signaling speed (3.0Gb/s)

/sys/class/ata_link/link#
這個目錄下的幾個檔案都是與 SATA 速度相關的(路徑可以能會不同,可以直接用 find 尋找下面這幾個檔案).

  • hw_sata_spd_limit : Maximum speed supported by the connected SATA device.
  • sata_spd_limit : Maximum speed imposed by libata.
  • sata_spd : Current speed of the link [1.5, 3Gps,…].
# cat /sys/class/ata_link/link1/sata_spd
3.0 Gbps

SAS

至於 SAS 可以透過哪些指令來觀察呢!!透過 dmesg , hdparm 好像是不行,只能直接看 /sys 的資訊了.
目錄 /sys/class/sas_phy/phy-0\:0/ 下的這幾個檔案都是與 SAS 速度相關的 (路徑可以能會不同,可以直接用 find 尋找下面這幾個檔案).

  • maximum_linkrate
  • maximum_linkrate_hw : 硬體支援最高的速度.
  • minimum_linkrate
  • minimum_linkrate_hw : 硬體支援最低的速度.
  • negotiated_linkrate 目前硬碟的速度
#cat /sys/class/sas_phy/phy-0\:0/maximum_linkrate
6.0 Gbit

SAS 為 6Gbps (SAS 2.0 的裝置),換算時需注意 20% overhead (每八個位元的資料串上用十位元來加以編碼).

  • Generation 1(3 Gbit/s) = 2.4 Gbit/s (3*0.8) = 300 MByte/s
  • Generation 2(6 Gbit/s) = 4.8 Gbit/s (6*0.8) = 600 MByte/s
  • Generation 3(12 Gbit/s) = 9.6 Gbit/s (12*0.8) = 1200 MByte/s

4 Replies to “SATA / SAS Link Speed”

  1. 请教下,读取SATA速率时,link1,link2的选择依据是什么?
    在你的例子中,为何link1就是你的sata设备的速度,我在系统中发现,该目录下存在多个link文件
    烦请不吝告知

    • 電腦通常不只有一個 SATA Bus ,並且需要依據你的硬碟是接在哪一個 SATA Bus 上,可以先進 BIOS 看一下你的 SATA Bus 連接狀況.

  2. 自動參照通知: Linux command – smartctl – Benjr.tw

  3. 自動參照通知: 測試面試問題 – Benjr.tw

發表迴響