linux查看各种系统资源的方式

不管是什么系统在日常使用过程中,最经常查看的资源无外乎如下几种:

  1. 硬盘资源
  2. CPU资源
  3. 内存资源
  4. 网络资源
  5. 进程资源

尤其是在服务器日常使用当中涉及到排查错误更需要细粒度的查看了,下面分别从资源方面介绍一下常用的命令

硬盘

硬盘比较关心的东西一个是容量大小,在一个就是硬盘的io问题,服务器涉及到重启的话还可能涉及到挂载的问题

###容量

df

df命令可以查看系统文件系统的详细使用情况一般会跟上-h(human)选项以人易读的方式展示出来

1
2
3
4
5
6
7
8
9
10
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
dev 459M 0 459M 0% /dev
run 462M 3.8M 458M 1% /run
/dev/mmcblk0p2 59G 6.6G 49G 12% /
tmpfs 462M 64K 462M 1% /dev/shm
tmpfs 462M 0 462M 0% /sys/fs/cgroup
tmpfs 462M 128K 462M 1% /tmp
/dev/mmcblk0p1 100M 57M 44M 57% /boot
tmpfs 93M 0 93M 0% /run/user/0

du

使用df查看到具体的挂载点容量之后,使用du可以查看文件夹、文件的大小’h’参数同理,s表示只显示每个参数的total(summary)

1
2
3
[root@localhost ~]# du -sh * 
4.0K Sync
1.1G install_ffmpeg

io相关

主要有如下几个命令iostat(sysstat)、vmstat、iotop

iostat

该工具由sysstat包提供,该包还提供其他几个文件

1
2
3
4
5
6
7
8
9
rpm -ql sysstat | grep bin
/usr/bin/cifsiostat
/usr/bin/iostat###
/usr/bin/mpstat
/usr/bin/nfsiostat-sysstat
/usr/bin/pidstat
/usr/bin/sadf
/usr/bin/sar
/usr/bin/tapestat
1
2
3
4
5
6
iostat -m
avg-cpu: %user %nice %system %iowait %steal %idle
0.29 0.00 0.89 0.09 0.00 98.73

Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
mmcblk0 0.47 0.02 0.01 55430 27588
1
2
3
4
vmstat -d#-d 表示disk
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
mmcblk0 742562 261227 113522566 52190000 839323 698101 56504789 85823990 0 7019

iotop用法和top类似不再赘述

CPU

top/htop

可以查看机器各个cpu核心的占用情况以及load情况

w

w命令会输出机器的load信息,load信息可以大致体现出机器的cpu负载情况为什么说大致呢,是因为linux的load计算方式比较特殊,他在计算阻塞任务数量的时候会连带将由于io阻塞sleep的进程计算进去

内存

vmstat

可以看到vmstat命令包含的东西几乎涵盖了所有的指标

1
2
3
4
vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 624192 46592 169280 371072 0 0 4 2 1 2 0 1 99 0 0

free

free命令可以比较详细的列出系统内存的分部

1
2
3
4
free -m
total used free shared buff/cache available
Mem: 923 349 45 9 527 549
Swap: 1999 609 1390

htop/top

同样的还有htop、top

网络

iftop

可以从机器层面查看与各个机器之间的流量情况

netstat/ss

用以查看机器当前端口资源的使用情况

lsof

不仅尽可以看网络资源使用情况还可以查看文件使用情况

进程

ps

这个肯定是最常用的了,各种组合,ps -ef、ps aux…

htop/top/pidstat

sysstat包里面的pidstat有点像一次输出的top和htop,当然了top也是可以输出一次的

-b : Batch mode operation Starts top in “Batch mode”, which could be useful for sending out- put from top to other programs or to a file. In this mode, top will not accept input and runs until the iterations limit youâve set with the â-nâ command-line option or until killed. -n : Number of iterations limit as: -n number Specifies the maximum number of iterations, or frames, top should produce before ending.

top -n 1 -b > output

strace

strace相对比较低层一些,可以看到进程系统调用的情况

总结

说了这么多,可以发现这些命令很多都有重合的部分这里要说的就是,各个命令最适应的场景都是不同的这个需要根据实际情况具体分析,比如有一次在自己笔记本上出现的一个很奇葩的问题就是cpu占用最少是30%,而且更奇怪的是不管是在pe系统里面,还是linux系统里面,还是说windows里面,cpu占用都是30%起底的,真是崩溃,本以为重装系统包治百病,没想到会这样,最后经过一番排查,最终发现是由于笔记本bios的问题,所以再怎么换系统都没用的,最后重新刷了bios才修复,遇到这种情况,以上工具通通都无效啊。。。

转载请注明来源链接 http://just4fun.im/2017/09/24/linux查看各种系统资源的方式/ 尊重知识,谢谢:)