除了查看硬盘的空间使用情形外,我们还可以查看目前硬盘是否忙碌中,以了解硬盘的使用效率。我们可以使用 systat 这个指令:

# systat -vm 1
    3 users      Load    0.12    0.12    0.09                     6 26 00:38

Mem:KB      REAL              VIRTUAL                       VN PAGER    SWAP PAGER
        Tot     Share        Tot      Share      Free           in    out       in    out
Act    130120      5436     385556      11716     30540 count    146
All    233584     17544    2762124      45604           pages    846
                                                                 Interrupts
Proc:r    p    d    s    w      Csw    Trp    Sys    Int    Sof    Flt        8 cow       474 total
             75        1514    379 2525    690     66    375     70564 wire      100 0: clk
                                                    132932 act           1: atkb
14.0%Sys     1.6%Intr    2.3%User    0.0%Nice 82.2%Idl      18024 inact         3: sio1
|      |      |      |      |      |      |      |      |      |        13024 cache         4: sio0
=======+>                                             17516 free          7: ppc0
                                                           daefr     128 8: rtc
Namei           Name-cache      Dir-cache                    38 prcfr      40 9: fxp0
    Calls       hits      %       hits      %                    228 react      31 10: fxp
     1020        672     66                                      pdwak         11: hpt
                                       43 zfod               pdpgs         12: psm
Disks     ad0     da0 pass0                  43 ofod              intrn         13: npx
KB/t    28.20    0.00    0.00                     %slo-z      35664 buf       175 14: ata
tps       164       0       0                  70 tfree         334 dirty         15: ata
MB/s     4.52    0.00    0.00                               17810 desiredvnodes
% busy     43       0       0                               16852 numvnodes
                                                     13772 freevnodes
systat 有许多信息,我们使用参数 -vm1 来显示最详细的信息,并设定每 1 秒更新一次信息。在上面一堆复制的信息中,请将重点于在中间「====+>」及左下角的 Disks,中间部份的「====+>」表示目前 CPU 的使用情形,我们可以看到有 82.2% 的 Idle (闲置)。而硬盘的使用情形中,我的第一个硬盘 ad0 正在忙碌中,有 43% 的忙碌。而另一个 SCSI 硬盘 da0 则是完全闲置,也就是没有人正在使用它。

如果您想要知硬盘本身的存取速度,可以使用 diskinfo 这个指令。diskinfo 加了 -t 参数会对硬盘做一些测试并回报结果:

# diskinfo -v -t ad0
ad0
        512               # sectorsize
        40020664320       # mediasize in bytes (37G)
        78165360          # mediasize in sectors
        77545             # Cylinders according to firmware.
        16                # Heads according to firmware.
        63                # Sectors according to firmware.

Seek times:
        Full stroke:        250 iter in     5.199255 sec =     20.797 msec
        Half stroke:        250 iter in     4.011383 sec =     16.046 msec
        Quarter stroke:     500 iter in     6.797812 sec =     13.596 msec
        Short forward:      400 iter in     2.774055 sec =      6.935 msec
        Short backward:     400 iter in     3.257613 sec =      8.144 msec
        Seq outer:         2048 iter in     0.352483 sec =      0.172 msec
        Seq inner:         2048 iter in     0.369383 sec =      0.180 msec
Transfer rates:
        outside:         102400 kbytes in     4.511970 sec =      22695 kbytes/sec
        middle:          102400 kbytes in     4.770641 sec =      21465 kbytes/sec
        inside:          102400 kbytes in     4.174557 sec =      24530 kbytes/sec
diskinfo 指令的 -r 参数会先印出一些分割区的基本信息,包含 sector size、分割区大小、磁柱数量等。接下来的测试会花一点时间,测试结果包含了「Seek times」及「Transfer rates」。「Seek times」指的是硬盘的搜寻速度,而「Transfer rates」是数据找到后从硬盘传到系统的速度。


现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
Tags:
df命令详细用法

a:显示全部的档案系统和各分割区的磁盘使用情形
i:显示i -nodes的使用量
k:大小用k来表示 (默认值)
t:显示某一个档案系统的所有分割区磁盘使用量
x:显示不是某一个档案系统的所有分割区磁盘使用量
T:显示每个分割区所属的档案系统名称
常用命令:df -hi

操作详解
引用
指令 df 可以显示目前所有档案系统的最大可用空间及使用情形,请看下列这个例子:

# df -h
Filesystem       Size      Used     Avail Capacity    Mounted on
/dev/ad0s1a      1.9G      389M      1.4G      21%      /
devfs            1.0K      1.0K        0B     100%      /dev
/dev/ad0s1d      989M       54K      910M       0%      /tmp
/dev/ad0s1f      4.8G      3.8G      657M      86%      /usr
/dev/ad0s1e      1.9G      149M      1.6G       8%      /var
/dev/ad0s1g       26G      890K       24G       0%      /volume2
/dev/da0s1d      325G      261G       38G      87%      /volume1

