Existe algum motivo para NÃO ter um arquivo de troca no CentOS (DigitalOcean)?

2

Estou executando um site no DigitalOcean com o CentOS 6.5.

Como foi observado em outros lugares, os servidores DigitalOcean são, por padrão, configurados sem qualquer tipo de troca, e eu estou querendo saber se devo adicionar um.

Eu sei o suficiente sobre essas coisas para pensar que a resposta é "bem, é claro", mas eu realmente não tenho uma base para ir além disso.

  • O meu sistema morrerá na primeira vez que ficar seriamente carregado com usuários e demandas de memória?
  • O swap me salvará disso, mas apenas impondo um desempenho desagradável?

Qualquer conselho nesta área, específico para DigitalOcean ou não, seria muito apreciado.

    
por Jim Miller 28.02.2014 / 02:34

3 respostas

12

Is there any reason to NOT have a swap file on CentOS

Sim:

  • Você tem algum tipo de escalonamento horizontal que aumenta o número de servidores com base no uso de memória, eliminando a possibilidade de uso da troca.

  • Você tem um requisito de desempenho específico que significa que não pode permitir que seu programa use swap para processamento, pois é significativamente mais lento que a memória, portanto, em vez de usar swap, você escolhe monitorar o uso de memória e aumentar a memória conforme necessário .

Will my system just die the first time it gets seriously loaded up with users and memory demands?

Se você não tem idéia de quanto de carga seu servidor vai experimentar, e você não tem memória suficiente, e você não tem espaço de troca, seu aplicativo irá parar.

Will swap save me from that, but only by imposing an unpleasant performance hit?

Correto.

What exactly happens when the application stops? Which application stops?
If I had 3 processes and 1 was leaking memory, would all 3 die or the 1 that was leaking die?
Would 1 force the other 2 to die?

Pense nisso assim:

Se você criar um programa e informar ao programa para preencher uma variável com uma quantidade infinita de inteiros, muito em breve o aplicativo encontrará um erro de memória e ele sairá.

É o mesmo. Qualquer que seja o aplicativo que tente acessar mais memória para suas operações, ele irá falhar. Portanto, se você tiver 1 byte à esquerda e seu aplicativo criar um inteiro de 32 bits, você precisará de 2 bytes, a operação falhará porque não há memória suficiente e, dependendo de como o aplicativo lida com erros de memória, ele se corrigirá ou sairá. / p>

O mesmo vale para 3 aplicativos de uma só vez. Se por coincidência todos eles solicitarem mais memória quando o sistema tiver apenas 1 byte de memória, eles devem tecnicamente todos falharem ao mesmo tempo.

Alguém pode me corrigir se vir algum erro.

    
por 28.02.2014 / 03:19
1
Will swap save me from that, but only by imposing an unpleasant performance hit?

Confira esta página sobre a configuração do swappiness: link

Você pode alterar seu swappiness para que seu sistema não esteja usando o espaço de swap com muita freqüência e, portanto, não tome o máximo de desempenho.

    
por 28.02.2014 / 03:55
0

Primeiro instale o sysstat (se ainda não estiver instalado) e monitore o uso do recurso por alguns dias. Execute "sar -r" e monitore o uso da memória com freqüência. A maior parte do tempo de uso de memória será de quase 90%, observe a coluna "kbcached" e "kbbuffers". Se eles estão usando a maior parte da memória, então você está bem, pois significa que os aplicativos são armazenados em cache. Mas se esses valores forem menores, isso significa que o armazenamento em cache é menor devido ao uso mais real da memória, o que também pode indicar que seus aplicativos precisam de mais RAM. Então você pode aumentar a memória RAM ou configurar o espaço de troca.

Agora, para trocar, acredito que os discos oceânicos digitais estão no SSD. Se for esse o caso, configure um arquivo de swap e você não deve ver nenhum desempenho, já que os SSDs são mais rápidos que os HDDs.

HTH.

    
por 28.02.2014 / 05:34