解决 Linux 性能问题的 3 个基本工具

2023年 8月 27日 24.1k 0

解决 Linux 性能问题的 3 个基本工具-1

性能是许多系统管理员所害怕的事情之一。有时,当事情进展顺利时,你甚至不会考虑它。然后,突然您接到最终用户(或更糟糕的是,许多最终用户)打来的电话,称您负责的应用程序“感觉很慢”。或者也许它完全不可用。现在您必须进入故障排除模式。

不过,你从哪里开始呢?在本文中,我将介绍一些基础知识,但首先,我将退后一步。在尝试识别问题之前,了解有关系统的一些基线信息非常重要。也许您的系统正在做一些不应该做的事情,这导致了高负载。或者也许它正在做它一直以来所做的事情,只是承受了一些额外的负载。通过保留良好的文档和历史性能数据,在问题发生之前开始进行性能故障排除。

从顶部开始

第一个首选的性能故障排除工具是top. 该top实用程序为您提供了一个出色的、不断更新的流程和性能仪表板。正在使用多少内存?平均负载是多少?哪些进程使用的资源最多?所有这一切都已准备就绪top

top - 10:55:50 up 6 min,  1 user,  load average: 0.03, 0.18, 0.10
Tasks: 188 total,   1 running, 187 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.6 us,  0.0 sy,  0.0 ni, 99.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   3654.6 total,   1477.3 free,    700.3 used,   1752.4 buff/cache
MiB Swap:   3280.0 total,   3280.0 free,      0.0 used.   2954.3 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp
      5 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 netns
      6 root      20   0       0      0      0 I   0.0   0.0   0:00.01 kworker/0:0-xfs-c+
      7 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-even+
      8 root      20   0       0      0      0 I   0.0   0.0   0:00.16 kworker/u8:0-flus+
      9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq
     10 root      20   0       0      0      0 I   0.0   0.0   0:00.36 kworker/u8:1-even+
     11 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_tasks_kthre
     12 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_tasks_rude_
     13 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_tasks_trace
     14 root      20   0       0      0      0 S   0.0   0.0   0:00.03 ksoftirqd/0
     15 root      20   0       0      0      0 I   0.0   0.0   0:00.41 rcu_preempt
     16 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migration/0
     17 root      20   0       0      0      0 I   0.0   0.0   0:00.00 kworker/0:1-xfs-c+
     18 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/0
     19 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/1

此外,您还可以过滤top、搜索进程,甚至查看系统中每个核心的利用率。所以,你的第一站应该是top

你有空吗?

free工具显示系统当前的内存消耗情况,这是您发现系统消耗情况的第二站。

               total        used        free      shared  buff/cache   available
Mem:         3742352      717408     1512544        5312     1794520     3024944
Swap:        3358716           0     3358716

请记住,Linux 内核将获取可用内存并将其分配给磁盘缓冲区和缓存。Linux 将在系统需要时释放这些资源,因此,如果free提示您没有可用内存,请务必在确定内存不足之前检查缓冲区/缓存列。

检查虚拟机状态

使用vmstat是查看内存消耗的另一种好方法。

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 1511816   9684 1784948    0    0   233   676  256  262  3  2 95 0  0

它会分解缓冲区和缓存,您还将获得有关交换利用率的信息。交换通常表明您的系统正在耗尽其高性能内存,并且必须诉诸交换到磁盘。此过程可能会对某些应用程序产生破坏性影响。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论