Benchmark de Filesystems

No meu vídeo "Filesystem (vale a pena saber?)" mencionei que iria disponibilizar uma lista de alguns teste básicos que podem ser realizados na escolha de um sistema de arquivo. Então, vamos para o arrebento e verificar o resultado do benchmark realizado.


Benchmark de sistema de arquivos


 Tudo beleza galera?
 No meu antigo blog eu cheguei a escrever um artigo sobre filesystems com o título de "Qual O Melhor Sistema de Arquivos?", tenho até uma foto com Ted T'so lá, porém acho que é um artigo que ficou incompleto e por fim desta vez fiz o vídeo para melhor abordar o assunto (ou abortar como um cara me falou semanas atras kkkkkk. Está certo que meu português não é lá essas coisas, mas convenhamos né).
 Caso ainda não tenha assistido o vídeo, ele pode ser verificado logo abaixo:





















 Como havia prometido no meu vídeo sobre "Filesystem (vale a pena saber?)" realizei alguns testes comparativos com alguns filesystems mais presentes em desktop para que todos possam saber o que cada um desses tem a oferecer. Vale repetir que realizei esses testes somente com alguns que são populares em desktop (populares não somente em desktop, mas fica entendido), mas eles podem muito bem ser realizado com qualquer filesystem (além de verificar quais resursos cada sistema de arquivo proporciona).


Para que tais testes sejam realizados, deve-se levar em consideração tudo: Seu hardware, distribuição que está sendo utilizada (não estou tratando aqui que uma é melhor do que a outra, mas tais coisas devem ser levadas em consideração).

 Então, levando tal em consideração, utilizei o seguinte:
  •  Intel Core2Duo E8400 de 3.0GHz
  •  8 Gigabytes de RAM
  •  Placa mãe ASUS (barramento 1333)
  •  Pendrive Kingston Technology DataTraveler 101 II de 8 Gigabytes.
  •  Distribuição Debian 8.1 (codenome Jessie), versão de 64 bits e a interface Mate.
  •  Os sistemas de arquivo que foram utilizados neste teste foram: Ext2/3/4, XFS, FAT e o NTFS.
  •  Utilizei dois tipos de arquivos, um grande e um pequeno. Sendo que considero aqui o arquivo grande uma imagem iso (a mesma que utilizei no vídeo) e o arquivo pequeno um arquivo odt de 188 kilobytes (padrão ODF que é um XML zipado como menciono no meu artigo "A Ameaça Que Os Arquivos Fechados Podem Causar").
  • Os comandos utilizados aqui no teste foram: wipefs (em alguns momentos para limpar a assinatura do dispositivo e evitar problemas), cfdisk ou fdisk para criação de partição no dispositivo, mkfs (para criar o sistema de arquivo a ser testado), df (para verificar o tamanho final de armazenamento da mídia removível), tune2fs -l ou dumpe2fs (para verificar a  quantidade de inodes disponíveis e o tamanhos dos blocos dos filesystems. Com esses dois comandos você pode verificar tudo sobre o sistema de arquivo), time seguido dos comandos cp/rm (para medir o tempo de gravação ou exclusão do arquivo), du (para verificar tomando do arquivo após gravação do arquivo em mídia).

 Todo os testes aqui realizados foram feitos não havendo mais nada em execução no sistema, somente um pts (um Pseudo Terminal de comandos que é invocado através da interface gráfica. Tudo deve ser levado em consideração durante um teste).

 Realizados os testes, gerei em uma planilha os seguintes resultados obtidos:

os resultados podem ser verificados a seguir.

 Podemos verificar nos resultados que cada um ofereceu uma certa vantagem em algum momento.
 Na ocupação em mídia após formatação do XFS que ficou em segundo lugar por pouco mais de 10 Mega Bytes (10236 para ser mais específico). Esses são resultados do tamanho total; ainda devemos considerar a parte do que o sistema de arquivo ocupa por sim devido aos seus recursos, como o EXT4 que ocupou pouco mais de 17 megabytes enquanto que o XFS ocupou pouco mais de 33 Megabytes.

Na parte de tamanho de blocos todos tiveram o mesmo resultado, porém essa foi uma formatação padrão. Na quantidade de inodes disponíveis todos também empataram.

No questão de tempo de gravação de arquivo (grande) em mídia (relevando que considerei um arquivo de 4.4GB como um arquivo grande nessa ocasião), o EXT4 foi o melhor, vindo a ganhar do XFS em pouco mais de 18 segundos. Ja se notarem o NTFS, ele levou absurdos (pasmem) quase 54 minutos para gravar o mesmo arquivo. Não estou brincando não e não estou tentando boicotar a Microsoft. Eu printei a tela para que possam conferir:

Esse foi o resultado do tempo de gravação do arquivo grande com o NTFS.

Fora isso, filmei o vídeo onde o pendrive estava em execução o tempo todo sendo que não havia nada em operação):





No tamanho final de arquivo o FAT foi o que apresentou menor tamanho de arquivo no final, porém isso não conta pois o FAT grava no máximo quase 4.2GB. Hoje em dia existe o ExFAT que não possui suporte a journaling, mas que permite gravação de arquivos maiores. O XFS e o NTFS foram os que apresentaram melhor aproveitamento nesta ocasião (mas mínima coisa em comparação ao EXT4. Coisa de 4K).

