Debian 11 - 如何降低服务器负载?

Debian 11 - 如何降低服务器负载?

我目前正在运行平均负载为 4 的 Debian 11。我想降低此负载 - 但我真的不知道从哪里开始,至少是分析部分的第一步......

它是一个 Docker 服务器,带有 MySQL,

下面是一些命令及其输出,给出了服务器的一些概述。

流程:

administrator@srv-docker:~$ top -b -n 1 | head -n 20
top - 12:56:41 up 12 days,  4:28,  1 user,  load average: 4,19, 4,16, 4,14
Tasks: 242 total,   1 running, 241 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1,4 us,  2,1 sy,  0,0 ni, 81,6 id, 14,9 wa,  0,0 hi,  0,0 si,  0,0 st
MiB Mem :   7955,3 total,    131,5 free,   1877,4 used,   5946,4 buff/cache
MiB Swap:      0,0 total,      0,0 free,      0,0 used.   5733,5 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 775840 systemd+  20   0 4996956 973276  35944 S  11,8  11,9   1019:50 mysqld
1856787 adminis+  20   0   10480   3956   3372 R  11,8   0,0   0:00.03 top
      1 root      20   0  164224  10424   7656 S   5,9   0,1   0:11.93 systemd
1184306 472       20   0 1974008 119776  60416 S   5,9   1,5  10:40.71 grafana-server
      2 root      20   0       0      0      0 S   0,0   0,0   0:00.67 kthreadd
      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
      6 root       0 -20       0      0      0 I   0,0   0,0   0:00.00 kworker/0:0H-events_highpri
      8 root       0 -20       0      0      0 I   0,0   0,0   0:00.00 mm_percpu_wq
      9 root      20   0       0      0      0 S   0,0   0,0   0:00.00 rcu_tasks_rude_
     10 root      20   0       0      0      0 S   0,0   0,0   0:00.00 rcu_tasks_trace
     11 root      20   0       0      0      0 S   0,0   0,0   3:07.86 ksoftirqd/0
     12 root      20   0       0      0      0 I   0,0   0,0  21:54.79 rcu_sched

记忆:

administrator@srv-docker:~$ free -mh
               total        used        free      shared  buff/cache   available
Mem:           7,8Gi       1,8Gi       125Mi        49Mi       5,8Gi       5,6Gi
Swap:             0B          0B          0B

IO统计:

root@srv-docker:~# iostat -m
Linux 5.10.0-16-amd64 (srv-docker)      23/07/2022      _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,92    0,00    1,12    9,31    0,00   88,65

Device             tps    MB_read/s    MB_wrtn/s    MB_dscd/s    MB_read    MB_wrtn    MB_dscd
dm-0              0,03         0,00         0,00         0,00        757         54       2965
dm-1              0,22         0,00         0,00         0,00        351       1863        758
dm-2              0,00         0,00         0,00         0,00          2          0          0
dm-3              0,00         0,00         0,00         0,00          3          4          0
dm-4              0,01         0,00         0,00         0,00         15        136       3578
dm-5            204,93         0,00         1,90         0,01       3929    2009381      12419
sda             155,93         0,00         1,82         0,02       5071    1919118      20230
sr0               0,00         0,00         0,00         0,00          0          0          0

虚拟机统计:

root@srv-docker:~# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 140500 216556 5868484    0    0     1   233    5    3  1  1 89  9  0

性能顶部:

表现最好的结果。

国会议员统计:

root@srv-docker:~# mpstat -P ALL
Linux 5.10.0-16-amd64 (srv-docker)      23/07/2022      _x86_64_        (8 CPU)

15:04:53     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
15:04:53     all    0,92    0,00    0,67    9,31    0,00    0,46    0,00    0,00    0,00   88,65
15:04:53       0    1,14    0,00    0,80    7,02    0,00    1,05    0,00    0,00    0,00   90,00
15:04:53       1    0,67    0,00    0,64   27,24    0,00    0,46    0,00    0,00    0,00   70,99
15:04:53       2    1,13    0,00    0,86   12,72    0,00    0,50    0,00    0,00    0,00   84,79
15:04:53       3    0,70    0,00    0,47    3,16    0,00    0,29    0,00    0,00    0,00   95,38
15:04:53       4    1,11    0,00    0,84   10,40    0,00    0,41    0,00    0,00    0,00   87,24
15:04:53       5    0,74    0,00    0,46    2,82    0,00    0,27    0,00    0,00    0,00   95,71
15:04:53       6    1,14    0,00    0,82    8,55    0,00    0,39    0,00    0,00    0,00   89,10
15:04:53       7    0,71    0,00    0,45    2,66    0,00    0,28    0,00    0,00    0,00   95,90

请问有人可以帮助我吗?预先感谢...任何光线都值得赞赏。

答案1

%Cpu(s):  1,4 us,  2,1 sy,  0,0 ni, 81,6 id, 14,9 wa,  0,0 hi,  0,0 si,  0,0 st

请注意,该%Cpu(s)行显示您的系统为 81.6%闲置的

你有多少个CPU核心?

如果 CPU 核心数量高于负载平均值的整数部分,您无需担心:您的系统甚至没有那么努力地工作。 (如果您认为负载 >1 是一个值得关注的问题,那么这是仅适用于单核单 CPU 系统的旧建议。)

1查看topCPU 使用率的每个核心分类(或每个超线程,如果您的 CPU 具有该功能并且已启用)。您将看到的行数%CpuN将反映系统上可用的 CPU 核心/超线程的数量。

您的 RAM 主要用作缓存,甚至其中一些完全免费,因此显然您有足够的 RAM 来满足您的工作负载。

mpstat表明%iowait往往主导 CPU 使用类别:如果当您在一段时间内收集更大的数据集时这种模式继续存在,那么如果您绝对想要升级某些东西,则该系统可能会从更快的存储中受益最多。

perf top输出中的主导项是__softirqentry_text_start与中断处理相关的;在服务器系统中,这通常与存储或网络活动相关。

iostat -m表明您的磁盘 I/O 工作负载显然主要是写入,因此您的系统可能在 RAM 中拥有日常所需的所有内容,而写入操作本质上只是写入缓存刷新。但我建议遵循@Sotto Voce 在评论中的建议,并让vmstat//工具随着时间的iostat推移mpstat生成多组输出,例如使用iostat -m 5 5.

相关内容