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

一分钟查看Linux服务器性能的9条命令

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

1.高时间命令

9条命令检查Linux服务器性能 只需一分钟内

该命令可以快速查看机器负载情况。在Linux系统中,这些数据代表了等待CPU资源并被连续IO进程阻塞的进程数量(D),这个数据可以让我们宏观地了解系统资源的使用情况。输出命令

分别表示1分钟、5分钟、15分钟的平均负载。通过这三个数据,您可以了解服务器负载是增加还是减少。如果1分钟平均值非常高,而15分钟平均值非常低,则意味着服务器正在做大量工作,您需要进一步调查CPU消耗在哪里。另一方面,如果平均值为 15 分钟高且平均值为 1 分钟低,则可能是 CPU 资源紧张的时间。

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

2. dmesg 命令

9条命令检查Linux服务器性能 只需一分钟内

该命令将输出系统日志的最后 10 行。在示例的结果中,您可以看到内核 oom 执行和丢失的 TCP 数据包。这些日志有助于解决操作问题。不要跳过这一步。

3。 vmstat命令

9条命令检查Linux服务器性能 只需一分钟内

vmstat(8)命令,每一行都会输出一些基本的系统指标,这些指标可以让我们更好的了解系统的状态。后面的参数1表示每秒输出一次统计信息。标题指示每列的含义。这些列包括一些与性能设置相关的列:

  • r:等待 CPU 资源的进程数。该数据代表CPU负载优于平均负载。数据库不包含等待 IO 的进程。如果该值大于机器的CPU核数,则机器的CPU资源已满。
  • free:可用系统内存量(以千字节为单位)。如果剩余内存不够,也会导致程序运行出现问题。下面包含的免费命令可以更深入地了解系统内存使用情况。
  • si,so:交换区的写入和读取次数。如果这个数据不为0,说明系统已经在使用交换区(swap),机器的物理内存不够了。
  • us,sy,id,wa,st:这些都代表CPU时间消耗。它们分别代表用户时间(user)、系统(kernel)时间(sys)、空闲时间(不工作)以及IO等待时间(waiting)和被盗时间(steal,通常被其他虚拟机花费)。

上面的CPU时间可以让我们快速了解CPU是否繁忙。一般来说,如果用户时间和系统时间之和很大,CPU 将难以执行指令。如果IO等待时间较长,则系统输入可能是IO磁盘。

从示例命令的输出中可以看到,用户消耗了大量的CPU时间,即用户应用程序消耗了CPU时间。这不一定是性能问题,需要结合队列来分析。

4。 mpstat 命令

9条命令检查Linux服务器性能 只需一分钟内

该命令可以显示每个CPU 的CPU 利用率。如果CPU占用率很高,可能是单个应用程序导致的。

5。 pidstat 命令

9条命令检查Linux服务器性能 只需一分钟内

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

6。 iostat命令

9条命令检查Linux服务器性能 只需一分钟内

  • r/s、w/s、rkB/s、wkB/s:分别显示每秒读写次数以及每秒读写数据量(千字节)。过多的读写会导致性能问题。
  • wait:IO操作的平均等待时间,单位毫秒。这是应用程序与磁盘通信时所花费的时间,包括 IO 等待和处理时间。如果该值太大,设备可能会遇到瓶颈或故障。
  • avgqu-sz:向设备发出的平均请求数。如果该值大于1,设备可能会过载(部分前端设备支持并行写入)。
  • %util:实用程序。该值表示设备的难度。经验值是,如果超过60,可能会影响IO性能(可以标明IO操作的平均等待时间)。如果达到100%,则说明硬件已满。

如果显示逻辑设备数据,该设备的使用并不意味着实际设备完整。值得注意的是,即使IO性能不完美,也并不一定意味着应用程序的性能会很差。预读和写入缓存等策略可用于提高应用程序性能。

7。 free命令

9条命令检查Linux服务器性能 只需一分钟内

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

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

如果内存很小,系统可能会使用交换区(如果配置),这会增加IO开销(通过iostat命令实现)并降低系统性能。

8。 sar 命令

9条命令检查Linux服务器性能 只需一分钟内" data-type="png" data-src="https://user-gold-cdn.xitu.io/2018/9/4/165a39057423f30d?imageView2/0/w /1280/h/命令 960/format/webp/ignore-error/1" height="20" data-width="640" data-height="203" />

sar 可以在这里查看网络设备的速率 吞吐量。排查问题时,可以判断网络设备是否过载,例如eth0网卡设备的吞吐量约为22Mbytes/s,即176Mbits/秒,未达到设备的上限。为1Gbit/s,这里使用命令

9条命令检查Linux服务器性能 只需一分钟内

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

  • active/s:每秒本地发起的TCP连接数,每一次连接调用创建的TCP连接;
  • passive/s:每秒远程发起的TCP连接数-秒,即确认调用创建的TCP连接;
  • retrans/s:每秒TCP重传次数;

TCP连接数可以用来判断性能问题是否建立的连接过多,可以进一步判断是已经开始的连接还是已接受的连接。 TCP重试可能是由于网络环境或服务器过载,导致丢包。

9。 top 命令

9条命令检查Linux服务器性能 只需一分钟内

top 命令包含了前面几个命令的检查内容。例如系统负载(正常运行时间)、系统内存使用情况(空闲)、系统CPU使用情况(vmstat)等。因此,通过该命令,可以全面检查系统负载的来源。同时top命令支持排序,可以分列排列,方便查看内存最多的进程、CPU占用率最高的进程等。

但是,更高阶的情况就不一样了。从之前的订单。 ,结果是一个立即值。如果您不经常寻找,您可能会错过一些迹象。此时,您可能需要暂停top命令更新来记录和比较数据。

版权声明

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

热门