Tempo de espera de E / S da CPU no Solaris

4

Estou procurando um comando para obter uma métrica de tempo de espera de E / S da CPU de uma VM do Solaris.

Descobri que vmstat -s está fornecendo a saída abaixo.

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

Eu olhei para a página de manual de vmstat , mas não consegui ver nenhuma gravação no tempo de espera.

Posso presumir a última linha na saída acima como tempo de espera de E / S?

    
por Venkat Teki 17.08.2016 / 09:11

2 respostas

8

Não, a última linha não reporta o tempo de espera de E / S, mas é codificada permanentemente para exibir zero no Solaris, independentemente da carga real.

Com a generalização de CPUs multi-core e multi-thread, I/O wait time deixou de ter um significado real e até mesmo se arriscou a ser enganoso. Geralmente, as E / Ss não estão vinculadas a uma única unidade de CPU, portanto, não há CPU específica aguardando uma E / S quando uma ou mais delas estão pendentes. Em qualquer caso, apenas os processos estão aguardando a conclusão da E / S, essa espera não usa ciclos de CPU, portanto, tecnicamente, as CPUs estão ociosas e disponíveis para outras tarefas durante esse período. AE / S que não se distingue do tempo inativo é então relatada como sendo igual a zero a partir do Solaris 10, e então o que costumava ser I/O wait agora está incluído no tempo ocioso da CPU, o que é realmente.

Se você estiver preocupado com E / Ss, dê uma olhada nas estatísticas de disco com iostat (ex. iostat -xntc 5 e observe o tempo de serviço svc_t , número de E / Ss na fila de espera wait e porcentagem de tempo em que a fila não está vazia %w ), não as estatísticas da CPU relatadas por vmstat , sar , top , iostat e os gostos.

Este artigo também pode ser de interesse para investigar problemas de desempenho de I / O: link

Este está explicando que o problema é o mesmo com o Linux.

    
por 17.08.2016 / 09:32
2

O vmstat é mais provavelmente usado para medir o uso de memória virtual, portanto, sugestão melhor seria usar iostat ou 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

Você deve prestar atenção ao campo cpu: nós - quantos aplicativos estão usando, sy - OS, wt - tempo de espera, id - iddle tempo de CPU

sar:

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

Neste caso, você pode ver basicamente o mesmo que com o iostat, cabe a você escolher, existem outras ferramentas, mas eu prefiro o sar porque ele pode dar uma boa métrica no tempo.

    
por 17.08.2016 / 09:32

Tags