como monitorar spinlocks

1

Eu estou querendo saber como eu poderia monitorar spinlocks. No meu cliente, temos falha de bloqueio da CPU, para a qual, se eu entendi bem, o spinlock é uma causa provável.

Diferentes equipes usam esse servidor para modelagem preditiva usando R, Python e SAS, o que significa que muitas vezes temos muitos processos não supervaliados sendo executados em paralelo, possivelmente com bibliotecas de multiprocessamento.

O monitoramento do número de spinlocks ou, melhor ainda, de quais processos os utilizaram, pode ajudar a validá-los ou invalidá-los como uma causa para nossas falhas freqüentes (5 durante as últimas 3 semanas).

Existe alguma maneira de monitorá-los? Se não, como poderíamos saber o que estaria causando esses bloqueios suaves?

    
por laurent exsteens 31.05.2016 / 10:39

1 resposta

1

Se os bloqueios estiverem no espaço do usuário, você provavelmente não poderá monitorá-los. Alguns softwares controlam o tempo de bloqueio de rotação e fornecem um método para extraí-lo. Você pode monitorar por proxy usando uma contagem de processos executáveis. Isso deve aumentar se você tiver vários processos em um estado executável.

Um programa bem comportado irá abandoná-lo após um curto período de tempo. Se a trava de rotação não for bem sucedida, ela se antecipará e aguardará uma trava. Se você tiver um programa mal comportado, ele aumentará a utilização da CPU ao travar o bloqueio com freqüência.

Gravar o estado do sistema ao longo do tempo pode ser útil em casos como este. sar pode ser executado periodicamente nos dados de gravação em segundo plano. Isso é útil em um caso como o seu, já que você pode examinar as tendências que levaram ao fracasso. Existem ferramentas que fornecem saída gráfica, mas acho que é mais útil consultar os dados brutos.

Existem também ferramentas que registram o uso contínuo diretamente nos arquivos rrd (banco de dados round-robin) e representam graficamente os resultados. Estes são úteis para análise de tendências.

Se estes são programas em lote ou em lote, você pode querer dinamicamente bons programas usando a maior parte da CPU. Existem vários programas disponíveis que monitoram a utilização de recursos e ajustam as prioridades para que os hogs de recursos não matem o desempenho de outros usuários.

    
por 31.05.2016 / 16:02