Um sistema convidado de VM é executado apenas quando o processo da VM está agendado no host?

1

Estou trabalhando na preparação de um pacote de software corporativo para execução na nuvem, mas estou enfrentando o problema de que o pacote de software é executado como um processo em tempo real em nossas implantações atuais. Ninguém está realmente certo se é realmente necessário para o sistema, mas todos eles recomendam strongmente fazê-lo.

Em execução em um serviço de nuvem, no entanto, nossa VM compartilhará um host com dezenas de outras (talvez centenas?) e, embora eu possa definir o processo para ser agendado em tempo real dentro da VM, a própria VM ainda tem prioridade normal no host. Isso está correto? O software de virtualização está agendado como qualquer outro processo no host?

    
por Délisson Junio 10.08.2016 / 20:31

1 resposta

1

No que diz respeito ao host, uma VM é um processo agendado como qualquer outro processo. No final, cada processador (cada núcleo) pode estar executando apenas um programa por vez. O agendador do host decide qual deles é.

Até onde eu sei, nenhuma das tecnologias de máquinas virtuais que são normalmente usadas em serviços de nuvem oferecem garantias em tempo real. É definitivamente possível criar máquinas virtuais com garantias em tempo real, mas há um custo - os outros processos recebem menos tempo de CPU. O custo / benefício normalmente não corresponde ao que a nuvem de hospedagem almeja, que é amortizar recursos entre muitos concorrentes, de modo que os processadores não fiquem ociosos por muito tempo.

Se você quiser garantias em tempo real, esse será um serviço fundamentalmente diferente da hospedagem em nuvem básica e que você precisará pagar. Como colocar vários processos em tempo real juntos tende a exigir uma visão holística para garantir que todos eles cumpram seu prazo, você provavelmente acabará executando suas coisas da maneira que quiser, em hardware dedicado.

A nuvem e o tempo real me parecem uma combinação estranha. Uma tarefa em execução em um serviço de nuvem só é concluída quando você faz o download da resposta e, normalmente, você não teria garantias de serviço para a comunicação entre o terminal que precisa da resposta em tempo real e o serviço de nuvem. Computações em tempo real normalmente precisam ser mantidas dentro de um perímetro de rede sob seu controle, onde você tem garantias de rendimento e latência.

    
por 11.08.2016 / 02:48