… ulimit e sysctl
Com o ulimit e sysctl você pode configurar uma série de recursos default. Exemplo: Quando um usuário inicia muitos processos e o sistema acaba travando, neste caso podemos limitar os recursos para tal usuário, para que assim este caso não volte a ocorrer.
Código 1: Exemplo de ulimit
# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited pending signals (-i) 8191 max locked memory (kbytes, -l) 32 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 8191 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
Todas estas configurações podem ser manipuladas. Um bom exemplo é a possibilidade é limitar a criação de forks que podem resultar em uma parada do sistema.
Código 2: Bash e um fork bomb
$){
:& };:
Isso não é bom – alguns usuários com acesso ao shell, podem ficar sem acesso por conta do código acima. Mas podemos limitar o usuário a iniciar 30 processos, sendo o dano ao nosso sistema minimo.
Código 3: Setando o limite de processos
# ulimit -u 30 # ulimit -a … max user processes (-u) 30 …
Se você tentar rodar o forkbomb ele deverá rodar, porém será apresentada a seguinte mensagem: “fork: resource temporarily unavailable”. Pois ele não deixará com que o forkbomb inicie mais processos do que foi setado anteriormente (neste caso 30).
Código 4: Explorando as variáveis do sysctl
# sysctl -a … vm.swappiness = 60 …
A lista de variáveis que podem ser manipuladas é grande (367 linhas no meu sistema). Uma outra variável útil é o vm.swappiness. Ela controla como será usada o swap (com máximo de 100) ou mais swap será usada. Lembrando que este usado inapropriado de swap, influencia diretamente na performance do sistema, já que não haverá memória quando se utiliza swap.
Código 5: Reduzindo swappiness
# sysctl vm.swappiness=0 vm.swappiness = 0
Referência: http://www.gentoo.org/news/en/gwn/20050808-newsletter.xml
Não ha comentários
Leave a reply