Solaris에서 CPU I/O 대기 시간 계산

Solaris에서 CPU I/O 대기 시간 계산

Solaris VM에서 CPU I/O 대기 시간 메트릭을 가져오는 명령을 찾고 있습니다.

내가 찾은 결과 vmstat -s는 다음과 같습니다.

2627 user   cpu
62008 system cpu
285180 idle   cpu
**0 wait   cpu**

매뉴얼 페이지를 보았지만 vmstat대기 시간에 대한 텍스트를 볼 수 없습니다.

위 출력의 마지막 줄이 I/O 대기 시간이라고 가정할 수 있습니까?

답변1

아니요, 마지막 줄은 I/O 대기 시간을 보고하지 않지만 실제 로드에 관계없이 Solaris에서 0을 표시하도록 하드 코딩되어 있습니다.

멀티코어 및 멀티스레드 CPU의 확산으로 인해 I/O wait시간은 더 이상 실제 의미를 갖지 않으며 오해의 소지가 있을 수도 있습니다. I/O는 일반적으로 단일 CPU 장치에 바인딩되지 않으므로 I/O 중 하나 이상이 보류 중인 동안 I/O를 기다리는 특정 CPU가 없습니다. 어떤 경우든 프로세스만 I/O가 완료되기를 기다리고 있으며 이 대기는 CPU 주기를 사용하지 않으므로 기술적으로 CPU는 이 시간 동안 유휴 상태이며 다른 작업에 사용할 수 있습니다. Solaris 10부터는 유휴 시간과 구별되지 않는 I/O가 0으로 보고되고, I/O wait이제 이전 값이 CPU 유휴 시간에 포함되는 것이 사실입니다.

I/O가 걱정된다면 디스크 통계를 살펴보세요 iostat(예 iostat -xntc 5: 서비스 시간 svc_t, 대기열에서 대기 중인 I/O 수 wait, 대기열이 비어 있지 않은 시간의 비율 %w등). vmstat, , 등을 통해 CPU 통계를 보고했습니다 sar.topiostat

이 문서는 I/O 성능 문제를 조사하는 데에도 도움이 될 수 있습니다.http://dtrace.org/blogs/brendan/2011/05/11/file-system-latency-part-1/

이것이 문제는 Linux와 동일하게 해석됩니다.

답변2

vmstat는 가상 메모리 사용량을 측정하는 데 사용될 가능성이 더 높으므로 더 나은 제안은 다음을 사용하는 것입니다 iostat.sar

iostat:

iostat 1 3
   tty        sd2          ssd35         ssd38         ssd39           cpu
 tin tout kps tps serv  kps tps serv  kps tps serv  kps tps serv   us sy wt id
   0    0   0   0    0  162   7   18  1513  24    6    0   0    0   41 27  0 32
   0  236   0   0    0    0   0    0    0   0    0    0   0    0   51 27  0 21

CPU 필드에 주의를 기울여야 합니다. us - 이를 사용하고 있는 애플리케이션 수, sy - 운영 체제, wt - 대기 시간, id - CPU의 중간 시간

남자 이름:

sar -u 1 2

SunOS frctfscc16p 5.10 Generic_150400-35 sun4u    08/17/2016

09:29:02    %usr    %sys    %wio   %idle
09:29:03      39      22       0      39
09:29:04      32      21       0      47

Average       36      21       0      43

이 경우 기본적으로 iostat와 동일하다는 것을 알 수 있습니다. 원하는 대로 선택할 수 있습니다. 다른 도구도 있지만 저는 적시에 좋은 측정항목을 제공하기 때문에 sar를 선호합니다.

관련 정보