~에아마존 웹 서비스나는t2.small
EC2LAMP(PHP) 스택에서 몇 개의 웹사이트를 제공하는 VPS로 인스턴스를 사용합니다. 방금 평소 청구서의 거의 3배에 달하는 청구서를 받았습니다. 내가 보기엔 내I/O 요청 사용량이 매우 높았습니다.. 서버에 로그인했는데 디스크가 가득 찬 것을 확인했습니다. 중요하지 않은 파일과 로그를 잔뜩 제거했는데 디스크(EBS) 용량이 이제 60% 미만인데 두 가지를 확인하고 싶습니다.
- 디스크가 가득 차서 I/O 요청 수가 많은 것인지 어떻게 알 수 있나요?
- I/O 요청이 계속 처리되고 있는지 어떻게 알 수 있나요?
AWS 관련 서비스가 없었습니다.클라우드워치모니터링 서비스가 활성화되어 있으므로 #1에 대한 답변을 얻지 못할 수도 있지만 어떤 조언이라도 주시면 감사하겠습니다.
#2에 관해서는 에서 언급한 두 가지 방법을 사용했습니다.이 블로그 게시물내 I/O 속도를 결정하는 데 매우 높은 것 같습니다. 다음은 서버의 일부 통계입니다.
$ iostat
Linux 3.13.0-45-generic (dysphoria) 2015-10-08 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
2.74 0.01 0.69 16.83 0.43 79.30
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
xvda 170.08 10039.29 32.52 843300857 2731428
xvdf 0.01 0.02 0.00 1308 0
$ cat /proc/diskstats
1 0 ram0 0 0 0 0 0 0 0 0 0 0 0
1 1 ram1 0 0 0 0 0 0 0 0 0 0 0
1 2 ram2 0 0 0 0 0 0 0 0 0 0 0
1 3 ram3 0 0 0 0 0 0 0 0 0 0 0
1 4 ram4 0 0 0 0 0 0 0 0 0 0 0
1 5 ram5 0 0 0 0 0 0 0 0 0 0 0
1 6 ram6 0 0 0 0 0 0 0 0 0 0 0
1 7 ram7 0 0 0 0 0 0 0 0 0 0 0
1 8 ram8 0 0 0 0 0 0 0 0 0 0 0
1 9 ram9 0 0 0 0 0 0 0 0 0 0 0
1 10 ram10 0 0 0 0 0 0 0 0 0 0 0
1 11 ram11 0 0 0 0 0 0 0 0 0 0 0
1 12 ram12 0 0 0 0 0 0 0 0 0 0 0
1 13 ram13 0 0 0 0 0 0 0 0 0 0 0
1 14 ram14 0 0 0 0 0 0 0 0 0 0 0
1 15 ram15 0 0 0 0 0 0 0 0 0 0 0
7 0 loop0 0 0 0 0 0 0 0 0 0 0 0
7 1 loop1 0 0 0 0 0 0 0 0 0 0 0
7 2 loop2 0 0 0 0 0 0 0 0 0 0 0
7 3 loop3 0 0 0 0 0 0 0 0 0 0 0
7 4 loop4 0 0 0 0 0 0 0 0 0 0 0
7 5 loop5 0 0 0 0 0 0 0 0 0 0 0
7 6 loop6 0 0 0 0 0 0 0 0 0 0 0
7 7 loop7 0 0 0 0 0 0 0 0 0 0 0
202 0 xvda 14198708 1225 1686588426 26715600 87579 51756 5461696 11290600 0 16654328 38003076
202 1 xvda1 14198527 1203 1686586802 26715376 87579 51756 5461696 11290600 0 16654236 38002848
202 80 xvdf 447 6 2616 288 0 0 0 0 0 288 288
$ free -m
total used free shared buffers cached
Mem: 2000 1910 89 6 6 1216
-/+ buffers/cache: 688 1312
Swap: 0 0 0
위 정보는 부팅 직후에 수집된 정보이지만, iostat
보고서에는 시스템이 몇 시간 동안 실행된 후에도 50-80 범위의 초기 TPS가 표시됩니다. 서버는 약 20개 사이트에 서비스를 제공하고 있으며 그 중 하루에 몇 건 이상의 조회수를 기록하는 사이트는 3개뿐입니다. 하루에 수백 명의 방문객이 찾아옵니다.서버와 사이트는 수년간 문제 없이 이 구성을 유지했습니다.최근에야 I/O가 급증하기 시작했으며 코드, 서버 구성 또는 웹 사이트 로드에는 해당 변경 사항이 없습니다.
이 질문은 원래 에 요청되었습니다.Amazon Web Services 공식 포럼그러나 아무도 거기에서 도움을 줄 수 없는 것 같았습니다. 아마도 해당 포럼에 대한 질문은 너무 일반적인 것 같습니다.
답변1
iostat 매뉴얼 페이지에는 이해하지 못할 경우 제시된 데이터에 대한 오해를 초래할 수 있는 중요한 정보가 있습니다.
iostat 명령으로 생성된 첫 번째 보고서는 시스템이 부팅된 이후 시간에 관한 통계를 제공합니다. 각 후속 보고서는 이전 보고서 이후의 시간을 다룹니다. iostat 명령이 실행될 때마다 모든 통계가 보고됩니다.
따라서 위의 간단한 iostat는 시스템이 시작된 이후 수집된 값을 보고합니다.
간격을 두고 iostst를 실행하고 첫 번째 통계 세트를 삭제하는 것이 더 일반적입니다. 예:
iostat 5
그러면 5초마다 관련 통계가 보고됩니다.
올바른 데이터를 수집하면 상황을 더 잘 이해할 수 있습니다.
다음을 살펴보세요.꼭대기에명령. 특히 권한을 가지고 실행하고 선택하면 d
스레드당 디스크 IO 통계가 활성화됩니다.