hdparm -I /dev/sda
output:
Logical Sector size: 512 bytes
Physical Sector size: 512 bytes
stat
somefile output:
Size: 509 Blocks: 8 IO Block: 4096 regular file
Why IO Block is 4096 ? Isn't it the same as physical sector size which is 512 bytes ?
Short answer... generalization...
In the old days, with small capacity, slow hard disk drives:
logical sector = physical sector = IO block = 512 bytes
In current days, with high capacity, fast hard/SSD disk drives:
logical sector = physical sector = 512 bytes, IO block = 4096
Drives with IO block size of 4096 are called "Advanced Format" drives. Any read request will always read 1 block minimum (or 8 sectors). This way, sector 1 is ready to process, and sector 2-8 are ready, if need be, without a slow disk read for the next block(s). This speeds up overall data transfers, and keeps block numbers at a manageable number.