데비안 11 - 서버 부하를 줄이는 방법은 무엇입니까?

데비안 11 - 서버 부하를 줄이는 방법은 무엇입니까?

저는 현재 로드 평균이 4인 Debian 11을 실행하고 있습니다. 이 부하를 줄이고 싶지만 적어도 분석 부분의 첫 번째 단계부터 시작해야 할지 잘 모르겠습니다...

MySQL이 포함된 Docker 서버입니다.

다음은 서버에 대한 개요를 제공하는 몇 가지 명령과 출력입니다.

프로세스:

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 시스템에만 적용되는 이전 권장 사항입니다.)

코어당(또는 CPU에 해당 기능이 있고 활성화된 1경우 하이퍼스레드당) CPU 사용량을 확인합니다 . top표시되는 줄 수는 %CpuN시스템에서 사용 가능한 CPU 코어/하이퍼스레드 수를 반영합니다.

RAM은 대부분 캐시로 사용되며 일부는 완전히 무료이므로 작업 부하에 충분한 RAM이 있는 것 같습니다.

이는 CPU 사용량을 지배하는 경향이 있는 범주를 mpstat나타냅니다 %iowait. 시간이 지남에 따라 더 큰 데이터 세트를 수집하면서 이 패턴이 계속되면 무언가를 업그레이드하려는 경우 시스템이 더 빠른 스토리지를 통해 이점을 얻을 수 있습니다.

perf top출력의 주요 항목은 __softirqentry_text_start서버 시스템의 인터럽트 처리와 관련되며 이는 일반적으로 스토리지 또는 네트워크 활동과 관련됩니다.

이는 iostat -m디스크 I/O 작업 부하가 분명히 주로 쓰기라는 것을 의미합니다. 따라서 시스템에는 일상적으로 필요한 모든 것이 RAM에 있을 것이며 쓰기 작업은 기본적으로 쓰기 캐시 플러시일 뿐입니다. 그러나 주석에서 @Sotto Voce의 조언을 따르고 // 도구가 시간이 vmstat지남 에 iostat따라 mpstat여러 출력 세트를 생성하도록 하는 것이 좋습니다 iostat -m 5 5.

관련 정보