iostat levando muito tempo para retornar

2

Eu tenho um servidor solaris 10 com muitos discos SAN (perto de 1.000 em todos os caminhos). iostat -En leva cerca de 5 min para retornar. Existe uma maneira de descobrir o que está causando o atraso? treliça não ajudou muito.

    
por sai garimella 16.01.2015 / 13:51

1 resposta

2

O dtrace é definitivamente a ferramenta que você está procurando. você pode usar um script relativamente simples para descobrir qual é o syscall mais demorado.

Algo parecido com isto:

#!/usr/sbin/dtrace -s

syscall:::entry
/execname == "iostat"/
{
    self->ts = vtimestamp;
}

syscall:::return
/self->ts/
{
    @[probefunc] = sum(vtimestamp - self->ts);
    @["- all syscalls -"] = sum(vtimestamp - self->ts);
    self->ts = 0;
}

profile:::tick-1sec
/i++ >= 59/
{
    exit(0);
}

Além disso, você pode usar o DTrace Toolkit , pois poderá encontrar algo pronto para usar e mais apropriado.

Depois de determinar o styscall do stucking, você poderá fazer mais investigações sobre ele.

    
por 16.01.2015 / 14:28