匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

从理论到实践,教你如何使用Linux命令进行系统监控!

从理论到实践,教你如何使用Linux命令进行系统监控!

在运维中,系统监控是非常重要的一项任务,可以帮助我们及时发现问题并解决。在Linux系统中,有很多命令可以帮助我们对系统进行监控,下面就让我们来一一了解。

1. top

top命令可以显示系统的整体运行情况,包括CPU、内存、进程等。在top命令界面中,可以看到系统总体的负载情况以及各个进程的资源占用情况。

下面是top命令的输出示例:

```
top - 18:51:14 up  1:25,  1 user,  load average: 2.37, 1.80, 1.50
Tasks: 240 total,   1 running, 239 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.2 us,  1.7 sy,  0.0 ni, 92.9 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem : 16385412 total,  6899516 free,  5371332 used,  4112564 buff/cache
KiB Swap:  1048572 total,  1048572 free,        0 used. 10520464 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
  907 mysql     20   0 3597752 302316  12292 S 21.9  1.8  22:31.55 mysqld
 2679 root      20   0  765368  60468  36896 S  1.6  0.4   0:02.30 snapd
  569 root      20   0       0      0      0 I  1.3  0.0   0:05.66 kworker/15:2-events
 1685 root      20   0  459924  18596  15516 S  0.6  0.1   0:08.90 systemd-journal
  665 root      20   0  395156  27972  20548 S  0.6  0.2   0:02.49 NetworkManager
  577 root     -51   0       0      0      0 S  0.3  0.0   0:02.92 irq/130-nvidia
  774 root      20   0   52516   6136   4920 S  0.3  0.0   0:05.77 upowerd
  794 root      20   0  609164  23780  19224 S  0.3  0.1   0:05.80 packagekitd
  892 root      20   0  316224  10552   8368 S  0.3  0.1   0:02.64 systemd-logind
```

2. vmstat

vmstat命令可以实时地监控CPU、内存、磁盘等系统资源的使用情况,可以用来发现系统性能问题。

下面是vmstat命令的输出示例:

```
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  0  20664 343188  23916 2365104    0    0     0     0  674 1080  9  2 89  0  0
```

其中,r表示运行队列中的进程数,b表示处于不可中断状态的进程数,swpd表示交换空间的使用情况,free表示空闲内存的大小,si和so表示交换空间的输入输出情况,bi和bo表示块设备的输入输出情况,us、sy、id、wa、st表示CPU占用率。

3. sar

sar命令可以记录系统的性能数据,并生成报告,可以用来查看系统的历史性能状况。可以使用下面的命令安装sar:

```
sudo apt-get install sysstat
```

安装完成后,可以使用下面的命令来查看系统的CPU使用情况:

```
sar -u
```

下面是sar命令的输出示例:

```
Linux 5.4.0-73-generic (ubuntu)  06/04/2021  _x86_64_    (1 CPU)

12:00:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:01 AM     all      0.44      0.00      0.12      0.03      0.00     99.41
12:20:01 AM     all      0.11      0.02      0.08      0.02      0.00     99.77
12:30:01 AM     all      0.47      0.00      0.12      0.03      0.00     99.38
12:40:01 AM     all      0.18      0.00      0.09      0.02      0.00     99.71
12:50:01 AM     all      0.49      0.00      0.13      0.03      0.00     99.36
01:00:01 AM     all      0.09      0.00      0.06      0.02      0.00     99.83
01:10:01 AM     all      0.35      0.00      0.10      0.02      0.00     99.52
```

4. iostat

iostat命令可以监控磁盘活动情况,包括磁盘的读写速度、I/O请求等。

下面是iostat命令的输出示例:

```
Linux 5.4.0-73-generic (ubuntu)  06/04/2021  _x86_64_    (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.77    0.00    0.22    0.05    0.00   99.97

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
loop0              0.27         7.21         0.00     208800          0
sda                5.16        92.60       200.33    2682194    5800849
```

其中,tps表示每秒的I/O请求数,kB_read/s表示每秒读取的数据量,kB_wrtn/s表示每秒写入的数据量,kB_read表示总读取数据量,kB_wrtn表示总写入数据量。

5. ps

ps命令可以列出系统中当前的进程,可以用来查看进程的状态、占用的资源等信息。

下面是ps命令的输出示例:

```
  PID TTY          TIME CMD
  904 ?        00:00:00 systemd
  913 ?        00:00:00 (sd-pam)
  930 ?        00:00:00 systemd-journal
  941 ?        00:00:00 rngd
  942 ?        00:00:00 systemd-udevd
  973 ?        00:00:00 systemd-journald
  980 ?        00:00:00 systemd-logind
 1002 ?        00:00:00 cron
 1003 ?        00:00:00 atd
 1017 tty1     00:00:00 login
 1018 tty1     00:00:00 -bash
 1051 tty1     00:00:00 ps
```

通过以上五个命令,我们可以实时监控系统的性能状况,并发现问题。这些命令也可以用来作为监控系统的基础,配合相关监控工具来实现自动化监控和告警。