Monthsetembro 2016

Criando, habilitando e ajustando o uso da swap

Para criar o nosso arquivo de Swap deveremos utilizar os parâmetros bs(tamanho do bloco) e count(número de vezes que o bloco será copiado). Por padrão o parâmetro bs é definido em Bytes, mas podemos adicionar também as letras K (kilobyte), M (megabyte) e G (gigabyte) junto aos valores dos blocos.

Vamos verificar quanto o nosso sistema tem de swap

# free -h

Criando o arquivo de swap

Vamos criar abaixo um arquivo de 4GB para nossa swap

# dd if=/dev/zero of=/swapfile bs=1G count=4

Mude as permissões do novo arquivo criado para leitura e gravação somente para o dono

# chmod 0600 /swapfile

Formate o arquivo de swap

# mkswap /swapfile

Habilitando o arquivo de swap

Podemos habilitar o arquivo de swap imediatamente e habilitar na inicialização do sistema

Para habilitar imediatamente:

# swapon /swapfile

Para habilitar na inicialização do sistema edite o arquivo /etc/fstab adicionando a entrada abaixo

# vim /etc/fstab
/swapfile swap swap defaults 0 0

Depois de criar e habilitar o arquivo de swap, vamos verificar se ela está habilitada

# free -h

Ou

# swapon -s

Ajustando a propriedade swappiness

O parâmetro swappiness configura como será feita a troca de dados da memória RAM para a Swap. O valor pode ser definido entre 0 e 100. Com o valor “0”, o kernel não vai utilizar a Swap, a não ser que o uso da memória RAM chegue a 100%. Com o valor “10”, a Swap somente vai ser usada quando o uso da memória RAM chegar a 90%. Com o valor próximo a 100, o kernel vai priorizar o uso da Swap, podendo deixar mais espaço livre na RAM. Esse perfil de utilização da memória deve ser definido dependendo do uso das aplicações no servidor.
Lembrando que priorizando o uso da Swap poderá causar uma redução significativa no desempenho do sistema, no contrário priorizando o uso da memória RAM geralmente deixa o sistema mais rápido.

Podemos visualizar o valor swappiness com os comandos abaixo:

# cat /proc/sys/vm/swappiness

Ou

# sysctl -a | grep swappiness

Vamos definir o valor como 10

# echo 'vm.swappiness = 10' >> /etc/sysctl.conf

Ajustando a gestão de cache

O parâmetro vfs_cache_pressure define como o kernel remove as informações de inode (estrutura de dados usada para representar um objeto do sistema de arquivos) do cache do sistema de arquivos. Quanto menor for o valor definido, menor será o uso do cache e quanto maior for o valor, mais lento o sistema pode ficar.

O valor padrão é “100”, vamos definir como “50” para um cenário mais conservador

# echo 'vm.vfs_cache_pressure = 50' >> /etc/sysctl.conf

Vamos atualizar a configuração do kernel

# sysctl -p

Usando crontab para agendar tarefas nos servidores GNU/Linux

Podemos utilizar o comando “crontab -e” para editar a tabela de agendamentos do cron do usuário ou editar o arquivo “/etc/crontab” com um editor de texto.

# crontab -e

ou

# vim /etc/crontab

Segue abaixo a sintaxe utilizada:

[MINUTOS] [HORAS] [DIAS DO MÊS] [MÊS] [DIAS DA SEMANA] [USUÁRIO] [COMANDO]
O valor de cada campo:

MINUTOS: (0 a 59);
HORAS: (0 a 23);
DIAS DO MÊS: (1 a 31);
MÊS: (1 a 12 -> Janeiro à Dezembro);
DIAS DA SEMANA: (0 a 7 -> Domingo à Sábado, 0 e 7 equivalem ao Domingo);
USUÁRIO: usuário que vai executar o comando (não precisa ser informado no uso do comando “crontab -e”);
COMANDO: comando que será executado
Observações:

Podemos utilizar as 3 primeiras letras dos dias da semana em inglês (SUN,MON,TUE,WED,THU,FRI,SAT);
Podemos utilizar o “asterisco” (*), especificando que o valor não será relevante;
Podemos utilizar o “hífen” (-), especificando que será utilizado um intervalo entre os valores;
Podemos utilizar a “vírgula” (,), especificando que será utilizada uma lista de valores;
Podemos inserir comentários após o campo comando ou com o “cerquilha” (#) no início da linha;

Seguem abaixo um exemplo de agendamento realizado pela crontab:

# Limpeza do diretório Público
00 00 * * 6 /bin/rm -rf /dados/Publico/* >/dev/null 2>&1

No exemplo acima, o comando “/bin/rm -rf /dados/Publico/* >/dev/null 2>&1” é executado às 00 horas e 00 minutos, toda sexta-feira, em todos os meses e em todos os dias do mês. A primeira linha está comentada.

Administração / Manutenção – Aplicação GitLab

Com a finalidade de uma melhor administração da aplicação GitLab, resolvi listar abaixo alguns comandos úteis.

Iniciar, parar e reiniciar serviços do GitLab

Iniciar todos serviços

# gitlab-ctl start

Parar todos serviços

# gitlab-ctl stop

Reiniciar todos serviços

# gitlab-ctl restart

Visualizar status dos serviços

# gitlab-ctl status
run: gitlab-workhorse: (pid 3148) 8192s; run: log: (pid 859) 8645s
run: logrotate: (pid 31432) 991s; run: log: (pid 861) 8645s
run: nginx: (pid 3159) 8191s; run: log: (pid 855) 8645s
run: redis: (pid 3161) 8191s; run: log: (pid 885) 8645s
run: sidekiq: (pid 4369) 7684s; run: log: (pid 857) 8645s
run: unicorn: (pid 4437) 7673s; run: log: (pid 852) 8645s

Visualizar logs dos processos

Visualizar todos logs

# gitlab-ctl tail

Visualizar logs específicos através do diretório “/var/log/gitlab”

# gitlab-ctl tail gitlab-rails
# gitlab-ctl tail nginx/gitlab_error.log

© 2018 Blog do Vieira

Theme by Anders NorénUp ↑