Android apache 微软 centos Windows java 编程 程序员 云计算 mysql 开源 php google wordpress nginx Python linux Ubuntu Firefox shell

Linux存儲管理命令與HAB相關命令

首先了解Linux中的設備命名規則:在安裝和使用Linux的過程中,您必然會接觸到不少像hda1、ttyS0、eth0這樣的設備名稱。在Linux中,每個設備必須在它的驅動程序控制下運行,驅動程序則與/dev目錄下的特殊文件聯系在一起,盡管這些文件並不是真正的文件,但在選擇設備或者操作設備時都以這個文件的名稱來代表這一設備。這些設備名稱的命名都是有規則的:  在/dev目錄下,每一個驅動器以一個單獨的設備文件來表現。

  通常最常見的是硬盤,對於IDE硬盤一般可以有二到四個。這就是/dev/hda、/dev/hdb、/dev/hdc和/dev/hdd,hd是硬盤的意思,a則是代表第一個設備,hda1中的“1”代表hda的第一個硬盤分區,依此類推。而SCSI硬盤也就是/dev/sda、/dev/sdb等等,sd是SCSI設備的意思,第一個SCSI硬盤是/dev/sda, fd是軟盤,設備名稱是/dev/fd0。Linux 計算機中磁帶機的設備名是: /dev/st*和/dev/nst*, 其中nst*是操作完成後不自動回卷磁帶, st*則是自動 回卷, 一般常用nst*. 主機SCSI總線上找到的第一個磁帶機是nst0和st0, 第二個則是nst1和st1, 依此類推. 磁帶機的SCSI號越小, 其設備名也就越靠前。

1. lsmod

  lsmod命令用來列出當前系統加載的模塊,可以當作硬件模塊瀏覽器。
使用權限:
格式:lsmod [-hV]  
主要選項:
-h :顯示幫助信息。
-V:顯示軟件版本信息。
應用說明:使用lsmod命令必須安裝Linux安裝盤中的modutils 軟件包。我們看一個lsmod命令實例,如圖1。

2. uname

  uname 命令用來顯示輸出系統信息。
使用權限:超級用戶。
格式:uname [選項]
主要選項:  
-a, --all :顯示所有的信息。 
-m, --machine :顯示硬件類型 。
-n, --nodename :顯示機器的網絡節點主機名。 
-r, --release :顯示操作系統發行版本。 
-s, --sysname :顯示操作系統名。 
-p, --processor :顯示主機處理器(CPU)類型。 
-v :顯示操作系統版本。 
--help :顯示本幫助並退出。 
--version: 顯示版本信息並退出。   
應用實例:
#uname –a
Linux cao 2.4.20-8#1Thu Mar 13 17:54:28 EST 2003 i686 i686 i386 GNU/Linux

3 .lspci

  lspci命令用來查看主板所有硬件槽信息。
使用權限:所有用戶。
格式:lspci []
-v:顯示詳細信息。
-n:顯示設備ID號。
-b:顯示PCI、ISA擴展槽地址和中斷。
-t:顯示總線樹結構。
-F <file> :從指定文件讀信息。
-m:輸出所有硬件信息。
應用實例:
當系統硬件出現故障時,可以使用lspci命令輸出所有硬件信息。以幫助確定故障點。


4. sync

sync命令用來將內存緩沖區內的數據寫入磁盤。

使用權限:所有用戶。

格式:

sync

應用說明:在Linux系統中,當數據需要存入磁盤時,通常會先放到緩沖區內,等到適當的時刻再寫入磁盤,如此可提高系統的執行效率。

5. e2label

e2label命令用來設定或顯示ext2或ext3分區的卷標。

使用權限:超級用戶。

格式:

e2label device [ new-label ]

主要選項:

device:分區設備名稱。

new-label:新設定的卷標名稱。不能超過16字符。

應用實例:為一個新創建的分區建立卷標名稱:1111,使用命令:

#e2label /deva9 1111

6. findfs

findfs命令用來查找指定卷標的文件系統。

使用權限:超級用戶。

格式:

findfs LABEL=<label>

findfs UUID=<uuid>

主要選項:

LABEL=<label> :卷標名稱。

UUID=<uuid>:分區的UUID號。

