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 /tmp
disponí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 /tmp
e 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á-
/tmp
lo nele é um pouco estúpido, pois significa que os arquivos usados com pouca frequência/tmp
terã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 /tmp
implementado em RAM?
Simplifica a implementação de uma propriedade preferida de
/tmp
, ou seja, que ela seja apagada no desligamento.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).
Presumindo
/tmp
que 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 /tmp
deve 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 /tmp
uso 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 /tmp
que 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.