Introdução
Neste laboratório, você aprenderá como verificar se as configurações de ulimit estão sendo aplicadas corretamente no Linux. Você explorará diferentes métodos para verificar os limites de recursos, começando por exibir os limites do shell atual usando ulimit -a.
Em seguida, você examinará o arquivo de configuração em todo o sistema /etc/security/limits.conf para entender como os limites são definidos para usuários e grupos. Finalmente, você aprenderá como verificar os limites reais aplicados a um processo em execução, inspecionando sua entrada /proc. Essa abordagem prática fornecerá uma compreensão abrangente de como os limites de recursos funcionam e como solucionar problemas relacionados em um ambiente Linux.
Exibir limites com ulimit -a
Nesta etapa, você aprenderá sobre limites de recursos no Linux usando o comando ulimit. Os limites de recursos controlam a quantidade máxima de recursos do sistema que um processo pode usar. Isso é importante para a estabilidade do sistema e para evitar que um único processo consuma todos os recursos disponíveis.
O comando ulimit permite que você visualize e defina esses limites para a sessão atual do shell e quaisquer processos iniciados a partir dela.
Para exibir todos os limites de recursos atuais, abra seu terminal e digite o seguinte comando:
ulimit -a
Pressione Enter.
Você verá uma saída semelhante a esta:
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) <placeholder>
max locked memory (kbytes, -l) <placeholder>
max memory size (kbytes, -m) unlimited
open files (-n) <placeholder>
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) <placeholder>
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) <placeholder>
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
A saída mostra vários limites de recursos, como o número máximo de arquivos abertos (-n), o número máximo de processos de usuário (-u) e o tamanho máximo da pilha (-s). O valor unlimited significa que não há limite imposto para esse recurso.
Compreender esses limites é crucial para diagnosticar problemas de desempenho ou comportamento inesperado do programa. Por exemplo, se um programa falhar porque não consegue abrir arquivos suficientes, verificar o limite de open files com ulimit -a seria um bom primeiro passo.
Você também pode visualizar limites individuais especificando a opção. Por exemplo, para ver o limite no número de arquivos abertos:
ulimit -n
Isso exibirá um único número representando o limite atual para arquivos abertos.
Experimente o comando ulimit -a em seu terminal. Familiarize-se com os diferentes tipos de limites exibidos.
Clique em Continuar para prosseguir para a próxima etapa.
Verificar a configuração de limites com cat /etc/security/limits.conf
Na etapa anterior, você usou ulimit -a para ver os limites de recursos atuais para sua sessão de shell. Esses limites são frequentemente configurados em todo o sistema em um arquivo chamado /etc/security/limits.conf.
Este arquivo faz parte do framework Pluggable Authentication Modules (PAM) e permite que os administradores definam limites de recursos para usuários e grupos no login.
Vamos visualizar o conteúdo deste arquivo de configuração usando o comando cat. cat é um comando simples usado para exibir o conteúdo dos arquivos.
Abra seu terminal e digite o seguinte comando:
cat /etc/security/limits.conf
Pressione Enter.
Você verá o conteúdo do arquivo limits.conf. A saída será semelhante a esta (comentários e entradas específicas podem variar):
## /etc/security/limits.conf
#
#This file sets the limits for the resources available to the login session of
#users and groups. It is used together with the pam_limits module.
#
## (it is recommended to use #include files from /etc/security/limits.d/)
#
#* soft core 0
#root hard core unlimited
#* hard rss 10000
#@student hard nproc 20
#@faculty soft nproc unlimited
#@faculty hard nproc 50
#ftp hard nproc 0
#@student - maxlogins 4
Este arquivo usa um formato simples:
<domínio> <tipo> <item> <valor>
<domínio>: Especifica o usuário ou grupo ao qual o limite se aplica. Pode ser um nome de usuário, um nome de grupo (precedido por@) ou*para todos os usuários.<tipo>: Pode sersoftouhard.- Limites
softsão os limites atuais que podem ser aumentados pelo usuário (até o limite hard). - Limites
hardsão os limites máximos que um usuário não root não pode exceder.
- Limites
<item>: O item de recurso que está sendo limitado (por exemplo,nprocpara o número de processos,nofilepara o número de arquivos abertos).<valor>: O valor do limite.
Linhas que começam com # são comentários e são ignoradas.
Observe a linha ## (it is recommended to use #include files from /etc/security/limits.d/). Isso indica que limites específicos do sistema ou da aplicação são frequentemente colocados em arquivos separados dentro do diretório /etc/security/limits.d/. Isso ajuda a manter o arquivo principal limits.conf limpo e organizado.
Embora você não modifique este arquivo neste laboratório, entender sua estrutura e finalidade é importante para a administração do sistema. Os limites que você viu com ulimit -a são frequentemente derivados das configurações neste arquivo e nos arquivos em limits.d.
Clique em Continuar para passar para a próxima etapa.
Verificar limites do processo com cat /proc/self/limits
Nas etapas anteriores, você aprendeu sobre ulimit para visualizar os limites da sessão atual e /etc/security/limits.conf para a configuração em todo o sistema. Agora, vamos ver como um processo em execução relata seus próprios limites.
O Linux fornece um sistema de arquivos virtual chamado /proc que contém informações sobre os processos em execução e o kernel do sistema. Cada processo em execução tem um diretório em /proc nomeado após seu ID de Processo (PID).
O diretório especial /proc/self é um link simbólico que aponta para o diretório /proc do processo que o acessa. Portanto, quando você está em seu terminal e acessa /proc/self, você está olhando para as informações do seu processo de shell atual.
Dentro do diretório /proc/self, existe um arquivo chamado limits que contém os limites de recursos para esse processo específico.
Vamos visualizar os limites para o seu processo de shell atual usando cat:
cat /proc/self/limits
Pressione Enter.
Você verá uma saída semelhante a esta:
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes unlimited unlimited processes
Max open files 1048576 1048576 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals <placeholder> <placeholder> signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
Esta saída mostra o Soft Limit e o Hard Limit para cada recurso, semelhante ao que você viu com ulimit -a. Os valores aqui refletem os limites reais aplicados ao processo que executou o comando cat (seu shell).
Compare a saída de cat /proc/self/limits com a saída de ulimit -a da primeira etapa. Você deve ver que os valores são consistentes, pois ulimit -a relata os limites do processo de shell atual.
O sistema de arquivos /proc é uma ferramenta poderosa para inspecionar o estado do seu sistema Linux e seus processos. O arquivo limits dentro do diretório de cada processo fornece uma maneira direta de verificar os limites de recursos que estão em vigor para esse processo específico.
Você agora aprendeu três maneiras diferentes de interagir com os limites de recursos no Linux: visualizar os limites da sessão atual com ulimit -a, examinar a configuração em todo o sistema em /etc/security/limits.conf e verificar os limites para um processo específico via /proc/<PID>/limits (ou /proc/self/limits).
Clique em Continuar para concluir este laboratório.
Resumo
Neste laboratório, você aprendeu como verificar se as configurações de ulimit são aplicadas no Linux. Você começou usando o comando ulimit -a para exibir os limites de recursos atuais para a sessão do shell, entendendo os vários limites como arquivos abertos, processos de usuário e tamanho da pilha (stack size). Este comando fornece uma visão geral rápida dos limites herdados pelos processos lançados a partir do shell atual.
Em seguida, você explorou o arquivo de configuração em todo o sistema /etc/security/limits.conf usando cat. Este arquivo define os limites de recursos padrão para usuários e grupos, que são aplicados no login. Finalmente, você verificou os limites de recursos reais para um processo em execução, examinando /proc/self/limits, que mostra os limites efetivos para o processo atual, demonstrando como verificar os limites aplicados a uma instância de processo específica.



