标簽
PostgreSQL , Linux , Windows , SSD , smartctl , smartmontools , badblocks , hdparm , HD Tune
https://github.com/digoal/blog/blob/master/201803/20180331_01.md#%E8%83%8C%E6%99%AF 背景
Linux下面可以使用smartctl , badblocks檢查是否有壞塊。
Win下面可以使用HD Tune。
https://github.com/digoal/blog/blob/master/201803/20180331_01.md#1-smartmontools 1 smartmontools
apt install smartmontools
https://www.aliyun.com/jiaocheng/120499.html smartctl -t long /dev/sda
3.1.5 SMART 離線測試、自測試 參數 -t TEST 立刻執行測試,可以和-C參數一起使用。 TEST可以有以下幾個選擇: offline 離線測試。可以在挂載檔案系統的磁盤上使用 short 短時間測試。可以在挂載檔案系統的磁盤上使用。 long 長時間測試。可以在挂載檔案系統的磁盤上使用。 conveyance [ATA only]傳輸zi測試。可以在挂載檔案系統的磁盤上使用。 select,N-M select, N+SIZE [ATA only]有選擇性測試,測試磁盤的部分LBA。N表示 LBA編号,M表示結束LBA編号,SIZE表示測試的LBA 範圍。
檢視健康狀态
smartctl -s on /dev/sda smartctl -a /dev/sda smartctl -H /dev/sda
https://github.com/digoal/blog/blob/master/201803/20180331_01.md#2-badblocks 2 badblocks
讓我們從壞道和壞塊的定義開始說起,它們是一塊磁盤或閃存上不再能夠被讀寫的部分,一般是由于磁盤表面特定的
實體損壞或閃存半導體失效導緻的。
随着壞道的繼續積累,它們會對你的磁盤或閃存容量産生令人不快或破壞性的影響,甚至可能會導緻硬體失效。
同時還需要注意的是壞塊的存在警示你應該開始考慮買塊新磁盤了,或者簡單地将壞塊标記為不可用。
是以,在這篇文章中,我們通過幾個必要的步驟,使用特定的
磁盤掃描工具讓你能夠判斷 Linux 磁盤或閃存是否存在壞道。
以下就是步驟:
https://github.com/digoal/blog/blob/master/201803/20180331_01.md#%E5%9C%A8-linux-%E4%B8%8A%E4%BD%BF%E7%94%A8%E5%9D%8F%E5%9D%97%E5%B7%A5%E5%85%B7%E6%A3%80%E6%9F%A5%E5%9D%8F%E9%81%93 在 Linux 上使用壞塊工具檢查壞道
壞塊工具可以讓使用者掃描裝置檢查壞道或壞塊。裝置可以是一個磁盤或外置磁盤,由一個如
/dev/sdc
這樣的檔案代表。
首先,通過超級使用者權限執行
fdisk指令來顯示你的所有磁盤或閃存的資訊以及它們的分區資訊:
$ sudo fdisk -l
列出 Linux 檔案系統分區
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuEDMw81YpB3XxAzXxMzMwgTMwIzLcNDM4EDMy8CXyVGdzFWbvw1ZvxmYvwFbh92ZpR2Lc12bj5CduVGdu92YyV2c1JWdoRXan5ydhJ3Lc9CX6MHc0RHaiojIsJye.png)
然後用如下指令檢查你的 Linux 硬碟上的壞道/壞塊:
$ sudo badblocks -v /dev/sda10 > badsectors.txt
在 Linux 上掃描硬碟壞道
上面的指令中,
badblocks
掃描裝置
/dev/sda10
(記得指定你的實際裝置),
-v
選項讓它顯示操作的詳情。另外,這裡使用了輸出重定向将操作結果重定向到了檔案
badsectors.txt
。
如果你在你的磁盤上發現任何壞道,解除安裝磁盤并像下面這樣讓系統不要将資料寫入回報的扇區中。
你需要執行
e2fsck
(針對
ext2/ext3/ext4
檔案系統)或
fsck
指令,指令中還需要用到
badsectors.txt
檔案和裝置檔案。
-l
選項告訴指令将在指定的檔案
badsectors.txt
中列出的扇區号碼加入壞塊清單。
------------ 針對 for ext2/ext3/ext4 檔案系統 ------------ $ sudo e2fsck -l badsectors.txt /dev/sda10 或 ------------ 針對其它檔案系統 ------------ $ sudo fsck -l badsectors.txt /dev/sda10
如果你使用的是ZFS,不需要FSCK來修複。ZFS是事務型檔案系統,任何時刻視角都是 一緻的。
https://github.com/digoal/blog/blob/master/201803/20180331_01.md#%E5%9C%A8-linux-%E4%B8%8A%E4%BD%BF%E7%94%A8-smartmontools-%E5%B7%A5%E5%85%B7%E6%89%AB%E6%8F%8F%E5%9D%8F%E9%81%93 在 Linux 上使用 Smartmontools 工具掃描壞道
這個方法對帶有
S.M.A.R.T
(自我監控分析報告技術
Self-Monitoring, Analysis and Reporting Technology
)系統的現代磁盤(
ATA/SATA
和
SCSI/SAS
硬碟以及固态硬碟)更加的可靠和高效。
S.M.A.R.T
系統能夠幫助檢測,報告,以及可能記錄它們的健康狀況,這樣你就可以找出任何可能出現的硬體失效。
你可以使用以下指令安裝
smartmontools
:
------------ 在基于 Debian/Ubuntu 的系統上 ------------ $ sudo apt-get install smartmontools ------------ 在基于 RHEL/CentOS 的系統上 ------------ $ sudo yum install smartmontools
安裝完成之後,使用
smartctl
控制磁盤內建的
S.M.A.R.T
系統。你可以這樣檢視它的手冊或幫助:
$ man smartctl $ smartctl -h
然後執行
smartctrl
指令并在指令中指定你的裝置作為參數,以下指令包含了參數
-H
或
--health
以顯示
SMART
整體健康自我評估測試結果。
$ sudo smartctl -H /dev/sda10
檢查 Linux 硬碟健康
上面的結果指出你的硬碟很健康,近期内不大可能發生硬體失效。
要擷取磁盤資訊總覽,使用
-a
--all
選項來顯示關于磁盤所有的
SMART
資訊,
-x
--xall
來顯示所有關于磁盤的 SMART 資訊以及非 SMART 資訊。
在這個教程中,我們涉及了有關
磁盤健康診斷的重要話題,你可以下面的回報區來分享你的想法或提問,并且記得多回來看看。
via:
http://www.tecmint.com/check-linux-hard-disk-bad-sectors-bad-blocks/https://github.com/digoal/blog/blob/master/201803/20180331_01.md#3-hdparm 3 hdparm
檢測硬碟I/O相對來說還是一個比較抽象的概念,但是對系統性能的影響還是至關重要的。
使用hdparm指令檢測讀取速度:
hdparm指令提供了一個指令行的接口用于讀取和設定IDE和SCSI硬碟參數。 安裝:
yum install hdparm
文法:
hdparm(選項)(參數)
常用選項:
-f: 将記憶體緩沖區的資料寫入硬碟,并清除緩沖區; -g: 顯示硬碟的磁軌,磁頭,磁區等參數; -i: 顯示硬碟的硬體規格資訊,這些資訊是在開機時由硬碟本身所提供; -I: 直接讀取硬碟所提供的硬體規格資訊; -t: 評估硬碟的讀取效率; -T: 評估硬碟快取的讀取效率;
參數: 裝置檔案:指定id驅動對應的裝置檔案名 執行個體: 使用方法很簡單,```hdparm -Tt /dev/sda```
[root@super python]# hdparm -Tt /dev/sda /dev/sda: Timing cached reads: 8470 MB in 2.00 seconds = 4235.83 MB/sec # 硬碟的快取讀取速度,2.00秒讀取了8470 MB,平均每秒讀取:4235.83 MB/sec Timing buffered disk reads: 722 MB in 3.22 seconds = 224.28 MB/sec # 硬碟的讀取速度:3.22秒讀取了722 MB,平均每秒讀取:224.28 MB/sec
https://github.com/digoal/blog/blob/master/201803/20180331_01.md#4-fio 4 fio
《fio測試IO性能》https://github.com/digoal/blog/blob/master/201803/20180331_01.md#5-hd-tune 5 HD Tune
https://github.com/digoal/blog/blob/master/201803/20180331_01.md#6-dd 6 dd
使用dd指令測試寫入速度:
dd指令是一個不太專業的測速工具,如果要求的不是很嚴格,還是可以進行多次測試來得到一個近似值的。 安裝:
yum install coreutils
執行個體:
[root@super python]# dd if=/dev/zero of=test bs=1M count=2048 # 寫入一個檔案名test, bytes 為1M,共2048 blocks 的檔案,總共大小為:1M * 2048 = 2G 記錄了2048+0 的讀入 記錄了2048+0 的寫出 2147483648位元組(2.1 GB)已複制,88.8786 秒,24.2 MB/秒 88.8786 秒寫入了2.1 GB資料,平均:24.2 MB/秒