應用說明:隨著Linux系統中硬盤容量和數目的增加,Linux系統中分區數量也越來越多,使用findfs命令可以通過卷標名稱或UUID號快速定位分區位置。

應用實例:

查找卷標名稱是:ar/ftp的分區位置,使用命令:

#findfs LABEL=ar/ftp

/deva9

7. badblock

badblock 命令用來檢查磁盤中損壞的區塊。

使用權限:超級用戶。

格式:

badblocks [-b block_size] [-i input_file] [-o output_file] [-svw]

 [-c blocks_at_once] [-p num_passes] device [last_block [start_count]

主要選項:

-b block_size:指定磁盤的區塊大小,單位為字節。

-i input_file:讀出上次的檢查的結果中的壞塊列表。

-o output_file:將檢查的結果寫入指定的輸出文件。

-s:   在檢查時顯示進度。

-v:  執行時顯示詳細的信息。

w:  在檢查時,執行寫入測試。

-c blocks_at_once:每個區塊檢查次數。確省值16次。

-p num_passes:通過的數量。確省值0。

start_count:指定要從哪個區塊開始檢查。

last_block:指定結束檢查的區塊。

device:指定要檢查的磁盤裝置。

應用實例:

#badblocks -b 4096 /deva1 -o badblocks-list

以4096的一個block,每一個block檢查16次,將結果輸入badblocks-list,badblocks-list是一個文本文件。如果硬盤正常的話,應該badblocks-list是沒有任何內容的。

8.iostat

 以前一直不太會用這個參數.現在認真研究了一下iostat,因為剛好有臺重要的服務器壓力高,所以放上來分析一下.下面這臺就是IO有壓力過大的服務器

$iostat -x 1

Linux 2.6.33-fukai (fukai-laptop)          _i686_    (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle

           5.47    0.50    8.96   48.26    0.00   36.82

 

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util

sda               6.00   273.00   99.00    7.00  2240.00  2240.00    42.26     1.12   10.57   7.96  84.40

sdb               0.00     4.00    0.00  350.00     0.00  2068.00     5.91     0.55    1.58   0.54  18.80

rrqm/s:      每秒進行 merge 的讀操作數目.即 delta(rmerge)/s

wrqm/s:  每秒進行 merge 的寫操作數目.即 delta(wmerge)/s

r/s:              每秒完成的讀 I/O 設備次數.即 delta(rio)/s

w/s:            每秒完成的寫 I/O 設備次數.即 delta(wio)/s

rsec/s:       每秒讀扇區數.即 delta(rsect)/s

wsec/s:     每秒寫扇區數.即 delta(wsect)/s

rkB/s:         每秒讀K字節數.是 rsect/s 的一半,因為每扇區大小為512字節.(需要計算)

wkB/s:    每秒寫K字節數.是 wsect/s 的一半.(需要計算)

avgrq-sz: 平均每次設備I/O操作的數據大小 (扇區).delta(rsect+wsect)/delta(rio+wio)

avgqu-sz: 平均I/O隊列長度.即 delta(aveq)/s/1000 (因為aveq的單位為毫秒).

await:       平均每次設備I/O操作的等待時間 (毫秒).即 delta(ruse+wuse)/delta(rio+wio)

svctm:      平均每次設備I/O操作的服務時間 (毫秒).即 delta(use)/delta(rio+wio)

%util:         一秒中有百分之多少的時間用於 I/O 操作,或者說一秒中有多少時間 I/O 隊列是非空的.即 delta(use)/s/1000 (因為use的單位為毫秒)

如果 %util 接近 100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁盤

可能存在瓶頸.

idle小於70% IO壓力就較大了,一般讀取速度有較多的wait.

同時可以結合vmstat 查看查看b參數(等待資源的進程數)和wa參數(IO等待所占用的CPU時間的百分比,高過30%時IO壓力高)

另外 await 的參數也要多和 svctm 來參考.差的過高就一定有 IO 的問題.

avgqu-sz 也是個做 IO 調優時需要註意的地方,這個就是直接每次操作的數據的大小,如果次數多,但數據拿的小的話,其實 IO 也會很小.如果數據拿的大,才IO 的數據會高.也可以通過 avgqu-sz × ( r/s or w/s ) = rsec/s or wsec/s.也就是講,讀定速度是這個來決定的.

延伸阅读

    评论