hdparm 命令使用;關閉硬碟 HDD cache; 硬碟讀寫性能測試;

来源:https://www.cnblogs.com/xuyaowen/archive/2020/04/26/linux-hdparm.html
-Advertisement-
Play Games

最新需要使用硬碟做一些測試,需要使用到hdparm工具,併進行瞭解,併進行簡要記錄; hdparm、dd、fio、都是很好的硬碟測試軟體;通常使用其對硬碟信息做基本瞭解; 關閉硬碟寫Cache用例: hdparm -W /dev/sdh # 查看寫緩存狀態; hdparm -W 0 /dev/sdh ...


最新需要使用硬碟做一些測試,需要使用到hdparm工具,併進行瞭解,併進行簡要記錄;

hdparm、dd、fio、都是很好的硬碟測試軟體;通常使用其對硬碟信息做基本瞭解;

關閉硬碟寫Cache用例:

hdparm -W  /dev/sdh # 查看寫緩存狀態;
hdparm -W  0 /dev/sdh # 關閉Cache,保證數據強一致性;放置斷電時數據未落盤;
hdparm -W  1 /dev/sdh # 打開

測試磁碟和磁碟緩存讀取速度:

查看磁碟信息:
fdisk -l  /dev/sdh
hdparm /dev/sdh
評估磁碟讀取速度:
hdparm -t /dev/sdh
評估磁碟緩存讀取速度:
hdparm -T /dev/sdh
直接測試硬碟的讀性能(繞過內核頁緩存):
hdparm -tT --direct /dev/sdh
順序寫測試:
time -p  bash -c "dd if=/dev/urandom of=./dd.log bs=1M count=50000"
隨機寫測試(使用direct標識,繞過頁緩存):
fio -filename=randw-singlethread -fallocate=none -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=libaio -bs=32k -size=1000M -runtime=30s -numjobs=1 -name=hdparm-randwsinglethread

命令使用方法說明:

hdparm -h

hdparm - get/set hard disk parameters - version v9.43, by Mark Lord.

Usage:  hdparm  [options] [device ...]

Options:
 -a   Get/set fs readahead
 -A   Get/set the drive look-ahead flag (0/1)
 -b   Get/set bus state (0 == off, 1 == on, 2 == tristate)
 -B   Set Advanced Power Management setting (1-255)
 -c   Get/set IDE 32-bit IO setting
 -C   Check drive power mode status
 -d   Get/set using_dma flag
 -D   Enable/disable drive defect management
 -E   Set cd/dvd drive speed
 -f   Flush buffer cache for device on exit
 -F   Flush drive write cache
 -g   Display drive geometry
 -h   Display terse usage information
 -H   Read temperature from drive (Hitachi only)
 -i   Display drive identification
 -I   Detailed/current information directly from drive
 -J   Get/set Western DIgital "Idle3" timeout for a WDC "Green" drive (DANGEROUS)
 -k   Get/set keep_settings_over_reset flag (0/1)
 -K   Set drive keep_features_over_reset flag (0/1)
 -L   Set drive doorlock (0/1) (removable harddisks only)
 -m   Get/set multiple sector count
 -M   Get/set acoustic management (0-254, 128: quiet, 254: fast)
 -n   Get/set ignore-write-errors flag (0/1)
 -N   Get/set max visible number of sectors (HPA) (VERY DANGEROUS)
 -p   Set PIO mode on IDE interface chipset (0,1,2,3,4,...)
 -P   Set drive prefetch count
 -q   Change next setting quietly
 -Q   Get/set DMA queue_depth (if supported)
 -r   Get/set device readonly flag (DANGEROUS to set)
 -R   Get/set device write-read-verify flag
 -s   Set power-up in standby flag (0/1) (DANGEROUS)
 -S   Set standby (spindown) timeout
 -t   Perform device read timings
 -T   Perform cache read timings
 -u   Get/set unmaskirq flag (0/1)
 -U   Obsolete
 -v   Use defaults; same as -acdgkmur for IDE drives
 -V   Display program version and exit immediately
 -w   Perform device reset (DANGEROUS)
 -W   Get/set drive write-caching flag (0/1)
 -x   Obsolete
 -X   Set IDE xfer mode (DANGEROUS)
 -y   Put drive in standby mode
 -Y   Put drive to sleep
 -z   Re-read partition table
 -Z   Disable Seagate auto-powersaving mode
 --dco-freeze      Freeze/lock current device configuration until next power cycle
 --dco-identify    Read/dump device configuration identify data
 --dco-restore     Reset device configuration back to factory defaults
 --direct          Use O_DIRECT to bypass page cache for timings
 --drq-hsm-error   Crash system with a "stuck DRQ" error (VERY DANGEROUS)
 --fallocate       Create a file without writing data to disk
 --fibmap          Show device extents (and fragmentation) for a file
 --fwdownload            Download firmware file to drive (EXTREMELY DANGEROUS)
 --fwdownload-mode3      Download firmware using min-size segments (EXTREMELY DANGEROUS)
 --fwdownload-mode3-max  Download firmware using max-size segments (EXTREMELY DANGEROUS)
 --fwdownload-mode7      Download firmware using a single segment (EXTREMELY DANGEROUS)
 --idle-immediate  Idle drive immediately
 --idle-unload     Idle immediately and unload heads
 --Istdin          Read identify data from stdin as ASCII hex
 --Istdout         Write identify data to stdout as ASCII hex
 --make-bad-sector Deliberately corrupt a sector directly on the media (VERY DANGEROUS)
 --offset          use with -t, to begin timings at given offset (in GiB) from start of drive
 --prefer-ata12    Use 12-byte (instead of 16-byte) SAT commands when possible
 --read-sector     Read and dump (in hex) a sector directly from the media
 --repair-sector   Alias for the --write-sector option (VERY DANGEROUS)
 --security-help   Display help for ATA security commands
 --trim-sector-ranges        Tell SSD firmware to discard unneeded data sectors: lba:count ..
 --trim-sector-ranges-stdin  Same as above, but reads lba:count pairs from stdin
 --verbose         Display extra diagnostics from some commands
 --write-sector    Repair/overwrite a (possibly bad) sector directly on the media (VERY DANGEROUS)

