Por que só posso ter um número limitado de arquivos de permuta

4

Esta é uma questão teórica.

Por que só posso ter 29 arquivos / partições de swap?

Se eu quisesse gerar um arquivo de swap de 10k 1MB e trocá-los, ele falha no arquivo de swap de 30 com swapon: / tmp / swap29: swapon falhou: operação não permitida

o script para conseguir isso

#!/bin/bash
i=0
SWAP=/tmp/swap

while [ "$i" -lt 10000 ];do
    dd if=/dev/urandom of=$SWAP$i bs=1M count=1
    mkswap "${SWAP}${i}"
    swapon "${SWAP}${i}"
    i=$((i+1))
done

alguém pode explicar isso?

    
por syss 29.10.2015 / 16:33

2 respostas

3

Em inglês claro:

O kernel precisa manter o controle de arquivos / partições de troca, e isso é feito em uma tabela. Cada entrada recebe uma pequena quantidade de memória, que é pré-alocada. Então, um limite padrão mais que razoável (tamanho máximo da tabela de troca) foi escolhido.

Qualquer pessoa que realmente precise de mais pode modificar e recompilar o kernel.

    
por 29.10.2015 / 22:16
1

A resposta é encontrada aqui: link

Ele diz "... array declarado chamado swap_info que contém MAX_SWAPFILES, que é estaticamente definido como 32, entradas. Isso significa que no máximo 32 áreas de swap podem existir em um sistema em execução."

Há ainda mais informações no Capítulo 11.2 neste link, que é muito mais do que eu gostaria de saber

    
por 29.10.2015 / 23:21

Tags