Na questão Tempo de remoção de arquivo (grande), o NTFS apresentou o melhor resultado que não foi lá assim grande coisa comparado ao XFS).

Passando para a o teste realizado com um arquivo pequeno (considero aqui um arquivo de 188K pequeno). No tempo de gravação de arquivo, o EXT3 apresentou o melhor resultado. No tamanho final em mídia, quase todos apresentaram o mesmo resultado (menos o EXT2 e o 3 que tiveram o arquivo do tamanho de 192K). No tempo de remoção do arquivo, todos apresentaram empate.

 A parte de remoção de arquivo em um sistema funciona da seguinte forma, quando excluímos um arquivo, o que acontece na verdade é que o sistema exclui somente seu cabeçalho. Logo o arquivo ainda está lá, porém ele fica ilegível (inacessível).
 Existe o comando lsattr em que podemos verificar os atributos dos arquivos e o comando chattr que podemos alterar esses atributos. Se alterarmos o atributo de um arquivo com opção -s no comando chattr, o comportamento de exclusão do arquivo se torna diferente, pois não é excluído somente seu cabeçalho. O que ocorre nessa ocasião é que o sistema enche o arquivo de zeros; logo ele é literalmente excluído.
 É possível ainda sim recuperar o arquivo por alguns meios, mas isso é outro assunto; o que quero notar aqui é o sistema de arquivo precisa ter esse recurso disponível para que isso seja realizado.

 Eu espero que tenham gostado e aprendido bastante. Não deixem de verificar o manual online do chattr e do lsattr:

man chattr
man lsattr

 Até a próxima. :-)

Comente com o Facebook:

Nenhum comentário:

Postar um comentário

Viu algum erro e quer compartilhar seu conhecimento? então comente aí.

Observação: somente um membro deste blog pode postar um comentário.

Marcadores

A pior história sobre Linux que já ouvi (5) A.I (1) ambiente gráfico (19) AMD (14) analise (10) Andriod (16) android (7) Apple (1) arm (4) artigo (5) aws (1) bc (23) benchmark (6) BetrFS (1) blackhat (1) BSDs (29) btrfs (32) bugs (2) Caixa de Ferramentas do UNIX (19) canto do Diego Lins (2) certificações Linux (7) Código Fonte (54) comandos (31) comp (1) compressores (5) container (7) CPU (19) cracker (1) criptografia (5) crowdfunding (9) cursos (24) daemons (13) Debian (31) desempenho (1) desenvolvimento (90) desktop (19) DevOps (3) DevSecOps (4) dic (1) Dica de leitura (90) dica DLins (2) dicas do Flávio (27) Dicas TechWarn (1) diet libc (3) diocast (1) dioliunx (3) distribuições Linux (14) Docker (12) DragonflyBSD (22) driver (1) ead Diolinux (2) edição de vídeo (5) embarcados (1) EMMI Linux (4) emuladores (9) endless (5) English interview (3) Enless OS (2) entrevista (17) espaço aberto (82) evento (6) facebook (1) Fedora (10) filesystem (82) financiamento coletivo (2) fork (4) fox n forests (4) FreeBSD (20) Funtoo Linux (13) games (93) gerenciadores de pacotes (4) glaucus (3) GOG (3) google (8) gpu (3) hacker (2) hardware (104) hash (1) helenos (3) I.A (1) init system (10) Intel (15) inteligencia artificial (1) IoT (1) ispconfig (1) jogos (37) kde (1) kernel (138) lançamento (64) leis (1) LFCS (1) libs (2) licenças (8) Linus (16) linus torvalds (2) Linux (194) linux foundation (3) linux para leigos (1) live (5) LPI (8) LTS (1) Mac (1) machine learning (1) matemática (9) mesa redonda (27) microcontroladores (1) microsoft (6) microst (1) muito além do GNU (162) musl (3) não viva de boatos (9) navegadores (5) NetBSD (7) newlib (1) nim (1) nintendo (1) novatec (17) novidades (1) nuvem (1) o meu ambiente de trabalho (3) off-topic (12) open source (84) OpenBSD (6) OpenShift (1) oracle (1) os vários sabores de Linux (43) padrim (2) palestras e eventos (5) partições (6) pentest (8) performance (1) pipewire (1) plan9 (1) playstation (1) processadores (30) professor Augusto Manzano (11) Programação (64) promoção (1) propagandas com Linux (8) ps4 (1) real-time. (1) Red Hat (23) redes (4) resenha nerd (4) Resumo da Semana do Dlins (2) resumo do Tux (19) retrospectiva Linux (1) risc-V (14) RISCV (13) rtos (1) runlevel (2) rust (12) segurança digital (24) servidor web (1) servidores (2) shell (8) shell script (7) sistema operacional (25) smartphones (3) Software livre e de código aberto (151) sorteio (3) Steam (10) Steam no Linux (8) supercomputadores (4) suse (6) systemd (7) terminal (88) terminal de comandos (17) toca do tux (1) toybox (26) tutorial (6) Tux (3) unboxing (7) UNIX (17) UNIX Toolbox (14) vartroy (1) vga (1) virtualização (2) vulnerabilidade (6) wayland (5) web (1) whatsapp (1) whitehat (1) Windows Subsystem for Linux (2) wine (14) WoT (1) yash (1) ZFS (15) zsh (3)