保持更新,更多內容請關註cnblogs.com/xuyaowen; 

相關參考:https://www.cnblogs.com/xuyaowen/p/fio-usage.html 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 筆者作為一個文字的搬運者,也是一個小白用戶,因為老熬夜記憶力很是糟糕,一直靠別人筆記過活。這是筆者整理的在Linux中與上網有關的一些配置文件和小命令。 同樣,只是筆跡,沒有教學,怕誤人子弟。見諒。 ...
  • 1. 仍然是從硬體開始 2. 認識磁碟 3. 磁碟的IO過程 1. 磁頭移動到相應的磁軌上 2. 然後磁軌開始旋轉,轉到相應的扇區 3. 此時再轉的時候磁生電,磁信號就變成了電信號,然後就讀回去 4. 讀到了記憶體的緩衝區,將這個記憶體緩衝區修改一個位元組, 5. 然後仍然到裡面再轉,此時是電生磁,再把字 ...
  • Ansible playbook 編程詳解與各種小案例 主機規劃 添加用戶賬號 說明: 1、 運維人員使用的登錄賬號; 2、 所有的業務都放在 /app/ 下「yun用戶的家目錄」,避免業務數據亂放; 3、 該用戶也被 ansible 使用,因為幾乎所有的生產環境都是禁止 root 遠程登錄的(因此 ...
  • 引導 ARM Linux 本文翻譯自:https://www.kernel.org/doc/html/latest/arm/booting.html 引導 ARM Linux 需要一個引導載入程式,它是一個先於內核運行的小段程式。引導載入程式被用於初始化各種設備,並最終調用 Linux 內核,同時給 ...
  • NXLog是個跨平臺日誌傳輸插件,支持linux、windows平臺的大部分系統日誌及常見的web日誌,支持tcp、udp、http(s)等協議傳輸。 本文通過NXLog將IIS的日誌以syslog的形式轉發至日誌審計伺服器。 一、系統環境 操作系統:Window Server2012 R2 Dat ...
  • 安裝xrdp及tightvncserver失敗 失敗原因: 提示文件下載失敗 解決方案: 使用 wget 絕對網址路徑(http...file.xxx)下載文件 使用 dpkg -i 文件名(file.xxx)安裝文件 註意: 若發生錯誤則按提示解決(衝突的刪除、沒下載安裝成功的按上述方式手動下載安 ...
  • 之前docker 沒有系統整理,現在經常會重新安裝docker,部署docker環境,進行重啟的創建和操作,下麵進行記錄和備忘: 安裝docker-ce:現在常用的docker版本為docker-ce 為docker 社區版;官方提供的文檔已經很簡潔; https://docs.docker.com ...
  • 在Linux中,如果我想給查看的內容加上行號,怎麼處理呢?下麵總結幾種方法,以便不時之需! 方法1:cat命令 cat命令的參數-n,可以輸出行號。 [root@KerryDB klb]# cat -n redo_anly_script.sql 方法2:nl命令 nl命令在linux系統中用來計算文... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...