Code前端首页关于Code前端联系我们

一分钟九个命令查看Linux服务器性能

terry 2年前 (2023-09-28) 阅读数 60 #未命名

1. uptime命令九条命令一分钟内检查Linux服务器性能

该命令可以用来快速查看机器的负载情况。在Linux系统上,该数据表示正在等待CPU资源并在不可中断IO进程中被阻塞的进程数量(进程状态为D)。这些数据可以让我们宏观地了解系统资源的使用情况。命令

的输出分别显示1分钟、5分钟和15分钟的平均负载情况。通过这三个数据,您可以了解服务器负载是变得紧张还是缓解。如果1分钟平均负载非常高,15分钟平均负载非常低,则说明服务器负载过重,需要进一步排查CPU资源消耗在哪里。另一方面,如果15分钟平均负载较高而1分钟平均负载较低,则可能已经过了CPU资源短缺时间。

从上面例子的输出中可以看到,最后一分钟的平均负载非常高,远远高于最后15分钟的负载,所以我们需要继续调查到底发生了哪些进程溪流。系统消耗大量资源。您可以使用 vmstat、mpstat 和下面介绍的其他命令进一步调查。

2. dmesg 命令

九条命令一分钟内检查Linux服务器性能

该命令输出系统日志的最后 10 行。在示例输出中,您可以看到内核的 oomkill 和 TCP 数据包丢失。这些日志可以帮助解决性能问题。不要忘记这一步。

3。 vmstat命令

九条命令一分钟内检查Linux服务器性能

vmstat(8),每一行都会输出一些基本的系统指标,这些指标可以让我们更详细地了解系统状态。下一个参数1表示每秒输出一次统计信息。标题指示每列的含义。这些专栏介绍了一些与性能调优相关的专栏:

  • r:等待 CPU 资源的进程数。这些数据比平均水平更好地反映了 CPU 负载。数据不包括等待 IO 的进程。如果这个值大于机器上的CPU核心数,那么机器的CPU资源就饱和了。
  • free:系统中的可用内存量(以千字节为单位)。如果剩余内存不够,也会造成系统性能问题。下面介绍的 free 命令可以提供更详细的系统内存使用情况视图。
  • si,so:交换区的写入和读取次数。如果这个数据不为0,说明系统已经在使用交换区,机器的物理内存不足。
  • us、sy、id、wa、ie:都显示CPU时间消耗。它们分别代表用户时间(user)、系统(kernel)时间(sys)、空闲时间(forces)以及IO等待时间(wait)和被盗时间(stolen,通常被其他虚拟机消耗)。

上面的CPU时间可以让我们快速了解CPU是否繁忙。一般来说,当用户时间和系统时间之和很大时,处理器正忙于执行指令。如果IO等待时间较长,系统瓶颈可能是磁盘IO。

从示例命令的输出可以看出,大量的CPU时间消耗在用户态,即用户应用程序消耗CPU时间。这可能不是性能问题,需要结合r阶来分析。

4。 mpstat命令

九条命令一分钟内检查Linux服务器性能

该命令可以显示各个CPU的占用情况。如果CPU占用率特别高,可能是单线程应用造成的。

5。 pidstat 命令

九条命令一分钟内检查Linux服务器性能

pidstat 命令输出进程的 CPU 使用情况。该命令持续发出,不会覆盖之前的数据,方便监控系统动态。从上面的输出可以看到,两个JAVA进程几乎占据了1600%的CPU时间,消耗了大约16个CPU核心的计算资源。

6。 iostat命令

九条命令一分钟内检查Linux服务器性能
  • r/s、w/s、rkB/s、wkB/s:分别表示每秒读写次数和每秒读写数据量(千字节)。过多的读写量可能会导致性能问题。
  • wait:IO 操作的平均等待时间(以毫秒为单位)。这是应用程序与磁盘交互所花费的时间,包括 IO 等待时间和实际操作时间。如果该值太大,则硬件设备可能存在瓶颈或故障。
  • avgqu-sz:向设备发出的平均请求数。如果该值大于1,则硬件设备可能饱和(部分前端硬件设备支持并行写入)。
  • %util:设备使用情况。该值指示设备的繁忙程度。经验值是,如果超过60,就会影响IO性能(可以参考IO操作的平均等待时间)。如果达到100%,则说明硬件设备已经饱和。

逻辑设备数据显示时,设备使用率并不代表实际后台硬件设备饱和。值得注意的是,即使 IO 性能不理想,也并不一定意味着应用程序性能不佳。预读和写入缓存等策略可用于提高应用程序性能。

7。 free命令

九条命令一分钟内检查Linux服务器性能

free命令可以查看系统内存使用情况。 -m参数表示以兆字节为单位显示。最后两列分别表示用于 IO 缓存和文件系统页缓存的内存量。需要注意的是第二行-/+ buffers/cache,看来cache占用了不少内存空间。

这是Linux系统内存使用策略。尽可能多地利用内存。如果应用程序需要内存,则立即回收该部分内存并将其分配给应用程序。因此,这部分内存一般被认为是可用内存。

当可用内存非常低时,系统可能会使用交换区(如果配置),这会增加 IO 开销(可以使用 iostat 命令消除)并降低系统性能。

8。 sar命令

九条命令一分钟内检查Linux服务器性能

sar命令可以在这里检查网络设备的吞吐量。在排除性能问题时,您可以评估网络设备的容量是否饱和。正如您在示例输出中看到的,eth0 NIC 设备的吞吐量约为 22 Mbytes/s,即 176 Mbit/秒,低于 1Gbit/秒的硬件上限。这里使用九条命令一分钟内检查Linux服务器性能

sar命令查看TCP连接的状态,包括:

  • active/s:每秒本地发起的TCP连接数,即通过connect调用建立的TCP连接数;
  • passive/s:每秒远程发起的TCP连接数,即通过accept调用建立的TCP连接数;
  • retransmission/s:每秒TCP重传次数;

TCP连接数可以用来判断性能问题是否是由连接过多引起的。此外,您还可以指定它是主动发起的连接还是被动接受的连接。 TCP重传可能是网络环境不好或者服务器压力造成的

9。 top 命令

九条命令一分钟内检查Linux服务器性能

top 命令包含前面几条命令的检查内容。例如系统负载(uptime)、系统内存使用情况(空闲)、系统CPU使用情况(vmstat)等。因此,通过该命令可以比较全面地查看系统负载的来源。同时top命令支持排序,可以按不同列排序,方便查找占用内存最多的进程、使用CPU最多的进程等。

但是相比之前的一些命令,top命令的输出是当前值。如果你不继续观察,你可能会错过一些线索。这时,你可能需要停止更新top命令来保存并比较数据。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门