Como encontrar o tamanho da página das memórias físicas do userspace?

3

Eu quero entender o tamanho da página, o tamanho do setor, o tamanho do bloco (se aplicável) de uma unidade flash USB. Existe uma maneira de eu inspecionar aqueles com o Ubuntu?

mount /dev/sda1 /mnt
?
umount /dev/sda1

Editar

Estou interessado em escrever testes que possam fornecer mais cobertura no lado do host. Quero testar gravações de tamanhos menores, iguais e maiores que o tamanho da página da parte flash e o tamanho da página da DRAM e / ou do eMMC do lado do host.

Como posso encontrar o tamanho de página físico (não virtual) do flash USB, da DRAM do meu dispositivo e do eMMC do meu dispositivo?

    
por tarabyte 01.07.2015 / 21:29

1 resposta

1

Eu não tenho certeza se isso importa muito. Você poderia fdisk -l /dev/sda ; No entanto, geralmente /dev/sda é seu disco rígido ou disco SSD, e o pen drive USB seria, por exemplo, /dev/sdi (em seguida, execute fdisk -l /dev/sdi ). Faça um dmesg apenas depois de ligar o stick para descobrir.

Tenha cuidado: muitas vezes /dev/sda é o disco do seu sistema.

Quando um sistema de arquivos é montado a partir da chave USB, você pode executar fsstat (1) se você tem isso (por exemplo, fsstat /dev/sdi1 ) e também df (1)

Na prática, você provavelmente não precisa, e não conseguirá obter de forma confiável e fiel, a página, o setor, os tamanhos dos blocos de um pendrive.

No entanto, é melhor usar buffers não muito pequenos quando ler (2) -ing ou escreva (2) . Sugiro usar buffer de 32Kbytes ou 64Kbytes para operações de E / S de chave USB. Se você está passando por um sistema de arquivos, a maioria dos dados está, de fato, no cache de páginas (e provavelmente será liberado em sync ou umount time).

Você provavelmente não pode encontrar facilmente o tamanho da página física dos seus dispositivos (em particular, porque o hardware provavelmente não está dando nenhuma maneira de consultá-lo). Se isso for importante, mergulhe nas especificações técnicas completas do seu hardware (e não ficarei surpreso se você precisar assinar um NDA para obtê-las).

Você pode considerar o uso de comandos para consultar o hardware: hwinfo , lsusb , etc ... (mas acredito que eles não fornecem o que você deseja, porque o hardware em si não tem esses recursos)

Você poderia simplesmente comparar a operação de E / S com vários tamanhos de buffer (por exemplo, a potência de dois de 512 bytes a 1 Megabyte)

    
por 01.07.2015 / 21:35