1.查看磁盘

Linux磁盘管理常用三个命令为df、du和fdisk。

df:列出文件系统的整体磁盘使用量
du:检查磁盘空间使用量
fdisk:用于磁盘分区
df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

df [-ahikHTm] [目录或文件名]

选项与参数:

-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示

Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍Linux du命令。

du [-ahskm] 文件或目录名称

选项与参数:

-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;

参考:https://www.runoob.com/linux/linux-filesystem.html

2.查看内存大小

free [-m|g]#按MB,GB显示内存

free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。
直接输入free命令,显示如下
在这里插入图片描述
free命令默认是显示单位kb,可以采用free -m和free -g命令查看,分别表示MB和GB
另外,free -h会自动选择以适合理解的容量单位显示
在这里插入图片描述
Mem:表示物理内存统计,如果机器剩余内存非常小,一般小于总内存的20%,则判断为系统物理内存不够
Swap: 表示硬盘上交换分区的使用情况,如剩余空间较小,需要留意当前系统内存使用情况及负载,当Swap的used值大于0时,则表示操作系统物理内存不够,已经开始使用硬盘内存了。
第1行数据11G表示物理内存总量;6.5G表示总计分配给缓存(包含buffers与cache)使用的数量,但其中可能部分缓存并未实际使用;
1.3G表示未被分配的内存;shared表示共享内存;4.0G表示系统分配但未被使用的buffers数量;4.7G表示系统分配但未被使用的available数量。

3.查看每个进程的情况

cat /proc/5346/status PID
ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less

执行以上命令可查看各个程序进程内存使用的内存情况,如下图所示,第一列为进程占用的内存百分比,可以看到哪些应用程序占的内存比较多,“COMMAND”栏则显示了线程名称,用于排查问题:
在这里插入图片描述

4.查看负载

Linux的负载高,主要是由于CPU使用、内存使用、IO消耗三部分构成。任意一项使用过多,都将导致服务器负载的急剧攀升。

查看服务器负载有多种命令,主要有 uptime ; w ; top ; iostat ,下面将一一展示。

$ uptime
 12:20:30 up 44 days, 21:46,  2 users,  load average: 8.99, 7.55, 5.40
$ w
 12:22:02 up 44 days, 21:48,  2 users,  load average: 3.96, 6.28, 5.16

load average分别对应于过去1分钟,5分钟,15分钟的负载平均值。

这两个命令只是单纯的反映出负载,linux提供了更为强大,也更为实用的top命令来查看服务器负载。

5.查看系统整体状态

top命令能够清晰的展现出系统的状态,而且它是实时的监控, 包括进程、CPU负载、内存使用等等,按q退出。

top

在这里插入图片描述
第一行:
12:23:58 当前系统时间
44 days, 21:50系统已经运行了44天(在这期间没有重启过)
2 users 当前有2个用户登录系统

load average: 2.76, 5.10, 4.86

load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

第二行:
Tasks 任务(进程),系统现在共有140个进程,其中处于运行中的有3个,136个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有1个。
Tasks行展示了目前的进程总数及所处状态,要注意zombie,表示僵尸进程,不为0则表示有进程出现问题。

第三行:cpu状态

  • us 用户空间占用CPU的百分比。
  • sy 内核空间占用CPU的百分比。
  • ni 改变过优先级的进程占用CPU的百分比
  • id 空闲CPU百分比
  • wa IO等待占用CPU的百分比
  • hi 硬中断(Hardware IRQ)占用CPU的百分比
  • si 软中断(Software Interrupts)占用CPU的百分比

第四行:内存状态

  • total 物理内存总量(8GB)
  • used 使用中的内存总量(7.7GB)
  • free 空闲内存总量(530M)
  • buffers 缓存的内存量 (79M)

第五行:swap交换分区

  • total 交换区总量(2GB)
  • used 使用的交换区总量(2.5M)
  • free 空闲交换区总量(2GB)
  • cached 缓冲的交换区总量(4GB)

如果Swap的used很高,则表示系统内存不足。

在top命令下,按1,则可以展示出服务器有多少CPU,及每个CPU的使用情况
在这里插入图片描述
一般而言,服务器的合理负载是CPU核数*2。也就是说对于8核的CPU,负载在16以内表明机器运行很稳定流畅。如果负载超过16了,就说明服务器的运行有一定的压力了。

在top命令下,按shift + “c”,则将进程按照CPU使用率从大到小排序,按shift+“p”,则将进程按照内存使用率从大到小排序,很容易能够定位出哪些服务占用了较高的CPU和内存。

6.查看io的开销

仅仅有top命令是不够的,因为它仅能展示CPU和内存的使用情况,对于负载升高的另一重要原因——IO没有清晰明确的展示。linux提供了iostat命令,可以了解io的开销。
输入iostat -x 1 10命令,表示开始监控输入输出状态,-x表示显示所有参数信息,1表示每隔1秒监控一次,10表示共监控10次。
在这里插入图片描述
其中rsec/s表示读入,wsec/s表示每秒写入,这两个参数某一个特别高的时候就表示磁盘IO有很大压力,util表示IO使用率,如果接近100%,说明IO满负荷运转。

7.查看文件夹和文件大小

du -h --max-depth=0 dm #查看dm目录大小

du -h --max-depth=1 dm #查看dm目录大小,以及dm各文件文件夹的大小

du -h --max-depth=0 #查看当前文件夹大小
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