我们加了参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。

上面的指令输出的第一个字段及最后一个字段分别是档案系统及其挂入点。我们可以看到 /dev/ad0s1a 这个分割区被挂在根目录下。我们在上一小节提到过 ad 所代表的是 IDE 的硬盘,而 s1 表示第一个主要扇区。我另外有一个 SCSI 硬盘,它的代号是 da,它的容量很大,主要用来存放数据。devfs 是一个特别的档案系统,该档案系统并非真的磁盘,而是 FreeBSD 用来管理系统硬件装置的虚拟档案系统。

接下来的四个字段 Size、Used、Avail、及 Capacity 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。

另外,我们还可以使用参数 -i 来查看目前档案系统 inode 的使用情形。有的时候虽然档案系统还有空间,但若没有足够的 inode 来存放档案的信息,一样会不能增加新的档案。

# df -ih
Filesystem       Size      Used     Avail Capacity iused      ifree %iused    Mounted on
/dev/ad0s1a      1.9G      389M      1.4G      21%     20495     262127      7%     /
devfs            1.0K      1.0K        0B     100%         0          0    100%     /dev
/dev/ad0s1d      989M       62K      910M       0%        24     141286      0%     /tmp
/dev/ad0s1f      4.8G      3.8G      657M      86%    311439     348015     47%     /usr
/dev/ad0s1e      1.9G      149M      1.6G       8%      1758     280864      1%     /var
/dev/ad0s1g       26G      890K       24G       0%        12    3532786      0%     /volume2
/dev/da0s1d      325G      261G       38G      87%    707277 43311409      2%     /volume1
我们可以看到根目录的已经用掉的 inode 数量为 20495,还有 262127 的可用 inode。

小提示
还记得什么是 inode 吗?所谓的 inode 是用来存放档案及目录的基本信息 (metadata),包含时间、档名、使用者及群组等。在分割扇区时,系统会先做出一堆 inode 以供以后使用,inode 的数量关系着系统中可以建立的档案及目录总数。如果要存的档案大部分都很小,则同样大小的硬盘中会有较多的档案,也就是说需要较多的 inode 来挂档案及目录。


du:查询档案或目录的磁盘使用空间

a:显示全部目录和其次目录下的每个档案所占的磁盘空间
b:大小用bytes来表示 (默认值为k bytes)
c:最后再加上总计 (默认值)
s:只显示各档案大小的总合
x:只计算同属同一个档案系统的档案
L:计算所有的档案大小
常用命令:du -a

操作详解
引用
指令 du 能以指定的目录下的子目录为单位,显示每个目录内所有档案所占用的磁盘空间大小。例如:

# du -h /etc
104K /etc/defaults
6.0K /etc/X11
8.0K /etc/bluetooth
4.0K /etc/gnats
52K /etc/isdn
388K /etc/mail
68K /etc/mtree
2.0K /etc/ntp
38K /etc/pam.d
44K /etc/periodic/daily
6.0K /etc/periodic/monthly
42K /etc/periodic/security
16K /etc/periodic/weekly
110K /etc/periodic
6.0K /etc/ppp
318K /etc/rc.d
2.0K /etc/skel
130K /etc/ssh
10K /etc/ssl
1.7M /etc
我们目样使用 -h 参数来显示 human-readable 的格式。在应用时,我们可以使用 du 这个指令来查看哪个目录占用最多的空间。不过,du 的输出结果通常很长,我们可以加上 -s 参数来省略指定目录下的子目录,而只显示该目录的总合即可:

# du -sh /etc
1.7M       /etc
在查看目录的使用情形时,我们可以将输出结果导到 sort 指令进行排序,以了解哪个档案用了最多的空间:

# du /etc | sort -nr | more
1746 /etc
388 /etc/mail
318 /etc/rc.d
130 /etc/ssh
110 /etc/periodic
104 /etc/defaults
68 /etc/mtree
52 /etc/isdn
44 /etc/periodic/daily
42 /etc/periodic/security
38 /etc/pam.d
16 /etc/periodic/weekly
10 /etc/ssl
8 /etc/bluetooth
6 /etc/ppp
6 /etc/periodic/monthly
6 /etc/X11
4 /etc/gnats
2 /etc/skel
2 /etc/ntp
sort 的参数 -nr 表示要以数字排序法进行反向排序,因为我们要对目录大小做排序,所以不可以使用 human-readable 的大小输出,不然目录大小中会有 K、M 等字样,会造成排序不正确。



现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
Tags: ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]