I need to find out what the kernel block size is from vmstat output. I am specifically looking for kernel block size as defined in Block devices and block sizes. There it says all Linux blocks are currently 1024 bytes, but this is not true for old kernels.

Is there a command I can use to view the kernel block size?

  • 1
    Why? What are you trying to do? – ewwhite Oct 18 '12 at 0:55
  • I am trying to read the vmstat output in a meaningful way. Right now I can see blocks in and blocks out, but that does not tell me how much that is in terms of size. I would like to know if 512 B = 1 block or 1KB = 1 block, or something else. – dabest1 Nov 2 '12 at 17:36
  • 1
    Linux uses 4KiB blocks almost universally. – vonbrand Jan 24 '13 at 19:17

man 8 vmstat says:


    All linux blocks are currently 1024 bytes.

From sysstat/common.c

        /* One can also use getpagesize() to get the size of a page */
        if ((size = sysconf(_SC_PAGESIZE)) == -1) {

From unistd.h

./unistd.h-/* Return the number of bytes in a page.  This is the system's page size,
./unistd.h-   which is not necessarily the same as the hardware page size.  */
./unistd.h:extern int getpagesize (void)  __THROW __attribute__ ((__const__));
  • As I mentioned in my question, I think this applies to current versions of Linux only, but does not apply to older kernels. Thus I am asking if there is a command or configuration which will show the actual block size. – dabest1 Jan 30 '14 at 23:16
  • Don't be afraid to look at the code. – user55518 Jan 30 '14 at 23:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.