首頁  >  文章  >  系統教程  >  從高速發展的NVMe技術看Linux系統儲存效能提升之路

從高速發展的NVMe技術看Linux系統儲存效能提升之路

WBOY
WBOY轉載
2024-02-13 15:18:24608瀏覽

隨著大數據、雲端運算和人工智慧等應用的快速發展,對於儲存效能的需求越來越高。而早期的SATA介面和AHCI協定已經無法滿足這項需求。近年來,基於PCIe匯流排的NVMe技術逐漸成為儲存界的新寵,具有高速、低延遲、高並發等優勢。本文將探討Linux系統中如何運用NVMe技術進行儲存效能提升。

從高速發展的NVMe技術看Linux系統儲存效能提升之路

#我的筆記型電腦有一個 NVMe 驅動器,我的桌上型電腦也有。而且它們的速度很快。我喜歡我的電腦啟動的速度,以及它們讀寫資料的速度。幾乎沒有延遲。

沒多久,我就對驅動這種超高速儲存的技術產生了好奇,所以我做了一些調查。我了解到,NVMe 硬碟消耗的電力更少,而提供的資料存取速度甚至比 SATA 的 SSD 硬碟快得多。這很有趣,但我想知道更多關於我的特定 NVMe 驅動器的信息,我想知道它們與其他驅動器有何區別。我可以安全地擦除驅動器嗎?我怎麼能檢查它的完整性?

帶著這些問題我在網路上搜索,發現了一個開源項目,其中有一系列管理 NVMe 驅動器的工具。它被稱為 nvme-cli。

安裝 nvme-cli

#你可以從你的發行版的套件管理器安裝

nvme-cli

#。例如,在 Fedora、CentOS 或類似系統上:

$ sudo dnf install nvme-cli

在 Debian、Mint、Elementary 和類似系統上:

$ sudo apt install nvme-cli

探索 NVMe 磁碟機

在安裝 nvme-cli 後,我想探索我的磁碟機。 nvme-cli 沒有手冊頁,但你可以輸入 nvme help 獲得很多幫助:

$ nvme help
nvme-1.14
usage: nvme  [] []
The '' may be either an NVMe character device (ex: /dev/nvme0) or an
nvme block device (ex: /dev/nvme0n1).
The following are all implemented sub-commands:
 list List all NVMe devices and namespaces on machine
 list-subsys List nvme subsystems
 id-ctrl Send NVMe Identify Controller
 id-ns Send NVMe Identify Namespace, display structure
 id-ns-granularity Send NVMe Identify Namespace Granularity List, display structure
 list-ns Send NVMe Identify List, display structure
 list-ctrl Send NVMe Identify Controller List, display structure
 nvm-id-ctrl Send NVMe Identify Controller NVM Command Set, display structure
 primary-ctrl-caps Send NVMe Identify Primary Controller Capabilities
[...]

列出所有的 NVMe 磁碟機

sudo nvme list 指令列出你機器上所有的 NVMe 裝置和命名空間。我用它在 /dev/nvme0n1 找到了一個 NVMe 驅動器。下面是命令輸出結果:

$ sudo nvme list
Node SN Model Namespace Usage Format FW Rev
--------------------- -------------------- ---------------------------------------- -------

-- -------------------------- ---------------- --------


/dev/nvme0n1    S42GMY9M141281 SAMSUNG MZVLB256HAHQ-000L7 1

214.68 GB / 256.06 GB 512  B + 0 B 0L2QEXD7

我有一個名為 nvme0n1 的磁碟機。它列出了序號、品牌、容量、韌體版本等等。

透過使用 id-ctrl 子命令,你可以得到更多關於該硬碟和它所支援的特性的資訊:

$ sudo nvme id-ctrl /dev/nvme0n1
NVME Identify Controller:
vid : 0x144d
ssvid : 0x144d
sn : S42GMY9M141281
mn : SAMSUNG MZVLB256HAHQ-000L7
fr : 0L2QEXD7
rab : 2
ieee : 002538
cmic : 0
mdts : 9
cntlid : 0x4
ver : 0x10200
rtd3r : 0x186a0
rtd3e : 0x7a1200
[...]

驅動器健康

你可以透過 smart-log 子指令來了解硬碟的整體健康狀況:

$ sudo nvme smart-log /dev/nvme0n1
Smart Log for NVME device:nvme0n1 namespace-id:ffffffff
critical_warning : 0
temperature : 21 C
available_spare : 100%
available_spare_threshold : 10%
percentage_used : 2%
endurance group critical warning summary: 0
data_units_read : 5,749,452
data_units_written : 10,602,948
host_read_commands : 77,809,121
host_write_commands : 153,405,213
controller_busy_time : 756
power_cycles : 1,719
power_on_hours : 1,311
unsafe_shutdowns : 129
media_errors : 0
num_err_log_entries : 1,243
Warning Temperature Time : 0
Critical Composite Temperature Time : 0
Temperature Sensor 1 : 21 C
Temperature Sensor 2 : 22 C
Thermal Management T1 Trans Count : 0
Thermal Management T2 Trans Count : 0
Thermal Management T1 Total Time : 0
Thermal Management T2 Total Time : 0

這為你提供了硬碟的當前溫度、到目前為止的使用時間、不安全的關機次數等等。

格式化一個 NVMe 磁碟機

你可以用 nvme-cli 格式化一個 NVMe 驅動器,但要注意。這將刪除驅動器上的所有資料!如果你的硬碟上有重要的數據,你必須在這樣做之前將其備份,否則你將會丟失資料。子命令是 format:

$ sudo nvme format /dev/nvme0nX

(為了安全起見,我用 X 替換了驅動器的實際位置,以防止複製貼上的錯誤。將 X 改為 1 或 nvme list 結果中列出的實際位置。)

安全地擦除 NVMe 磁碟機

當你準備出售或處理你的 NVMe 電腦時,你可能想要安全地擦除磁碟機。這裡的警告與格式化過程中的警告相同。首先要備份重要的數據,因為這個指令會刪除這些數據!

$ sudo nvme sanitize /dev/nvme0nX

嘗試 nvme-cli

#nvme-cli 指令是在 GPLv2 許可下發布的。它是一個強大的命令,有許多有用的選項,用來有效地控制和管理資料。

本文介紹了在Linux系統中利用NVMe技術提升儲存效能的方案與方法,包括使用nvme-cli工具進行效能測試、設定和管理作業等。透過詳細的實驗分析,驗證了NVMe技術對於Linux系統儲存效能提升的顯著效果。未來,在高速發展的NVMe技術的帶動下,我們可以看到越來越多的應用場景中開啟Linux系統儲存效能提升之路,為大數據和人工智慧等應用提供更優異的效能保障。

以上是從高速發展的NVMe技術看Linux系統儲存效能提升之路的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:lxlinux.net。如有侵權,請聯絡admin@php.cn刪除