/tmp baseado em RAM pequeno

/tmp baseado em RAM pequeno

A interface web do meu host VPS para configuração me dá uma caixa suspensa para definir meu arquivo /tmp.

O padrão é “16MB RAM” e a alternativa é “disco rígido”.

É possível que ter apenas 16 MB /tmpdisponíveis possa causar problemas para alguns softwares? Ou não?

Responder1

É possível que ter apenas 16 MB de /tmp disponíveis possa causar problemas para alguns softwares?

Sim, se algum software quiser gravar /tmpe ele ou algum outro software já tiver preenchido a partição. Geralmente, isso indicaria uma configuração inadequada do sistema, uma limitação legítima nos recursos disponíveis ou um mau comportamento por parte de algum outro software - em qualquer caso, é muito improvável que o software que procura escrever tente encontrar uma solução por si mesmo. e gerará um erro.

Alguns softwares presumirão que podem gravar arquivos grandes em /tmp, o que, para ser justo, é uma suposição justa. Esse problema cairia na categoria de erros de "má configuração".

A primeira pergunta que você deve se fazer é: "Quais são os benefícios para mim em usar RAM /tmp?" O mais óbviopotencialA vantagem é que acessar a RAM é muito mais rápido do que acessar um disco. No entanto, é improvável que este benefício potencial aparentemente óbvio seja tão benéfico na realidade porque:

  • De qualquer maneira, o sistema armazena em cache os arquivos acessados ​​com frequência na RAM. Reduzir a quantidade de RAM disponível para esse cache para que você possa colocá- /tmplo nele é um pouco estúpido, pois significa que os arquivos usados ​​​​com pouca frequência /tmpterão suplantado os arquivos usados ​​​​com frequência no cache.

  • Os aplicativos já são livres para armazenar coisas na RAM, o que em geral é mais fácil do que armazená-los em um arquivo; portanto, se eles colocarem algo em um arquivo tmp, é muito improvável que seja algo que se beneficiaria por estar na RAM. Se você observar o que realmente está no seu arquivo /tmp, provavelmente são principalmente soquetes e fifos ou pequenos pedaços de dados IPC. Acessá-los por meio de um sistema de arquivos baseado em RAM é conceitualmente mais organizado, mas duvido que faça alguma diferença real.

Sendo esse o caso, por que seria /tmpimplementado em RAM?

  1. Simplifica a implementação de uma propriedade preferida de /tmp, ou seja, que ela seja apagada no desligamento.

  2. Isso pode reduzir ligeiramente o desgaste do hardware. Isso é muito mais significativo em contextos que possuem apenas flash barato e com vida útil limitada para armazenamento, ou que não possuem nenhum armazenamento gravável (por exemplo, sistemas embarcados).

  3. Presumindo /tmpque não esteja sendo abusado, o uso de RAM explora a enorme capacidade de memória do hardware moderno - ou seja, esse material pode muito bem estar na RAM, presumindo que seja o tipo de material que deveria ser.

16MBpoderiaserá suficiente, mas ainda não é tanto se algum processo der errado - e /tmpdeve ser gravável por qualquer pessoa. No entanto, se algum processo der errado ao gravar coisas /tmp, será melhor se ele eventualmente preencher um disco rígido ou mais rapidamente acenar uma bandeira vermelha porque esgotou uma partição RAM?

Se você confia no software que está usando, o último faz mais sentido, então você pode optar pela partição RAM. Você deve examinar um pouco seu /tmpuso real primeiro, caso algo incomum esteja acontecendo (por exemplo du -h /tmp). Você pode criar um "limite normal" e verificar isso com um cron job para alertar alguém e/ou fazer alguma limpeza de emergência quando for excedido.

Infelizmente, alguns aplicativos podem ocasionalmente despejar coisas /tmpque não serão removidas se falharem repentinamente e em um servidor - que não desliga com frequência - que pode ficar lá indefinidamente. Acho que isso pode acontecer de maneira muito inócua, por exemplo, quando alguém faz login e faz uso de algo, a conexão é arbitrariamente fechada ou abandonada.

Portanto, o não-RAM /tmpé mais seguro. O abuso pode passar despercebido por mais tempo, mas apenas porque não é tão significativo como seria com a RAM. Além disso, se algo realmente causar um problema, haverá uma prova fumegante no disco indicando a origem do problema.

informação relacionada