명령줄에서 Lightsail 리소스 사용량을 모니터링하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 10월 29일

Amazon Lightsail에서 호스팅되는 내 웹 사이트 또는 애플리케이션이 중단되었거나 실행 속도가 매우 느립니다. 이러한 문제를 해결할 수 있도록 명령줄에서 Lightsail 리소스 사용량을 모니터링하려면 어떻게 해야 합니까?

간략한 설명

높은 리소스 사용률을 비롯하여 Lightsail 인스턴스에서 실행되는 서비스에 영향을 주는 요소는 여러 가지입니다. 일반적인 도구를 사용하여 명령줄에서 실시간으로 Lightsail 인스턴스의 CPU, 메모리, 디스크 I/O 및 네트워크 사용량과 같은 리소스를 모니터링할 수 있습니다.

명령줄에서 Lightsail 인스턴스 리소스 사용량을 분석 및 모니터링하여 실시간 시스템 인사이트를 얻을 수 있습니다. 또한 CPU, 메모리, 디스크 I/O 또는 네트워크를 가장 많이 사용하는 프로세스를 세부적으로 볼 수 있습니다.

명령줄에서 Lightsail 인스턴스의 리소스를 분석하고 모니터링하는 데 사용할 수 있는 리소스는 다음과 같습니다.

  • atop 도구
  • htop 도구
  • iostat, vmstat 및 mpstat 명령

해결 방법

atop 도구

atop 도구는 지정된 간격 동안 프로세스가 완료된 경우에도 모든 프로세스의 활동을 보고합니다. 이 도구는 모든 관련 시스템 정보를 지속적으로 기록합니다. 이러한 지속적인 기록으로 인해 문제가 다시 발생하면 분석할 기록 데이터가 있습니다. atop 도구는 대부분의 Linux 배포판의 공식 리포지토리에 포함되어 있습니다. 다음 명령을 실행하여 atop 도구를 설치합니다.

Red Hat 기반 시스템

$ sudo yum install atop

Debian 기반 시스템

$ sudo apt install atop

atop 도구는 기본적으로 600초 간격으로 모든 활동을 기록합니다. 활동이 60초 간격으로 기록되도록 atop 도구의 구성을 변경하려면 다음 명령을 실행합니다.

Red Hat 기반 시스템

$sudo sed 's/600/60/' /etc/atop/atop.daily -i

Debian 기반 시스템

$ sudo sed 's/600/60/' /etc/default/atop -i

위 명령을 실행한 후 atop 은 60초 내의 모든 활동을 기록합니다. 데이터는 /var/log/atop에 있는 로그 파일에 저장됩니다. 이러한 파일의 이름은 ‘atop_ccyymmdd’ 형식으로 지정됩니다. 예를 들어, ‘atop_20210902’는 2021년 9월 2일의 기록입니다.

로그 파일에 액세스하려면 atop -r atologfilepath 명령을 실행합니다. 명령 및 로그 파일은 다음 예에 나와 있습니다.

atop -r /var/log/atop/atop_20210902 

ATOP - ip-172-20-139-91                2021/09/02  17:03:44                ----------------                 3h33m7s elapsed
PRC |  sys    6.51s  |  user   7.85s  |  #proc    103  |  #tslpi    81 |  #tslpu     0  |  #zombie    0  |  #exit      0  |
CPU |  sys     0%  |  user      3%  |  irq       0%  |  idle    197% |  wait      0%  |  ipc notavail  |  curscal   ?%  |
cpu |  sys     0%  |  user      1%  |  irq       0%  |  idle     98% |  cpu000 w  0%  |  ipc notavail  |  curscal   ?%  |
cpu |  sys     0%  |  user      1%  |  irq       0%  |  idle     98% |  cpu001 w  0%  |  ipc notavail  |  curscal   ?%  |

앞의 출력 예에서 기록된 첫 번째 스냅샷은 2021년 9월 2일 17시 03분 44초에 기록된 것입니다. 다음 스냅샷으로 이동하려면 키보드의 ‘t’ 키를 누릅니다. 이전 스냅샷으로 돌아가려면 ‘T’(대문자 ‘t’) 키를 누릅니다.

다음은 위에 시작할 수 있는 일반적으로 사용되는 옵션입니다.

메모리별 정렬

$ atop -m

디스크 세부 정보별 정렬

$ atop -d

네트워크 세부 정보별 정렬

$ atop -n

htop 도구

htop 도구는 Linux용 대화식 실시간 프로세스 모니터링 애플리케이션으로 CPU 또는 코어별 사용량을 보여줍니다. 또한 이 도구는 메모리 및 스왑 사용량에 대한 의미 있는 텍스트 그래프를 제공합니다.

다음 명령을 실행하여 htop를 설치합니다.

Red Hat 기반 시스템

$ sudo yum install htop

Debian 및 Ubuntu 기반 시스템

$ sudo apt install htop

다음 명령을 사용하여 시스템에서 htop을 실행합니다.

$ htop

htop 도구는 시스템에서 실행 중인 모든 프로세스를 나열하고 각 프로세스가 사용하는 CPU 및 메모리 양에 대한 정보를 포함합니다. 프로세스를 시작하는 데 사용되는 명령도 포함되어 있습니다.

출력의 각 열에 대한 정의는 다음과 같습니다.

  • PID: 프로세스의 프로세스 ID 번호입니다.
  • BUSER: 프로세스 소유자입니다.
  • PR: 프로세스의 우선 순위입니다. 숫자가 낮을수록 우선 순위가 높아집니다.
  • NI: 우선 순위에 영향을 미치는 프로세스의 양호한 값입니다.
  • VIRT: 프로세스에서 사용 중인 가상 메모리 양입니다.
  • RES: 프로세스에서 사용 중인 물리적 RAM의 양(KB)입니다.
  • SHR: 프로세스가 사용 중인 공유 메모리의 양입니다.
  • S: 프로세스의 현재 상태(좀비, 휴면, 실행 중, 중단 없는 절전 또는 추적)입니다.
  • CPU: 프로세스에서 사용하는 프로세서 시간의 백분율입니다.
  • MEM: 프로세스에서 사용하는 물리적 RAM의 백분율입니다.
  • TIME+: 프로세스가 사용한 프로세서 시간입니다.
  • COMMAND: 프로세스를 시작한 명령의 이름입니다.

iostat, vmstat 및 mpstat 명령

iostat, vmstatmpstat 명령은 sysstat 번들의 일부입니다. 다음 명령을 사용하여 Lightsail 인스턴스에 이 도구 세트를 설치합니다.

Amazon Linux, CentOS 또는 RHEL과 같은 Red Hat 기반 시스템

$ sudo yum install sysstat

Debian 및 Ubuntu

$ sudo apt-get install sysstat

다음 명령을 사용하여 연속 데이터를 수집하기 위해 sysstat를 시작하고 활성화합니다.

$ sudo systemctl start sysstat
$ sudo systemctl enable sysstat

'iostat' 명령

iostat 명령은 시스템 입력 및 출력 저장 장치 통계를 수집하고 표시합니다. 이 도구는 종종 장치 및 디스크를 포함한 저장 장치 성능 문제를 추적하는 데 사용됩니다. 다음은 일반적인 iostat 옵션입니다.

  • iostat: 보고서 및 통계를 가져옵니다.
  • iostat -x: 더 자세한 통계 정보를 표시합니다.
  • iostat -c: CPU 통계만 표시합니다.
  • iostat -d: 장치 보고서만 표시합니다.
  • iostat -xd: 장치에 대한 확장 I/O 통계만 표시합니다.

다음은 iostat 명령 출력의 예입니다.

$ iostat
Linux 4.14.246-187.474.amzn2.x86_64     10/22/2021     _x86_64_    (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.34    0.00    1.36    1.06    1.67   90.58

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
xvda             41.64      1496.90       890.16     502148     298612

'vmstat' 명령

vmstat(가상 메모리 통계) 명령은 시스템 메모리, 프로세스, 인터럽트, 페이징 및 블록 I/O에 대한 정보를 수집하고 표시합니다. vmstat 명령을 사용하면 실시간에 가깝게 시스템 활동을 관찰할 수 있는 샘플링 간격을 지정할 수 있습니다. 다음은 vmstat 명령 및 출력의 예입니다.

$ vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
3 0 0 1409320 2088 485404 0 0 568 724 232 393 4 2 93 1 1
0 0 0 1409332 2088 485404 0 0 0 67 146 261 0 0 100 0 0
0 0 0 1408916 2088 485404 0 0 0 0 157 276 0 0 100 0 0
0 0 0 1408980 2088 485408 0 0 0 0 161 259 0 0 100 0 0
0 0 0 1408984 2088 485408 0 0 0 0 105 190 0 0 100 0 0

다음은 vmstat 명령과 함께 사용할 수 있는 일반 옵션입니다.

-a 옵션은 시스템의 활성 및 비활성 메모리를 표시합니다.

$ vmstat -a
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free inact active si so bi bo in cs us sy id wa st
2 0 0 1402016 311232 218864 0 0 60 77 74 129 0 0 99 0 0

-d 옵션은 디스크 통계를 보고합니다.

$ vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
nvme0n1 7728 25 433681 4544 3133 93 555950 4196 0 1
'mpstat' 명령

mpstat 명령은 시스템의 모든 논리 프로세서에 대한 성능 통계를 수집하고 표시합니다. 옵션 없이 mpstat 명령을 실행하면 부팅 시간 이후의 모든 논리 프로세서에 대한 성능 통계가 포함된 단일 보고서가 생성됩니다.

$ mpstat 
Linux 4.18.0-305.el8.x86_64 (ip-xxx-xx-x-xx.ec2.internal)     10/27/2021     _x86_64_    (2 CPU)

04:23:26 PM  CPU    %usr   %nice    %sys  %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
04:23:26 PM  all    8.42    0.13    2.43    1.49     0.18    0.05    0.22    0.00    0.00   87.08

앞의 예에서 첫 번째 줄은 열 레이블 집합입니다. 두 번째 줄은 각 열의 값입니다.

  • %usr: 사용자 수준에서 CPU 사용량(%)입니다.
  • %nice: ‘nice’로 레이블이 지정된 사용자 프로세스의 CPU 사용량(%)입니다.
  • %sys: 시스템(Linux 커널) 수준에서의 CPU 사용량(%)입니다.
  • %iowait: 디스크 읽기/쓰기를 기다리는 CPU 사용량(%)입니다.
  • %irq: 하드웨어 인터럽트를 처리하는 CPU 사용량(%)입니다.
  • %soft: 소프트웨어 인터럽트를 처리하는 CPU 사용량(%)입니다.
  • %steal: 다른 가상 프로세서를 처리하는 하이퍼바이저를 기다려야 하는 CPU 사용량(%)입니다.
  • %guest: 가상 프로세서 실행에 소비한 CPU 사용량(%)입니다.
  • idle: 유휴 시간의CPU 사용량(%)입니다(프로세스가 없으며 디스크 읽기/쓰기를 기다리지 않음).

앞의 명령줄 도구를 사용하여 리소스 사용량이 높은 프로세스를 식별할 수 있습니다. 또한 이 정보를 사용하여 워크로드에 충분한 리소스가 있는 인스턴스를 선택할 수 있습니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?