저는 현재 로드 평균이 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
.