Entendendo as saídas stat, du e ls -l no meu nfs mount

1
ls -l f.txt
-rwxrwxr-x 1 abc abc 1161 Sep  1 02:02 f.txt

stat f.txt
  File: 'f.txt'
  Size: 1161        Blocks: 34         IO Block: 524288 regular file
Device: 38h/56d Inode: 6448956669  Links: 1
Access: (0775/-rwxrwxr-x)  Uid: ( 1024/   carle)   Gid: (  100/   users)
Access: 2017-09-09 02:02:36.000000000 -0700
Modify: 2017-09-09 02:02:36.000000000 -0700
Change: 2017-09-11 20:42:00.709807459 -0700

du -h f.txt
17K wiki.txt
  1. Por que o f.txt está ocupando 17K (17408 bytes) no disco?
  2. Qual é o tamanho do bloco IO? Por que ele tem 524288 bytes e não é igual ao tamanho do bloco do sistema de arquivos (supondo que o tamanho do bloco do sistema de arquivos seja 17K)?

O que está acontecendo aqui?

    
por abc 12.09.2017 / 06:26

2 respostas

1

  1. Why is f.txt occupying 17K (17408 bytes) on disk?

Suponho que você esteja se referindo à diferença do tamanho relatado por ls -l f.txt e os blocos ocupados. Normalmente, esses números são muito próximos uns dos outros. Como Sorcha já mencionou, o arquivo ocupa 34 blocos e cada bloco relatado aqui normalmente tem 512 bytes. Você pode verificar isso com stat -c "%B" f.txt . Se você fizer as contas, receberá 17408 bytes.
Normalmente, os sistemas de arquivos Linux têm um tamanho de bloco de 4096 bytes, então qualquer coisa abaixo de 512 bytes alocará 4096 bytes ou 8 * 512 bytes no disco, que é o menor tamanho alocável do sistema de arquivos. No seu caso, parece que o tamanho do bloco do sistema de arquivos é de 17kbytes. Para esclarecimentos adicionais, você teria que verificar o sistema de arquivos no servidor NFS onde os arquivos estão armazenados.

  1. What is IO Block size? Why is it 524288 bytes long and is not equal to filesystem block size (assuming file system block size is 17K)?

O que você vê aqui é, tirado de man stat , a dica de tamanho de transferência de E / S ideal e, no caso do NFS, isso se refere ao tamanho / tamanho opção de montagem do NFS em vez do tamanho do bloco do sistema de arquivos que normalmente é 4096 bytes. Execute stat f.txt no servidor NFS, que mantém o sistema de arquivos no disco, para ver a diferença.

    
por 12.09.2017 / 11:20
0

Why is f.txt occupying 17K (17408 bytes) on disk ? What is IO Block size ?

Porque o tamanho do bloco da partição é de 17408 bytes. Assim, seus arquivos serão divididos em parte desse tamanho e o arquivo que tiver um tamanho menor que 17k ocupará 1 bloco, então 17k.

Why is it 524288 bytes long and is not equal to filesystem block size (assuming file system block size is 17K) ?

Porque o tamanho do bloco do seu disco rígido é de 512 bytes. E se você fizer 34x512, você terá 17408 bytes do tamanho do seu sistema de arquivos.

E o bloco IO é o índice do seu bloco e não o tamanho dele

    
por 12.09.2017 / 08:23