返回

Linux服务器资源监控:深入了解内存、磁盘、CPU、网络和端口

见解分享

监控 Linux 服务器:深入了解关键资源使用情况

作为 Linux 系统管理员,密切关注服务器资源的使用情况至关重要。深入了解内存、磁盘、CPU、网络和端口占用情况,可以帮助你获得宝贵的见解,做出明智的决策,提高系统效率和稳定性。本文将深入探讨这些关键指标,并提供使用命令行工具进行监控的逐步指南。

内存监控

内存是存储系统运行时所需数据的关键资源。使用 free 命令可以查看内存使用情况。它显示有关总内存、已用内存、可用内存、已缓存内存和交换空间的详细信息。

# free -h
              总内存: 15.6 GiB
             已用内存: 11.3 GiB (72%)
           可用内存: 3.3 GiB (21%)
           已缓存内存: 777 MiB (5%)
           交换空间: 2.0 GiB
           已用交换空间: 0B (0%)
       可用交换空间: 2.0 GiB (100%)

例如,在这个输出中,72% 的总内存已被使用。这表明系统可能需要额外的内存或优化内存使用。

磁盘监控

磁盘空间是存储数据和应用程序的必要资源。使用 df 命令可以监控磁盘空间使用情况。它显示有关已挂载文件系统的总大小、已用空间、可用空间和使用百分比的信息。

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        29G  10G  18G  36% /
devtmpfs         16G     0  16G   0% /dev
tmpfs            16G     0  16G   0% /dev/shm
/dev/vda2        29G   0  29G   0% /data

在这个输出中,根文件系统 / 使用了 36%。这是需要密切关注的指标,以避免磁盘空间不足。

CPU 监控

CPU 是执行指令和处理任务的服务器大脑。使用 top 命令可以查看 CPU 使用情况。它提供有关每个 CPU 内核的当前占用率、运行时间、平均负载和进程列表的信息。

# top
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
   1 root      20   0 2163244 101612  8596 R  31.2   0.7  11:47.96 systemd
   2 root      20   0       0      0      0 S   2.2   0.0   0:00.02 ksoftirqd/0
   3 root      20   0       0      0      0 S   2.2   0.0   0:00.03 ksoftirqd/1
   4 root      RT   0       0      0      0 S   2.2   0.0   0:00.04 kworker/u8:2

在这个输出中,第一个进程 systemd 正在使用 31.2% 的 CPU。这个信息可以帮助识别高 CPU 使用率进程,并采取相应的措施来优化它们。

网络监控

网络是服务器与外部世界通信的关键。使用 netstat 命令可以查看网络接口的统计信息,包括接收和发送的数据包数、错误和丢弃情况。

# netstat -i
Interface           Recv-Q Send-Q  Local Address           Foreign Address         State      Kernel Driver
eth0                0      0 192.168.1.10            0.0.0.0                UNKNWN    eth0
docker0             0      0 172.17.0.1              0.0.0.0                UNKNWN    docker0
lo                  0      0 127.0.0.1              127.0.0.1              UNKNWN    lo
wlp2s0              0      0 192.168.1.100           0.0.0.0                UNKNWN    wlx853ca9382144

此输出显示了各个网络接口的活动状态。

端口监控

端口是允许数据进出服务器的网关。使用 netstat 命令的 -ap 选项可以查看端口占用情况。

# netstat -ap
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2296/sshd
tcp        0      0 :::22                   :::*                    LISTEN      2296/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1164/master
tcp        0      0 :::80                   :::*                    LISTEN      14632/httpd
tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN      1566/python

在这个输出中,SSH(端口 22)和 HTTP(端口 80)正在监听传入连接。

结论

密切监控 Linux 服务器的资源使用情况是确保系统稳定性和最佳性能的关键。通过使用本文介绍的命令,你可以深入了解内存、磁盘、CPU、网络和端口占用情况。这些指标可以提供宝贵的见解,帮助你做出明智的决策,例如添加更多内存、优化磁盘空间或解决性能瓶颈。

常见问题解答

1. 如何查看服务器的整体健康状况?

你可以使用 htop 命令,它提供有关系统负载、内存、交换、CPU 使用率和进程的实时信息。

2. 什么是交换空间,它是如何使用的?

交换空间是当物理内存不足时使用的磁盘空间。当内存使用率过高时,系统会将不活跃的内存页面交换到交换空间中,以腾出更多可用内存。

3. 如何识别高 CPU 使用率进程?

使用 top 命令,排序 CPU 使用率列,以查看正在使用最多 CPU 的进程。

4. 如何监控网络流量?

使用 vnstat 命令,它提供有关网络接口进出流量的详细统计信息。

5. 如何检查端口是否被使用?

使用 netstat 命令的 -ap 选项,查看正在监听的端口及其进程。