Configuração de descritores de arquivos em /etc/sysctl.conf

1

Recentemente, aprendi que, para aumentar a quantidade de virtualhosts que podemos atender via Apache, depende dos descritores de arquivos.

eles dizem que o valor deve ser adicionado ao /etc/sysctl.conf como

fs.file-max = 65536

Qual é a correlação entre a quantidade de RAM que tenho com o número acima?

Você poderia me dizer:

"Você deve ter X GB de RAM e CPU de Y GHz para poder definir fs.file-max para Z"

Eu basicamente quero saber a relação X-Y-Z para poder fazer o cenário.

O servidor é um Ubuntu 8.04 e eu posso aumentar a RAM ou CPU para praticamente qualquer número através do meu provedor de servidor em nuvem.

ps: ou por que eu deveria me importar com isso? Existe uma maneira que eu possa configurar o meu sistema que servirá como minha memória permite que ele sirva?

este é o tutorial (doc oficial do plesk)

  1. Adicione a seguinte linha ao /etc/sysctl.conf:

    $ fs.file-max = 65536
    
  2. Execute o seguinte comando shell:

    $ /sbin/sysctl -w fs.file-max=65536
    

    Note que o valor fs.file-max pode ser igual a 220 = 1048576).

  3. Adicione a seguinte linha ao início de /etc/init.d/apache2 e / usr / sbin / apache2ctl:

    $ ulimit -n 'cat /proc/sys/fs/file-max'
    
  4. Altere o valor __FD_SETSIZE nos arquivos /usr/include/bits/typesizes.heusus/include/nptl/bits/typesizes.h. Deve ser assim:

    $ define __FD_SETSIZE 65536
    
  5. Baixe e recrie pacotes:

    $ apt-get install apt-src
    $ apt-src --build install openssl
    $ dpkg -i libssl*.deb openssl*.deb
    $ apt-src --build install apache2
    $ dpkg -i libapr*.deb apache2_*.deb apache2-common*.deb apache2-mpm-prefork*.deb apache2-utils*.deb
    $ cp /opt/psa/suexec/psa-suexec2 /usr/lib/apache2/suexec2
    /etc/init.d/apache2 restart
    $ apt-src --build install libc-client2002edebian
    $ dpkg -i libc-client-dev_2002edebian1-*.deb libc-client2002edebian*.deb
    mlock*.deb
    $ apt-src --build install php4
    $ dpkg -i 'ls *deb|grep php4|grep -v apache-mod'
    
por Devrim 09.12.2009 / 20:07

1 resposta

2

Eu ficaria surpreso se sua instalação do Ubuntu não tivesse, por padrão, mais de 65536 disponíveis. Verifique sua configuração atual com

$ sudo sysctl fs.file-max

A regra geral é que você pode aumentar o parâmetro fs.file-max por 64 para cada  1MB de RAM.

e.g. 2 gigabytes = 2048 * 1MB
                 = 2048 * 64
                 = 131072

Isso é o dobro de 65536. Eu hesitaria em usar isso se você realmente não precisar para usá-lo, porque em alguns casos isso pode diminuir o seu desempenho. Tão importante quanto a configuração sysctl, porém, é o __FD_SETSIZE, porque é isso que seus aplicativos usam quando usam o sistema select(2) call.

Meu conselho, em geral, é que > 1000 VirtualHosts em uma instância do Apcahe é um grande pesadelo para gerenciar em uma única máquina. Um host comprometido, qualquer tempo de inatividade etc. e você tem muito mais sites gritando com você.

Eu trabalhei em hospedagem na web por mais de 7 anos, e meu conselho é se deparar com outra máquina por muitas razões, desempenho sendo um deles, facilidade de manutenção outro, todos os seus ovos em um cesto sendo outro etc. .

    
por 09.12.2009 / 20:48