Neste artigo vou fazer uma comparação entre os escalonadores BFQ e MQ-Deadline para acesso ao disco nas distribuições Arch Linux e Debian 13 para mostrar a diferença de desempenho de acordo com o hardware de disco usado.
Sequenciais (leitura/escrita grande): Praticamente iguais nos dois schedulers (~140 MB/s leitura e ~132 MB/s escrita).
Leitura aleatória: mq-deadline ficou levemente melhor (543 vs 526 KiB/s).
Escrita aleatória: mq-deadline também ficou melhor (7255 vs 6629 KiB/s, mais IOPS e menos latência).
O mq-deadline teve vantagem em praticamente todos os testes, principalmente em escrita aleatória (onde HDDs sofrem mais). NESSE disco no Debian 13 o bfq não trouxe ganhos como os verificados no Arch e até ficou um pouco atrás. Para o uso de edição leve de vídeos, captura de tela, multitarefa moderada, manter o mq-deadline é a melhor opção. O bfq costuma ser mais útil em cenários de desktop multitarefa com SSDs ou workloads mistos bem pesados mas aqui não compensou.
# Converter para KB/s
local unit=$(echo "$bw" | grep -o '[KMG]iB/s')
local value=$(echo "$bw" | grep -o '^[0-9.]*')
local kb=0
case $unit in
KiB/s) kb=$(awk "BEGIN{printf \"%d\", $value}") ;;
MiB/s) kb=$(awk "BEGIN{printf \"%d\", $value*1024}") ;;
GiB/s) kb=$(awk "BEGIN{printf \"%d\", $value*1024*1024}") ;;
esac
total_bw=$((total_bw + kb))
done
echo "$sched total score (KB/s): $total_bw" >> "$SUMMARY"
# Somente o número vai para stdout
echo "$total_bw"
}
# Rodar para os dois schedulers
score_deadline=$(rodar_teste mq-deadline)
score_bfq=$(rodar_teste bfq)
echo "" >> "$SUMMARY"
if [ "$score_deadline" -gt "$score_bfq" ]; then
echo "Melhor scheduler para este sistema: mq-deadline" | tee -a "$SUMMARY"
else
echo "Melhor scheduler para este sistema: bfq" | tee -a "$SUMMARY"
fi
echo "== Teste concluído em $(date) ==" >> "$SUMMARY"
cat "$SUMMARY"
#
##
###
#### Conhecimento não vem de graça, valorize o aprendizado e a ajuda recebida! ####