Skip to Content
DocumentaçãoOperaçõesAdministração do SistemaAjuste de desempenho

Ajuste de desempenho

Este artigo aborda ferramentas de monitoramento de desempenho comumente usadas e técnicas de otimização no Ubuntu 26.04 para ajudá-lo a aproveitar ao máximo seu hardware.

Ferramentas de monitoramento do sistema

htop - Gerenciador de processos interativos

# Install (usually pre-installed on Ubuntu 26.04) sudo apt install htop # Launch htop

Operações comuns do htop:

AtalhoFunção
F2Configuração/Configuração
F3Processo de pesquisa
F4Filtrar processos
F5Vista em árvore
F6Organizar
F9Enviar sinal (processo de eliminação)
F10Desistir
uFiltrar por usuário
MClassificar por memória
PClassificar por CPU
TClassificar por tempo

Outras ferramentas de monitoramento

# top - basic process monitoring top # vmstat - virtual memory statistics vmstat 1 5 # once per second, 5 times # iostat - I/O statistics sudo apt install sysstat iostat -xz 1 # iotop - view per-process I/O sudo apt install iotop sudo iotop # nmon - comprehensive performance monitoring sudo apt install nmon nmon # glances - modern system monitoring sudo apt install glances glances # btop - visually appealing resource monitor sudo apt install btop btop

Visualizando informações de recursos do sistema

# CPU information lscpu cat /proc/cpuinfo | grep "model name" | head -1 # Memory information free -h cat /proc/meminfo # Disk usage df -h # Load averages uptime cat /proc/loadavg # Network connections ss -tunapl

Otimização de CPU

Gerenciamento de frequência da CPU

# cpufrequtils is deprecated; use cpupower instead (provided by linux-tools) sudo apt install linux-tools-common linux-tools-generic # View current CPU frequency and governor cpupower frequency-info # View available frequency governors cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors # Set to performance mode sudo cpupower frequency-set -g performance # Set to power-saving mode sudo cpupower frequency-set -g powersave

Na área de trabalho você também pode usar a ferramenta de gerenciamento de energia de nível superior power-profiles-daemon:

# List available power profiles powerprofilesctl list # Switch to performance mode powerprofilesctl set performance

Prioridade do Processo

# Use nice to start a process (-20 to 19, lower values = higher priority) nice -n 10 /path/to/task.sh # Change the priority of a running process renice -n 5 -p PID # Set real-time priority sudo chrt -f 50 /path/to/realtime-task # Pin a process to specific CPU cores taskset -c 0,1 /path/to/task.sh

Otimização de memória

Trocar afinação

# View current swap usage swapon --show free -h # View current swappiness value (default is 60) cat /proc/sys/vm/swappiness

guia de parâmetros de troca:

ValorCaso de uso
0-10Sistemas/servidores desktop com ampla memória, minimizam o uso de swap
30-40Cargas de trabalho gerais do servidor
60Valor padrão
80-100Sistemas com restrição de memória, usam swap agressivamente
# Temporarily change swappiness sudo sysctl vm.swappiness=10 # Permanently change swappiness echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.d/99-performance.conf sudo sysctl --system

Outros parâmetros de memória

# Cache pressure (default 100; lower values retain more directory and inode caches) echo "vm.vfs_cache_pressure=50" | sudo tee -a /etc/sysctl.d/99-performance.conf # Dirty page writeback policy echo "vm.dirty_ratio=15" | sudo tee -a /etc/sysctl.d/99-performance.conf echo "vm.dirty_background_ratio=5" | sudo tee -a /etc/sysctl.d/99-performance.conf # Apply all changes sudo sysctl --system

Limpando Cache

# Free page cache sudo sync; echo 1 | sudo tee /proc/sys/vm/drop_caches # Free dentry and inode cache sudo sync; echo 2 | sudo tee /proc/sys/vm/drop_caches # Free all caches sudo sync; echo 3 | sudo tee /proc/sys/vm/drop_caches

Agendador de E/S

Visualizando e alterando o agendador de E/S

# View current I/O scheduler cat /sys/block/sda/queue/scheduler # Example output: [mq-deadline] kyber bfq none # Temporarily change echo "bfq" | sudo tee /sys/block/sda/queue/scheduler

Seleção do agendador de E/S

