Como já falamos, está acontecendo esta semana em Lyon, na França, os eventos Embedded Linux Conference Europe e Open-Source Summit Europe. A mais esperada participação, claro, foi de Linus Torvalds e ele não deixou a desejar quando afirmou categoricamente que não é mais programador, apenas um leitor de e-mails. Porém, nem tudo se resume a ele. O desenvolvedor Chris Simmonds falou hoje sobre otimizações do systemd e do tempo de inicialização. Então, para reduzir pela metade o tempo de inicialização é preciso otimizar o systemd.
Otimizar systemd pode reduzir pela metade o tempo de inicialização
O Systemd tem muitas vantagens sobre o daemon de inicialização tradicional do System V. Uma vantagem é a capacidade de executar tarefas init em paralelo, o que deve reduzir o tempo de inicialização. No entanto, na prática, o tempo de inicialização parece aumentar, não diminuir. Por quê então? O que eu fiz errado?
O fato é que, como todas as ferramentas, você precisa saber como usá-lo para torná-lo eficaz. Com a configuração padrão, o systemd é realmente muito lento. Nesta apresentação, examinarei as unidades systemd e suas dependências e mostrarei como eliminar as tarefas desnecessárias e reordenar as tarefas restantes para obter um sistema em funcionamento no período mínimo. Por fim, descobriremos que o systemd só precisa ser amado, afirma Chris.
Além de abordar os conceitos básicos do systemd com os quais muitos devem estar bem familiarizados, grande parte de sua conversa foi sobre a redução do tempo de inicialização com o systemd. Para referência, ele falou sobre suas otimizações usando uma placa PocketBeagle ARM executando o Debian Stretch.
O Debian nesta placa ASRM de baixa potência levou 66 segundos para inicializar. Então, foram cerca de 18 segundos para o kernel e mais de 47 segundos para os bits de espaço do usuário. Com alguns ajustes básicos, ele conseguiu cortar isso pela metade a cerca de 30 segundos.
Serviços desnecessários descartados
Entre as otimizações de inicialização realizadas, foram descartados os serviços desnecessários, diminuindo o sistema em outras áreas, removendo o serviço ttyGS0 e eliminando outros recursos desnecessários para obter um tempo de inicialização de 29 segundos. Aqueles que desejam saber mais podem fazê-lo através do deck de slides em PDF de Chris.
Embora seja uma melhoria, um tempo de inicialização de meio minuto ainda não é tão impressionante quanto a Intel alcançando um tempo de inicialização de 300ms com o Clear Linux para alguns casos mais pesados, como o Clear Linux em carros onde há requisitos estritos de tempo de inicialização.
A demonstração foi feita pelo engenheiro da Intel, Feng Tang, na Linux Plumbers Conference em Lisboa, Portugal. Ele explicou sobre como a equipe do Clear Linux conseguiu inicializar o kernel muito mais rapidamente. De acordo com o engenheiro, eles começaram com cerca de três segundos de inicialização do kernel. Porém, conseguiram uma redução para apenas 300 ms. Então, o Clear Linux reduz tempo de inicialização do kernel de 3 segundos para 300 ms.
Agora o projeto ACRN da Intel, seu hypervisor leve de código aberto para IoT/edge computing, publicou uma peça interessante. Eles observaram como o hipervisor ACRN é usado em um processador Intel Apollo Lake no novo SUV da montadora chinesa Chery. Eles mencionam a pilha do sistema operacional e é uma combinação interessante: Clear Linux e Android 9.
Com informações de Phoronix