명령줄에서 Lightsail 리소스 사용량을 모니터링하려면 어떻게 해야 하나요?
Amazon Lightsail에 호스팅된 웹 사이트 또는 애플리케이션이 다운되었거나 실행 속도가 매우 느립니다. 이러한 문제를 해결할 수 있도록 명령줄에서 Lightsail 리소스 사용량을 모니터링하고 싶습니다.
간략한 설명
높은 리소스 사용률을 포함하여 Lightsail 인스턴스에서 실행되는 서비스에 영향을 주는 몇 가지 요인이 있습니다. 일반적인 도구를 사용하여 Lightsail 인스턴스에서 CPU, 메모리, 디스크 I/O 및 네트워크 사용량과 같은 리소스를 모니터링할 수 있습니다. 명령줄에서 실시간으로 이 작업을 수행할 수 있습니다. 이 도구를 사용하면 어떤 프로세스가 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_20230902"는 2023년 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/09/02 17:03:44입니다. 다음 스냅샷으로 이동하려면 키보드에서 "t" 키를 누릅니다. 이전 스냅샷으로 돌아가려면 "T"(대문자 "t“) 키를 누릅니다.
다음은 atop을 시작할 수 있는 일반적으로 사용되는 옵션입니다.
메모리별 정렬
$ atop -m
디스크 세부 정보별 정렬
$ atop -d
네트워크 세부 정보별 정렬
$ atop -n
htop 도구
htop 도구는 CPU 또는 코어당 사용량을 보여주는 Linux용 대화형 실시간 프로세스 모니터링 응용 프로그램입니다. 이 도구는 또한 메모리 및 스왑 사용량에 대한 텍스트 그래프를 제공합니다.
다음 명령을 실행하여 htop을 설치합니다.
Red Hat 기반 시스템
$ sudo yum install htop
Debian 및 Ubuntu 기반 시스템
$ sudo apt install htop
다음 명령을 사용하여 시스템에서 htop을 실행합니다.
$ htop
htop 도구는 시스템에서 현재 실행 중인 모든 프로세스를 나열하고 각 프로세스가 사용하는 CPU 및 메모리의 양에 대한 정보를 포함합니다. 프로세스를 시작하는 데 사용되는 명령도 포함되어 있습니다.
다음은 출력의 각 열에 대한 정의입니다.
- PID: 프로세스의 프로세스 ID 번호.
- 버저: 프로세스 소유자.
- PR: 프로세스의 우선 순위. 숫자가 작을수록 우선 순위가 높습니다.
- NI: 프로세스의 좋은 가치로, 우선 순위에 영향을 미칩니다.
- **VIRT:**프로세스에서 사용하는 가상 메모리의 양.
- **RES:**프로세스에서 사용하는 물리적 RAM의 양(킬로바이트 단위).
- **SHR:**프로세스에서 사용하는 공유 메모리의 양.
- **S:**프로세스의 현재 상태.
- **CPU:**프로세스에서 사용한 프로세서 시간의 백분율.
- **MEM:**프로세스에서 사용한 물리적 RAM의 백분율.
- **TIME+:**프로세스에 사용된 프로세서 시간.
- **COMMAND:**프로세스를 시작한 명령의 이름.
iostat, vmstat 및 mpstat 명령
iostat, vmstat 및 mpstat 명령은 sysstat 번들의 일부입니다. 다음 명령을 사용하여 Lightsail 인스턴스에 이 도구 세트를 설치합니다.
Red Hat 기반 시스템(예: Amazon Linux, CentOS 또는 RHEL)
$ 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(가상 메모리 통계) 명령은 시스템 메모리, 프로세스, 인터럽트, 페이징 및 블록 입출력에 대한 정보를 수집하고 표시합니다. 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 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 사용량(%).
앞의 명령줄 도구를 사용하여 리소스 사용량이 많은 프로세스를 식별합니다. 이 정보를 사용하여 워크로드에 충분한 리소스가 있는 인스턴스를 선택합니다.
관련 콘텐츠
- 질문됨 일 년 전lg...
- 질문됨 7달 전lg...
- 질문됨 한 달 전lg...
- 질문됨 일 년 전lg...
- AWS 공식업데이트됨 7달 전
- AWS 공식업데이트됨 8달 전
- AWS 공식업데이트됨 일 년 전