AgendadorCaso de uso
mq-deadlineUso geral, adequado para a maioria dos HDDs e SSDs
bfqSistemas de desktop, fornecem melhor capacidade de resposta interativa
kyberSSDs NVMe de alto desempenho
noneAcesso direto ao SSD NVMe, menor latência

Configurações persistentes do agendador de E/S

Crie uma regra do udev:

sudo nano /etc/udev/rules.d/60-scheduler.rules
# HDD uses mq-deadline ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="mq-deadline" # SSD uses none or mq-deadline ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline" # NVMe uses none ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/scheduler}="none"
sudo udevadm control --reload-rules

Otimização SSD

Habilitando TRIM

O TRIM permite que o sistema operacional informe ao SSD quais blocos de dados não estão mais em uso, ajudando a manter o desempenho do SSD e prolongar sua vida útil.

# Check if the SSD supports TRIM sudo hdparm -I /dev/sda | grep TRIM # Manually run TRIM sudo fstrim -v / # Check the scheduled TRIM service systemctl status fstrim.timer # Enable scheduled TRIM (runs weekly) sudo systemctl enable --now fstrim.timer

Opções de otimização SSD no fstab

# Recommended SSD mount options UUID=xxxx / ext4 defaults,noatime,discard 0 1
OpçãoDescrição
noatimeNão registre tempos de acesso a arquivos, reduz gravações
discardTRIM em tempo real (ou use fstrim.timer)
commit=60Estende o intervalo de commit, reduz a frequência de gravação

Reduzindo gravações desnecessárias em disco

# Mount /tmp to memory # Add to /etc/fstab: # tmpfs /tmp tmpfs defaults,noatime,size=2G 0 0 # Reduce journal writes sudo nano /etc/systemd/journald.conf # Set: Storage=volatile (memory only, lost after reboot) # Or: SystemMaxUse=100M (limit journal size)

Otimização de Rede

Ajuste de parâmetros TCP

sudo nano /etc/sysctl.d/99-network.conf
# TCP buffer sizes net.core.rmem_max=16777216 net.core.wmem_max=16777216 net.ipv4.tcp_rmem=4096 87380 16777216 net.ipv4.tcp_wmem=4096 65536 16777216 # TCP connection optimization net.ipv4.tcp_fastopen=3 net.ipv4.tcp_mtu_probing=1 net.ipv4.tcp_congestion_control=bbr # Connection queue net.core.somaxconn=65535 net.core.netdev_max_backlog=65535 # TIME_WAIT optimization net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_fin_timeout=15
# Enable BBR congestion control echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.d/99-network.conf echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.d/99-network.conf sudo sysctl --system # Verify BBR is active sysctl net.ipv4.tcp_congestion_control

Otimização do sistema de arquivos

Otimização ext4

# View filesystem parameters sudo tune2fs -l /dev/sda2 # Reduce reserved space (default 5%, can be lowered for large partitions) sudo tune2fs -m 1 /dev/sda2

Limites do descritor de arquivo

# View current limit ulimit -n # Temporarily increase the limit ulimit -n 65535 # Permanently change sudo nano /etc/security/limits.conf
# /etc/security/limits.conf * soft nofile 65535 * hard nofile 65535

Nível do sistema:

echo "fs.file-max=2097152" | sudo tee -a /etc/sysctl.d/99-performance.conf sudo sysctl --system

Otimização de inicialização

# Analyze boot time systemd-analyze # View boot time per service systemd-analyze blame # View critical boot path systemd-analyze critical-chain # Disable unnecessary services sudo systemctl disable bluetooth.service # not using Bluetooth sudo systemctl disable cups.service # not using printing sudo systemctl disable ModemManager.service # not using modem # Check boot log for errors journalctl -b -p err

Comparativo de desempenho

# Disk performance test sudo apt install fio # Sequential read test fio --name=seqread --rw=read --bs=1M --size=1G --numjobs=1 --runtime=30 # Random read/write test fio --name=randreadwrite --rw=randrw --bs=4k --size=1G --numjobs=4 --runtime=30 # Simple disk write speed test dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 oflag=direct # Memory bandwidth test sudo apt install sysbench sysbench memory run # CPU benchmark sysbench cpu --threads=$(nproc) run # Network performance test sudo apt install iperf3 # Server: iperf3 -s # Client: iperf3 -c server_ip