26、Linux 教程:查询磁盘和监控系统资源

查询磁盘和监控系统资源

查询磁盘分区状态

lsblk(list block device)命令可以查看本系统下所有磁盘和磁盘内的分区信息:

 

可以看到当前系统有sr0、sda装置,sda下有三个分区分别是123,输出信息的含义是:

NAME是装置的文件名,MAJ:MIN是主要和次要装置代码,RM代表是否为可卸除装置,SIZE是容量,RO代表是否为只读装置,TYPE是装置类型,rom是只读存储器,disk是磁盘,part是分区;MOUNTPOINT为挂载点。··

lsblk -ip 完整路径的装置文件名可以查看该装置内所有数据的完整文件名及相关信息。

blkid命令可以列出所有装置的文件名和UUID、设备类型,UUID就是linux给装置设置的独一无二的标识符。

parted命令可以列出磁盘分区表类型和分区信息:parted /dev/sda print

 

可以看到分区表类型就是msdos(MBR),接下来就打印了分区信息。

文件系统查询命令df、du、fsck、dumpe2fs

linux的文件系统是ext,CentOS的文件系统是ext4,它最大提供1EB的文件系统和最大16TB的单个文件。

文件系统查看命令df。-a表示显示所有文件系统,-h代表人性化显示使用习惯单位显示容量,-T代表列出文件系统类型,-i代表列出各区域可用的inode数。df后跟选项再跟目录或文件代表查看该目录或文件可用的容量。

 

ls在统计目录大小时仅仅统计其中文件名占了多大空间,无法统计目录的真实占用空间。此时应该用du命令,-a代表显示文件占用量(默认执行du时只显示当前下的目录),-h代表人性化显示,-s代表统计当前总占用量而不列出细节:

 

du和df命令有一些区别,df命令是从文件系统考虑的,不光要考虑文件占用的空间,还包括被命令或程序占用的空间,而du是纯粹的文件大小,所以要按时重启服务器,删除这些命令或程序占用的空间。

文件修复命令fsck:fsck [选项] 分区设备文件名,也就是sda1、sda2等。这个修复命令在系统启动时会自动执行,一般不需要手动执行,执行时有一定的风险。

显示磁盘状态命令dumpe2fs,后跟分区设备文件名,可以显示数据块的信息等。

查看文件系统中要注意挂载点/proc占用的存储都是0,它一般存系统数据,内部数据都存在内存中。

系统资源查看

vmstat命令监控系统资源:vmstat [刷新延时 刷新次数],如vmstat 1 3代表一共监听3次,每次间隔1s。

 

r代表等待运作中的进程数量,b代表不可被唤醒的进程数量,这两个数字越大代表系统越忙碌。内存分为虚拟内存、空闲内存、缓冲区、缓存区四个部分。swap的si是从磁盘中读的量,so是写入磁盘的量,如果这两个值过大代表系统效能很差;io的bi代表从磁盘读,bo是从磁盘写;system的in是每秒被中断的进程次数,cs是每秒进行的事件切换次数;cpu的us是非核心层CPU状态,sy是核心层的CPU状态,id是闲置的cpu,wa是等待IO消耗的cpu,st是虚拟机占用的cpu。

该命令的执行结果中最重要的两项是空闲内存和cpu空闲率。

查看所有磁盘的读写状态:vmstat -d

dmesg可以查看硬件信息,dmesg | grep CPU可以查看CPU相关信息。

free查看内存使用状态,后跟选项:

-b: 以字节为单位显示
-k: 以KB为单位显示,默认就是以 KB为单位显示
-m: 以MB为单位显示
-g: 以GB为单位显示

详细CPU信息:cat /proc/cpuinfo

uptime可以显示系统的启动时间和平均负载,也就是top命令的第一行。w命令也可以看到这个数据。

uname可以查看系统与内核相关信息,选项:
-a: 查看系统所有相关信息;
-r: 查看内核版本;
-s: 查看内核名称。

查看操作系统位数(通过查看系统外部命令显示该信息):file /bin/ls,file这个命令也可以用来查看文件类型,针对ascii文件、执行文件、数据文件都会有不同的输出结果。

查看系统发行版本:lsb_release -a

查看系统健康状态

查看系统健康状态:top [选项],默认3秒更新一次,可以用-d 秒数来指定更新时间。执行结果:

 

所有进程默认都是按照CPU使用率来排序的。在执行top命令时可以用P/M/N分别指定按照CPU使用率排序、按照内存使用率排序、按照PID排序。还可以执行?或h来查看帮助,按q退出top。

前五行的含义:

 

对于单核来说,平均负载值大于1就说明系统处于超出负荷状态,如果是8核大于8才说明超出负荷。

 

僵尸进程代表进程正在终止但还没有执行完全,如果长时间处于僵尸进程说明关闭时卡死,需要手动关闭。

 

一个很重要的指标是空闲CPU百分比,它如果小于20说明服务器处在高压状态。(注意wa是IO等待)

 

 

top命令是需要占用一定资源的,不能常开否则会影响其他服务。

将top的信息执行两次,将结果输出到文件中:top -b -n 2 > /tmp/top.txt

仅动态观察一个进程,加进程号即可:top -d 2 -p 14836