Linux中存储相关的命令,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 :从指定文件读信息。  -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=

findfs UUID=

主要选项:

LABEL= :卷标名称。

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.也就是讲,读定速度是这个来决定的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值