Tunning-Linux: mudanças entre as edições

De Wiki Projeto Root
Ir para navegação Ir para pesquisar
Sem resumo de edição
 
(3 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 9: Linha 9:
Por default o kernel Linux já vem com algumas configurações com limites restritos, mas é possível extrapolar algumas dessas configurações fazendo com que o sistema operacional se utilize ao máximo o hardware do servidor. Para isso você só precisa editar o arquivo /etc/security/limits.conf com os seguintes parâmetros:
Por default o kernel Linux já vem com algumas configurações com limites restritos, mas é possível extrapolar algumas dessas configurações fazendo com que o sistema operacional se utilize ao máximo o hardware do servidor. Para isso você só precisa editar o arquivo /etc/security/limits.conf com os seguintes parâmetros:


  # número de processos e threads
# número de processos e threads
  nproc unlimited
nproc unlimited
  # número de arquivos abertos
# número de arquivos abertos
  nofile 1048576
nofile 1048576
  # tamanho de locked-in-memory
# tamanho de locked-in-memory
  memlock unlimited
memlock unlimited
  # tamanho da memória virtual
# tamanho da memória virtual
  as unlimited
as unlimited
  # Tempo de cpu
# Tempo de cpu
  cpu unlimited
cpu unlimited
  # Tamanho de arquivo
# Tamanho de arquivo
  fsize unlimited
fsize unlimited
  # Total de memory-locks
# Total de memory-locks
  memlock unlimited
memlock unlimited
  # Tamanho da fila de mensageria
# Tamanho da fila de mensageria
  msgqueue unlimited
msgqueue unlimited
  # Total de locks em threads
# Total de locks em threads
  locks unlimited
locks unlimited
 


== Tunando o Kernel Sysctl ==
== Tunando o Kernel Sysctl ==
Linha 33: Linha 32:
Este é um outro componente do kernel pelo qual iremos otimizar suas configurações de I/O, redes, swap e escalonamento de processos. Para configurá-lo basta editar o /etc/sysctl.conf com os parâmetros abaixo:
Este é um outro componente do kernel pelo qual iremos otimizar suas configurações de I/O, redes, swap e escalonamento de processos. Para configurá-lo basta editar o /etc/sysctl.conf com os parâmetros abaixo:


  # Aumentando limite do file descriptor
# Aumentando limite do file descriptor
  fs.file-max = 100000
fs.file-max = 100000
  # Desabilitando memória swap
# Desabilitando memória swap
  vm.swappiness = 0
vm.swappiness = 0
  # Aumentando range de portas do IP local e de conexões
# Aumentando range de portas do IP local e de conexões
  net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.ip_local_port_range = 10000 65000
  net.core.sormaxconn = 65000
net.core.somaxconn = 65000
  # Aumentando buffer de rede TCP
# Aumentando buffer de rede TCP
  # Defina o máximo de 16M (16777216) para redes de 1GB and 32M (33554432) ou 54M (56623104) para redes de 10GB
# Defina o máximo de 16M (16777216) para redes de 1GB and 32M (33554432) ou 54M (56623104) para redes de 10GB
  net.core.rmem_max = 16777216
net.core.rmem_max = 16777216
  net.core.wmem_max = 16777216
net.core.wmem_max = 16777216
  net.core.rmem_default = 16777216
net.core.rmem_default = 16777216
  net.core.wmem_default = 16777216
net.core.wmem_default = 16777216
  net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
  net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
  # Aumentando tamanho de pacotes de backlog e buckets
# Aumentando tamanho de pacotes de backlog e buckets
  net.core.netdev_max_backlog = 50000
net.core.netdev_max_backlog = 50000
  net.ipv4.tcp_max_syn_backlog = 30000
net.ipv4.tcp_max_syn_backlog = 30000
  net.ipv4.tcp_max_tw_buckets = 2000000
net.ipv4.tcp_max_tw_buckets = 2000000
  # Habilitando reuso de sockets TCP
# Habilitando reuso de sockets TCP
  net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_reuse = 1
  # Aumentando timeout do TCP para reuso de sockets
# Aumentando timeout do TCP para reuso de sockets
  net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_fin_timeout = 10
  # Destabilitando início lento de em conexões IDLE
# Desabilitando início lento de em conexões IDLE
  net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_slow_start_after_idle = 0
  # Aumentando buffer de conexões UDP
# Aumentando buffer de conexões UDP
  net.ipv4.udp_rmem_min = 8192
net.ipv4.udp_rmem_min = 8192
  net.ipv4.udp_wmem_min = 8192
net.ipv4.udp_wmem_min = 8192
  # Dificultar técnicas de fingerprint
# Dificultar técnicas de fingerprint
  net.ipv4.tcp_window_scaling=0
net.ipv4.tcp_window_scaling=0
  # Cancelamento de conexões se os serviços ativos forem demasiadamente lentos e incapazes de prosseguir a aceitar a conexão
# Cancelamento de conexões se os serviços ativos forem demasiadamente lentos e incapazes de prosseguir a aceitar a conexão
  net.ipv4.tcp_abort_on_overflow=1
net.ipv4.tcp_abort_on_overflow=1
  # Desabilitando redirecionamento e roteamento
# Desabilitando redirecionamento e roteamento
  net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.send_redirects = 0
  net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
  net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.accept_source_route = 0
  # Habilitando log de pacotes
# Habilitando log de pacotes
  net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.all.log_martians = 1
  # Aumentando tempo de migração de processos entre cores da cpu e desabilitando auto-agrupamento de processos
# Aumentando tempo de migração de processos entre cores da cpu e desabilitando auto-agrupamento de processos
  kernel.sched_migration_cost_ns = 5000000
kernel.sched_migration_cost_ns = 5000000
  kernel.sched_autogroup_enabled = 0
kernel.sched_autogroup_enabled = 0
# Reducao do tempo de espera entre as conexoes
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
# Reduzir o tempo de limpeza da tabela ARP
# Expandir o seu tamanho
net.ipv4.neigh.default.gc_interval = 15
net.ipv4.neigh.default.gc_thresh1 = 4096
net.ipv4.neigh.default.gc_thresh2 = 8192
net.ipv4.neigh.default.gc_thresh3 = 16384


== Diminuindo os riscos de ataques Meltdown e Spectre ==
== Diminuindo os riscos de ataques Meltdown e Spectre ==

Edição atual tal como às 13h58min de 30 de agosto de 2021

Sobre

Olá! Visitante, reunimos aqui, informações sobre o processo de Tunning em sistemas GNU-Linux, este procedimento tende a aumentar o desempenho entre 10% a 40% dependendo do hardware até um pouco mais. Estes ajustes podem auxiliar em momentos que algum sistema ou rede tenham gargalo, ou até mesmo evita um upgrade desnecessário de infra, uma vez que por padrão o Kernel Linux vem em modo conservador, assim mantendo a compatibilidade entre os mais diversos tipos de utilização. Após os ajustes abaixo recomenda-se fazer reboot em seu equipamento, assim efetivando todas as modificações no processo de boot do sistema.

Removendo Kernel Antigo no Linux

https://wiki.projetoroot.com.br/index.php?title=Remover_Kernel_Linux_Antigo

Aumentando os limites do Kernel

Por default o kernel Linux já vem com algumas configurações com limites restritos, mas é possível extrapolar algumas dessas configurações fazendo com que o sistema operacional se utilize ao máximo o hardware do servidor. Para isso você só precisa editar o arquivo /etc/security/limits.conf com os seguintes parâmetros:

# número de processos e threads
nproc unlimited
# número de arquivos abertos
nofile 1048576
# tamanho de locked-in-memory
memlock unlimited
# tamanho da memória virtual
as unlimited
# Tempo de cpu
cpu unlimited
# Tamanho de arquivo
fsize unlimited
# Total de memory-locks
memlock unlimited
# Tamanho da fila de mensageria
msgqueue unlimited
# Total de locks em threads
locks unlimited

Tunando o Kernel Sysctl

Este é um outro componente do kernel pelo qual iremos otimizar suas configurações de I/O, redes, swap e escalonamento de processos. Para configurá-lo basta editar o /etc/sysctl.conf com os parâmetros abaixo:

# Aumentando limite do file descriptor
fs.file-max = 100000
# Desabilitando memória swap
vm.swappiness = 0
# Aumentando range de portas do IP local e de conexões
net.ipv4.ip_local_port_range = 10000 65000
net.core.somaxconn = 65000
# Aumentando buffer de rede TCP
# Defina o máximo de 16M (16777216) para redes de 1GB and 32M (33554432) ou 54M (56623104) para redes de 10GB
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.rmem_default = 16777216
net.core.wmem_default = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
# Aumentando tamanho de pacotes de backlog e buckets
net.core.netdev_max_backlog = 50000
net.ipv4.tcp_max_syn_backlog = 30000
net.ipv4.tcp_max_tw_buckets = 2000000
# Habilitando reuso de sockets TCP
net.ipv4.tcp_tw_reuse = 1
# Aumentando timeout do TCP para reuso de sockets
net.ipv4.tcp_fin_timeout = 10
# Desabilitando início lento de em conexões IDLE
net.ipv4.tcp_slow_start_after_idle = 0
# Aumentando buffer de conexões UDP
net.ipv4.udp_rmem_min = 8192
net.ipv4.udp_wmem_min = 8192
# Dificultar técnicas de fingerprint
net.ipv4.tcp_window_scaling=0
# Cancelamento de conexões se os serviços ativos forem demasiadamente lentos e incapazes de prosseguir a aceitar a conexão
net.ipv4.tcp_abort_on_overflow=1
# Desabilitando redirecionamento e roteamento
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
# Habilitando log de pacotes
net.ipv4.conf.all.log_martians = 1
# Aumentando tempo de migração de processos entre cores da cpu e desabilitando auto-agrupamento de processos
kernel.sched_migration_cost_ns = 5000000
kernel.sched_autogroup_enabled = 0
# Reducao do tempo de espera entre as conexoes
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
# Reduzir o tempo de limpeza da tabela ARP
# Expandir o seu tamanho
net.ipv4.neigh.default.gc_interval = 15
net.ipv4.neigh.default.gc_thresh1 = 4096
net.ipv4.neigh.default.gc_thresh2 = 8192
net.ipv4.neigh.default.gc_thresh3 = 16384

Diminuindo os riscos de ataques Meltdown e Spectre

  • Verificar vulnerabilidade:
 wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh
 chmod +x spectre-meltdown-checker.sh
 ./spectre-meltdown-checker.sh


Desabilitando o Isolamento de tabelas de paginação.

  nano /etc/default/grub 
  • Adicione: GRUB_CMDLINE_LINUX_DEFAULT nopti

ou

  • Adicione: spectre_v2=off nopti pti=off

Atualize o Grub

  update-grub