Na imprensa informal (isto é, jornalística) sobre tecnologia, e em blogs e fóruns de discussão on-line, geralmente encontramos conselhos anedóticos para deixar uma certa quantidade de espaço livre em unidades de disco rígido ou unidades de estado sólido. Várias razões para isso são apresentadas, ou às vezes nenhuma razão. Como tal, essas alegações, embora talvez razoáveis na prática, têm um ar mítico sobre elas. Por exemplo:
Quando o (s) seu (s) disco (s) estiverem 80% cheios, considere-os cheios e exclua imediatamente ou atualize. Se eles atingirem 90% do total, considere suas próprias calças pessoais pegando fogo e reaja com uma quantidade adequada de imediatismo para remediar isso. ( Fonte .)
Para manter a coleta de lixo com eficiência máxima, os conselhos tradicionais têm como objetivo manter 20 a 30% da sua unidade vazia. ( Fonte .)
Foi-me dito que eu deveria deixar cerca de 20% grátis em um HD para obter um melhor desempenho, que um HD realmente diminui quando está quase cheio. ( Fonte .)
Você deve deixar espaço para os arquivos de troca e arquivos temporários. Atualmente, deixo 33% por cento livre e prometo não ficar abaixo de 10 GB de espaço livre no HD. ( Fonte .)
Eu diria que normalmente 15%, no entanto, com o tamanho dos discos rígidos atuais, desde que você tenha o suficiente para seus arquivos temporários e arquivos de troca, tecnicamente você está seguro. ( Fonte .)
Eu recomendaria 10% a mais no Windows, porque a desfragmentação não será executada se não houver muito espaço livre na unidade quando você a executar. ( Fonte .)
Você geralmente deseja deixar cerca de 10% livre para evitar a fragmentação ( fonte ).
Se a sua unidade estiver consistentemente mais de 75 ou 80% cheia, vale a pena considerar a atualização para um SSD maior. ( Fonte .)
Houve alguma pesquisa, preferencialmente publicada em uma revista revisada por pares, sobre a quantidade percentual ou absoluta de espaço livre exigida por combinações específicas de sistemas operacionais, sistema de arquivos e tecnologia de armazenamento (por exemplo, prato magnético x estado sólido)? (Idealmente, essa pesquisa também explicaria o motivo de não exceder a quantidade específica de espaço usado, por exemplo, para impedir que o sistema fique sem espaço de troca ou para evitar perda de desempenho.)
Se você souber de alguma dessas pesquisas, ficaria grato se pudesse responder com um link para ela, além de um breve resumo dos resultados. Obrigado!
fonte
Respostas:
É preciso voltar muito mais do que 20 anos, para administração do sistema ou de outra forma, para isso. Esse era um tópico importante, pelo menos no mundo dos sistemas operacionais de computadores pessoais e estações de trabalho, há mais de 30 anos; o momento em que o pessoal da BSD desenvolvia o Berkeley Fast FileSystem e a Microsoft e a IBM desenvolviam o High Performance FileSystem.
A literatura de ambos os criadores discute as maneiras como esses sistemas de arquivos foram organizados, de modo que a política de alocação de bloco rendeu melhor desempenho ao tentar tornar contíguos os blocos de arquivos consecutivos. Você pode encontrar discussões sobre isso e o fato de que a quantidade e a localização do espaço livre restante para alocar blocos afeta a localização e o desempenho dos blocos nos artigos contemporâneos sobre o assunto.
Deveria ser bastante óbvio, por exemplo, a partir da descrição do algoritmo de alocação de blocos do FFS de Berkeley, que se não houver espaço livre no grupo de cilindros atual e secundário, o algoritmo alcançará o fallback de quarto nível ("aplique uma pesquisa exaustiva para todos os grupos de cilindros ") o desempenho da alocação de blocos de disco sofrerá, assim como a fragmentação do arquivo (e, portanto, o desempenho de leitura).
São essas análises e análises semelhantes (longe de serem os únicos projetos de sistema de arquivos que visavam melhorar as políticas de layout dos projetos de sistema de arquivos da época) que a sabedoria recebida dos últimos 30 anos se baseou.
Por exemplo: O ditado no artigo original de que os volumes de FFS devem ser mantidos abaixo de 90%, para que o desempenho não seja prejudicado, com base em experimentos feitos pelos criadores, pode ser encontrado sem crítica, mesmo em livros sobre sistemas de arquivos Unix publicados neste século (por exemplo, Pate2003, p. 216) . Poucas pessoas questionam isso, embora Amir H. Majidimehr realmente tenha feito o século anterior, dizendo que xe na prática não observou um efeito perceptível; principalmente pelo mecanismo comum do Unix que reserva esses 10% finais para uso de superusuário, o que significa que um disco cheio de 90% está efetivamente 100% cheio para não- usuários de qualquer maneira (Majidimehr1996 p. 68). O mesmo aconteceu com Bill Calkins, que sugere que, na prática, é possível preencher até 99%, com tamanhos de disco do século XXI, antes de observar os efeitos de desempenho de pouco espaço livre, porque mesmo 1% dos discos de tamanho moderno é suficiente para ter muito espaço livre não fragmentado ainda para brincar (Calkins2002 p. 450) .
Este último é um exemplo de como a sabedoria recebida pode se tornar errada. Existem outros exemplos disso. Assim como os mundos SCSI e ATA de endereçamento de blocos lógicos e gravação de bits por zona jogaram para fora da janela todos os cálculos cuidadosos de latência rotacional no design do sistema de arquivos BSD, a mecânica física dos SSDs prefere jogar fora da janela o espaço livre sabedoria recebida que se aplica aos discos Winchester.
Com os SSDs, a quantidade de espaço livre no dispositivo como um todo , ou seja, em todos os volumes do disco e entre eles , afeta tanto o desempenho quanto a vida útil. E a própria base para a idéia de que um arquivo precisa ser armazenado em blocos com endereços de bloco lógicos contíguos é prejudicada pelo fato de os SSDs não terem pratos para girar e cabeças a procurar. As regras mudam novamente.
Com SSDs, a quantidade mínima recomendada de espaço livre é realmente mais do que o tradicional de 10% que vem de experiências com discos Winchester e Berkeley FFS 33 anos atrás. Anand Lal Shimpi dá 25%, por exemplo. Essa diferença é agravada pelo fato de que deve haver espaço livre em todo o dispositivo , enquanto o número de 10% está dentro de cada volume FFS e, portanto, é afetado pelo fato de o programa de particionamento de alguém saber TRIM todo o espaço que não está disponível. alocado a um volume de disco válido pela tabela de partição.
Ele também é agravado pelo complexidades como drivers de sistema de arquivos TRIM-ciente de que pode aparar espaço livre dentro de volumes de disco, eo fato de que SSD próprios fabricantes também já alocar diferentes graus de espaço reservado que nem sequer é visível outwith o dispositivo (ou seja, para o host ) para vários usos, como coleta de lixo e nivelamento de desgaste.
Bibliografia
fonte
Embora eu não possa falar sobre "pesquisas" sendo publicadas por "periódicos revisados por pares" - e eu não gostaria de depender delas para o trabalho cotidiano -, posso falar sobre as realidades de centenas de produções servidores sob uma variedade de sistemas operacionais ao longo de muitos anos:
Há três razões pelas quais um disco completo reduz o desempenho:
O primeiro ponto é trivial, especialmente porque nenhum sistema de produção sã jamais usaria espaço de troca na expansão dinâmica e na redução de arquivos.
O segundo ponto difere bastante entre sistemas de arquivos e carga de trabalho. Para um sistema Windows com carga de trabalho mista, um limite de 70% é bastante utilizável. Para um sistema de arquivos ext4 Linux com poucos, mas grandes arquivos (por exemplo, sistemas de transmissão de vídeo), isso pode chegar a mais de 90%.
O terceiro ponto é dependente de hardware e firmware, mas especialmente os SSDs com um controlador Sandforce podem voltar a ser apagados em blocos livres em cargas de trabalho de alta gravação, levando a latências de gravação a subir em milhares de por cento. Geralmente, deixamos 25% livres no nível da partição e observamos uma taxa de preenchimento abaixo de 80%.
Recomendações
Sei que mencionei como garantir que uma taxa de preenchimento máximo seja aplicada. Alguns pensamentos aleatórios, nenhum deles "revisado por pares" (pago, falso ou real), mas todos eles de sistemas de produção.
/var
não pertence ao sistema de arquivos raiz.df -h
e deixe tocar os alarmes. Isso pode poupar você de 30 kernels em um fs raiz com atualizações automáticas instaladas e em execução sem a opção autoremove.fonte
/var
enche e seu servidor cai.Em 20 anos de administração do sistema, nunca encontrei pesquisas detalhando os requisitos de espaço livre de várias configurações. Suspeito que isso ocorra porque os computadores são configurados de várias maneiras, o que seria difícil de fazer devido ao grande número de configurações possíveis do sistema.
Para determinar quanto espaço livre um sistema requer, é necessário contabilizar duas variáveis:
O espaço mínimo necessário para evitar comportamentos indesejados, que podem ter uma definição fluida.
Observe que é inútil definir o espaço livre necessário somente por esta definição, pois é o equivalente a dizer que é seguro dirigir 80 mph em direção a uma parede de tijolos até o ponto exato em que você colide com ela.
A taxa na qual o armazenamento é consumido, que determina uma quantidade variável adicional de espaço, é reservada, para que o sistema não seja degradado antes que o administrador tenha tempo de reagir.
A combinação específica de sistema operacional, sistemas de arquivos, arquitetura de armazenamento subjacente, juntamente com o comportamento do aplicativo, configuração da memória virtual etc. cria um grande desafio para quem deseja fornecer requisitos definitivos de espaço livre.
É por isso que existem tantos "conselhos" por aí. Você notará que muitos deles fazem uma recomendação em torno de uma configuração específica. Por exemplo, "Se você tiver um SSD sujeito a problemas de desempenho quando estiver próximo da capacidade, fique acima de 20% de espaço livre".
Como não há uma resposta simples para essa pergunta, a abordagem correta para identificar o requisito mínimo de espaço livre do sistema é considerar as várias recomendações genéricas à luz da configuração específica do sistema, definir um limite, monitorá-lo e estar disposto a ajustá-lo como necessário.
Ou você pode apenas manter pelo menos 20% de espaço livre. A menos, é claro, que você tenha um volume RAID 6 de 42 TB suportado por uma combinação de SSDs e discos rígidos tradicionais e um arquivo de troca pré-alocado ... (isso é uma piada para pessoas sérias).
fonte
Obviamente, uma unidade propriamente dita (HDD ou SSD) não se importava com a quantidade de porcentagens em uso, além de os SSDs poderem apagar seu espaço livre com antecedência. O desempenho da leitura será exatamente o mesmo e o desempenho da gravação poderá ser um pouco pior no SSD. De qualquer forma, o desempenho de gravação não é tão importante em uma unidade quase cheia, pois não há espaço para escrever nada.
Seu sistema operacional, sistema de arquivos e aplicativos, por outro lado, esperam que você tenha espaço livre disponível o tempo todo. Há 20 anos, era típico para um aplicativo verificar quanto espaço você tinha na unidade antes de tentar salvar seus arquivos lá. Hoje, os aplicativos criam arquivos temporários sem pedir sua permissão e geralmente travam ou se comportam de maneira irregular quando não conseguem fazê-lo.
Os sistemas de arquivos têm uma expectativa semelhante. Por exemplo, o NTFS reserva uma grande parte do seu disco para a MFT, mas ainda mostra esse espaço como livre. Quando você preenche seu disco NTFS acima de 80% de sua capacidade, obtém a fragmentação da MFT, que tem um impacto muito real no desempenho.
Além disso, ter espaço livre realmente ajuda contra a fragmentação de arquivos regulares. Os sistemas de arquivos tendem a evitar a fragmentação dos arquivos , encontrando o local certo para cada arquivo, dependendo do tamanho. Em um disco de quase preenchimento, eles terão menos opções e terão que fazer escolhas piores.
No Windows, também é esperado que você tenha espaço em disco suficiente para o arquivo de troca , que pode aumentar quando necessário. Se não puder, você deve esperar que seus aplicativos fiquem fechados à força. Ter muito pouco espaço de troca pode realmente piorar o desempenho.
Mesmo que o seu swap tenha tamanho fixo, ficar completamente sem espaço em disco do sistema pode travar o sistema e / ou torná-lo não inicializável (Windows e Linux), porque o sistema operacional espera gravar no disco durante a inicialização. Então, sim, atingir 90% do uso do disco deve fazer você considerar suas tintas em chamas. Nem uma vez vi computadores que falharam ao inicializar corretamente até que downloads recentes foram removidos para dar pouco espaço ao disco do sistema operacional.
fonte
Para SSDs, deve haver algum espaço restante, pois a taxa de reescrita aumenta e afeta negativamente o desempenho de gravação do disco. Provavelmente, o valor total de 80% é seguro para todos os discos SSD; alguns modelos mais recentes podem funcionar bem, mesmo com 90 a 95% da capacidade ocupada.
https://www.howtogeek.com/165542/why-solid-state-drives-slow-down-as-you-fill-them-up/
fonte
As "regras" variam de acordo com seus requisitos. E existem casos especiais, como, por exemplo, o ZFS: "Com 90% da capacidade, o ZFS alterna da otimização baseada no desempenho para a espacial, o que tem implicações enormes no desempenho". Sim, este é um aspecto de design do ZFS ... não é algo derivado por observação ou evidência anedótica. Obviamente, isso é menos problemático se o seu pool de armazenamento ZFS consistir apenas em SSDs. No entanto, mesmo com discos giratórios, é possível atingir 99% ou 100% quando você lida com armazenamento estático e não precisa de um desempenho de alto nível - por exemplo, sua coleção de filmes favoritos pessoal de todos os tempos, que nunca muda e onde segurança é prioridade 1.
Em seguida, btrfs - um caso extremo: quando o espaço livre fica muito baixo (alguns MByte), você pode atingir o ponto sem retorno. Não, excluir arquivos não é uma opção, pois você não pode. Simplesmente não há espaço suficiente para excluir arquivos. O btrfs é um sistema de arquivos COW (cópia na gravação) e você pode chegar a um ponto em que não pode mais modificar metadados. Nesse ponto, você ainda pode adicionar armazenamento adicional ao seu sistema de arquivos (um pen drive USB pode funcionar), excluir arquivos do sistema de arquivos expandido, encolher o sistema de arquivos e remover o armazenamento adicional novamente). Novamente, esse é um aspecto causado pelo design do sistema de arquivos.
As pessoas que podem fornecer "dados reais (sérios)" provavelmente são as que lidam com "armazenamento real (sério)". A resposta (excelente) de Twisty menciona matrizes híbridas (que consistem em grandes quantidades de rotação lenta barata, muitos discos rápidos, muitos SSDs ...) que são operados em um ambiente corporativo em que o principal fator limitante é a velocidade com que o administrador é capaz de solicitar atualizações. Passar de 16T para 35T pode levar 6 meses ... para que você acabe com relatórios com suporte sério que sugerem definir o alarme para 50%.
fonte
Existem muitos fatores que contribuem para o resultado em quantidades muito específicas da instalação. Portanto, não há um número rígido e rápido, isso só pode ser medido em função desses parâmetros. (É provavelmente por isso que outros usuários não relatam nenhuma pesquisa específica sobre esse assunto específico - muitas variáveis para compilar algo conclusivo.)
Hardware
Sistema de arquivo
Tipo de carga
fonte
Uma coisa a considerar com os acionamentos mecânicos é que o rendimento da borda externa é maior que o interior. Isso ocorre porque existem mais setores por revolução para a maior circunferência externa.
À medida que a unidade atingir a capacidade, o desempenho diminuirá porque apenas os setores internos mais lentos estarão disponíveis.
Para uma análise mais aprofundada, consulte https://superuser.com/a/643634
fonte
Depende do uso pretendido da unidade, mas, em geral, 20% a 15% de espaço livre é uma boa resposta para discos giratórios e 10% ou mais é bom para SSDs.
Se esta é a unidade principal do computador e os arquivos podem ser movidos, 20% de espaço livre deve impedir lentidão significativa. Isso permitirá espaço aberto suficiente em toda a unidade para que os dados sejam movidos e copiados conforme necessário. Uma unidade giratória funcionará melhor quando os locais livres estiverem mais próximos dos dados originais, enquanto em um SSD a localização física não afeta o desempenho diário. Portanto, a unidade giratória deve ter mais espaço livre por razões puramente de desempenho. No SSD, o espaço livre reduzido reduzirá a longevidade da unidade, mas não reduzirá o desempenho. Os SSDs tentam armazenar dados temporários e arquivos de download aleatório nos locais menos utilizados, para que possam equilibrar o uso da célula em toda a unidade; caso contrário, uma parte da unidade envelhecerá muito mais rapidamente que o restante.
Se for uma unidade de armazenamento de mídia ou de longo prazo, 5% a 10% livre deve ser suficiente e 10% seria preferível se for um disco giratório. Você não precisa de muito espaço livre, porque essa unidade raramente exige que os dados sejam movidos, portanto, o desempenho não é tão importante. O espaço livre é útil principalmente para permitir que setores defeituosos sejam descartados e substituídos e para permitir que os arquivos sejam mais contíguos.
Eu não aumentaria a capacidade de 95% da unidade por mais de um dia, a menos que haja um motivo muito bom e claro.
fonte