FERRAMENTAS LINUX: A IBM está propondo um namespace de CPU para o kernel do Linux

domingo, 10 de outubro de 2021

A IBM está propondo um namespace de CPU para o kernel do Linux

 


Confira !

O engenheiro da IBM Pratik Sampat publicou um protótipo inicial de uma interface de namespace de CPU para o kernel Linux. Este espaço de nomes de CPU foi concebido para resolver problemas de coerência com os meios atuais de visualização dos recursos de CPU disponíveis, bem como para resolver possíveis problemas de segurança decorrentes da compreensão do acesso / posicionamento de recursos no sistema.

Um dos impulsionadores dessa proposta de namespace da CPU do Linux são as formas variadas de visualizar e gerenciar os recursos da CPU no momento ".O controle e a interface de exibição são bastante separados um do outro. As restrições podem ser definidas através de interfaces de controle como cgroups, enquanto muitos aplicativos legados ou de outra forma obtêm a visão do sistema através de sysfs / procfs e alocam recursos como número de threads / processos, alocação de memória com base nessas informações. Isso pode levar a comportamentos de execução inesperados, bem como ter um alto impacto no desempenho. "

Enquanto isso, os métodos alternativos são descritos como menos do que ideais na carta RFC",As soluções existentes para o problema incluem ferramentas de espaço de usuário como LXCFS, que podem falsificar as informações sysfs montando no arquivo sysfs online para estar em coerência com os limites definidos através do cgroup cpuset. No entanto, LXCFS é uma solução externa e precisa ser explicitamente configurado para aplicativos que o requeiram. Outra preocupação também é que ferramentas como o LXCFS não lidam com todos os outros mecanismos de exibição, como estatísticas de carregamento do procfs. "

As implicações de segurança, entretanto descritas incluem "um caso em que um ator pode estar ciente da topologia do nó da CPU pode agendar cargas de trabalho e selecionar CPUs de modo que o barramento seja inundado, causando um ataque de negação de serviço" ou "um caso em que identificar a topologia do sistema da CPU pode ajudar a identificar núcleos próximos a barramentos e periféricos, como GPUs, para obter uma vantagem de latência indevida do resto das cargas de trabalho. "

A proposta de namespace de CPU liderada pela IBM segue, portanto, o seguinte design:

Este conjunto de patches de protótipo apresenta um novo mecanismo de namespace do kernel - o namespace da CPU.

O namespace da CPU isola as informações da CPU virtualizando IDs de CPU lógicas e criando um mapa de CPU virtual embaralhado das mesmas. Ele se conecta ao task_struct e é as traduções de cpu projetadas para estar em uma hierarquia plana, o que significa que cada CPU de namespace virtual mapeia para uma CPU física na criação do namespace. A vantagem de uma hierarquia plana é que as traduções são O (1) e os filhos não precisam percorrer a árvore para recuperar uma tradução.

Este namespace então permite que ambas as interfaces de controle e exibição sejam cientes do contexto do namespace da CPU, de forma que uma tarefa dentro de um namespace apenas obtenha a visualização e, portanto, controle de seus recursos de CPU disponíveis por meio de um mapa virtual da CPU.


Em um experimento do namespace da CPU durante o teste com o servidor da web Nginx, " Com o namespace da CPU, vemos o número correto de PIDs gerados correspondendo aos limites do cpuset definidos. A utilização da memória cai mais de 92-95%, a latência é reduzida em 64 % e a taxa de transferência, como solicitações e transferência por segundo, permanece inalterada. "

Ainda há uma série de deficiências conhecidas no design atual, mas os números de desempenho iniciais são empolgantes. Mais detalhes sobre esta série de patch "RFC" para a interface do namespace da CPU do Linux podem ser encontrados neste tópico da lista de discussão . Também há mais detalhes sobre o esforço nesta página da web .








Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário