Script para teste de THP no sistema

Publicado por Sidnei Serra (última atualização em 04/10/2025)

[ Hits: 65 ]

Homepage: https://www.youtube.com/channel/UCRgokKtNlttdmg2RJEa2VYw

Download thp




Nesse artigo - https://www.vivaolinux.com.br/artigo/O-que-o-THP-na-configurao-de-RAM-do-Linux-e-quando-desabilit-lo - mostro o que é THP (Transparent Huge Pages) e aqui coloco um script para testar o seu sistema para ver se vale a pena ou não desabilitá-lo. Instale o pacote bc antes de fazer o teste.

  



Esconder código-fonte

#!/bin/bash
# thp_compare_final2.sh
# Teste de THP - instale o pacote bc no seu sistema

SIZE_MB=1024

run_test() {
    local thp_state="$1"
    # Ajusta THP
    echo "$thp_state" | sudo tee /sys/kernel/mm/transparent_hugepage/enabled > /dev/null
    echo "$thp_state" | sudo tee /sys/kernel/mm/transparent_hugepage/defrag > /dev/null

    START=$(date +%s.%N)
    python3 - << PYTHON
import time
SIZE_MB = $SIZE_MB
a = bytearray(SIZE_MB * 1024 * 1024)
time.sleep(2)
del a
PYTHON
    END=$(date +%s.%N)
    # Calcula tempo
    ELAPSED=$(echo "$END - $START" | bc -l)
    echo "$ELAPSED"
}

# Salva estado atual do THP
CURRENT_THP=$(cat /sys/kernel/mm/transparent_hugepage/enabled | grep -oP '\[.*?\]' | tr -d '[]')
echo "Estado atual do THP: $CURRENT_THP"

# Teste com THP ativo
TIME_ON=$(run_test always)

# Teste com THP desativado
TIME_OFF=$(run_test never)

# Mostra resultados
echo ""
echo "Tempo com THP=always : $TIME_ON s"
echo "Tempo com THP=never  : $TIME_OFF s"

# Comparação correta usando bc
IS_ON_BETTER=$(echo "$TIME_ON < $TIME_OFF" | bc -l)
IS_OFF_BETTER=$(echo "$TIME_ON > $TIME_OFF" | bc -l)

if [ "$IS_ON_BETTER" -eq 1 ]; then
    echo "THP ativo foi mais rápido"
elif [ "$IS_OFF_BETTER" -eq 1 ]; then
    echo "THP desativado foi mais rápido"
else
    echo "Não houve diferença significativa"
fi

# Restaura estado original
echo "$CURRENT_THP" | sudo tee /sys/kernel/mm/transparent_hugepage/enabled > /dev/null
echo "$CURRENT_THP" | sudo tee /sys/kernel/mm/transparent_hugepage/defrag > /dev/null
echo "Estado do THP restaurado para: $CURRENT_THP"

Scripts recomendados

Remover arquivos duplicados

Menu no terminal usando Shell Script

Manutenção de Endereços

Mover e redimensionar janelas para os cantos da tela

Minha solução para monitorar múltiplos termômetros no Slackware


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts