Script para monitorar o uso real da CPU e da largura de banda na migração ao vivo xen

1

Eu preciso escrever um script (bash ou python ou ??) para executar live migration de uma VM em xen , e simultaneamente registrar e extrair o > CPU & O uso de largura de banda do Domain-0 AND grava a saída em um arquivo de texto em um formato bem formado.

O que eu fiz até agora:
Eu atualmente uso esse código para registrar o uso da CPU do 'Domain-0':

xentop -d1 -bi500 | awk '$1 == "Domain-0" { print $4 }'

Ele lê o uso da cpu do comando xentop a cada segundo e imprime no bash. Não consegui encontrar uma maneira de gravar a saída em um arquivo de texto.

E para migrar simultaneamente a VM e monitorar o uso da CPU Eu faço isso:

xentop -d1 -bi500 | awk '$1 == "Domain-0" { print $4 }' & xl migrate vm1 destination-host --live --debug

Para que ambos os comandos sejam executados possivelmente ao mesmo tempo e quando o comando migrate terminar, copio os usos da CPU impressa de quando o comando migrate é iniciado até a conclusão e colá-los em um arquivo de texto. isso é chato e não é preciso !!

Então eu preciso de uma maneira de roteirizar tudo de uma maneira sábia para que sempre que eu a execute, ele solicite o nome da VM e o ip ou nome do host, então ele aciona o comando de migração e registra a CPU & largura de banda ao mesmo tempo e marca a hora de cada saída para que eu possa determinar com precisão o que acontece durante o processo de migração ao vivo. Algo parecido com isto:

Migration Started
     CPU(%)      Bandwidth(MB/s)     Time
     26          14.8                14:31:26
     32.5        13.2                14:31:27
                     ...
                     ...
                     ...
     10          0.5                 14:32:54
Migration Finished

Eu também preciso de um pedaço de código para determinar o uso de largura de banda em tempo real do domínio-0.

    
por Ali 04.07.2015 / 16:15

1 resposta

0

Primeiramente, muito obrigado por este comando porque me resolveu um problema.

Respondendo sua pergunta, você pode fazer a iteração apenas 1, então o código bash irá cancelar em uma iteração e então você pode obter a saída usando "> file.txt". E você pode colocar todo esse código em um loop com 500 iterações ou o que quiser.

    
por 27.08.2015 / 15:16