|
O novo escalonador do FreeBSD, disponível no RELENG_7, SCHED_ULE, é, de fato, um novo escalonador, tendo do SCHED_ULE antigo apenas o nome. Esse escalonador tem se mostrado não apenas muito bom, mas plagiando a consideração do Chris DiBona, gerente de projeto Open Source do Google, "SCHED_SMP is a masterpiece", algo como "SCHED_SMP é uma obra-de-arte", se referindo a quando SCHED_ULE era ainda chamado SCHED_SMP no FreeBSD 7.0-CURRENT. Já divulgamos que os resultados de performance e resposta do FreeBSD com o novo escalonador comparado ao Linux, mesmo com seu novo escalonador - o CFS - ou Solaris, sejam em benchmarks práticos, com aplicações, como em testes de estresse sob grande load. Enfim, referências sobre o quão bom o escalonador se apresenta, ou como ele funciona, ou comparações dos modelos de decisão adotado neste ou em outros escalonadores podem ser observados em diversas referências (1 , 2, 3, 4 , 5 , 6, 7 , 8, 9 , 10 , 11 ...). Mas o que interessa é, o FreeBSD adotará o SCHED_ULE em sua terceira encarnação, por padrão, a partir do RELENG_7? Sim, mas não a partir do FreeBSD 7.0-RELEASE. O escalonador em questão foi testado exaustivamente, e não apresenta problemas em nenhum ambiente, obtendo melhorias significativas em praticamente todo cenário. E então, porque não torna-lo padrão? Simples, o Projeto FreeBSD nunca foi conhecido por decisões arrojadas na condução de suas tecnologias. Mais que isso, sempre foi bastante conservador nessas decisões. O algorítimo de auto-tunning do maxusers é conservador. Um administrador FreeBSD mais bem preparado faz esse tuning sempre, de forma mais específica. O granularidade do sistema operacional há decadas justifica seu valor em 1000, e por anos, foi 100 (1000 se tornou padrão apenas recentemente), enquanto em arquiteturas 64bits pode ir facilmente para 2000 ou 3000. O que nunca é feito por padrão. Manter o SCHED_4BSD no kernel GENERIC no FreeBSD 7.0-RELEASE é só mais uma dessas decisões conservadores, que historicamente se tornou uma grande característica de condução do FreeBSD. Isso demonstra a seriedade com que o Projeto aborda a adoção de tecnologia, e principalmente, o quanto requer que o usuário FreeBSD esteja ciente, com bastante antecipação, de modificações drásticas. O SCHED_ULE estará disponível no 7.0-RELEASE em sua melhor forma, mas não no GENERIC. Assim, todos poderemos ao longo do 7.0, trocar de escalonador, como um ítem adicional em nossa checklist. Quando a árvore RELENG_7 estiver Open, em algum momento, durante o 7.0-STABLE, o SCHED_4BSD será substituído pelo ULE, e o planejamento é que no 7.1-RELEASE este já seja o escalonador no kernel GENERIC. Decisão apropriada, dada a importância de um RELEASE ponto-zero.
|