The kernel does not buffer reading and writing, what do you think ... It supports the "page cache", which contains pages from disk. You cannot manipulate its size (well, not directly, anyway); the kernel will always use all available free memory for the page cache.
You need to explain what you are actually trying to do. If you need some control over the amount of data that the kernel preliminarily retrieves from disk, try searching for "linux readahead". (Hint: blockdev --setra XXX )
If you need some control over how long the kernel will contain dirty pages before releasing them to disk, try searching for "linux dirty_ratio".
A particular application can also completely bypass the page cache using O_DIRECT , and can exercise some control over it with fsync , sync_file_range , posix_fadvise and posix_madvise . ( O_DIRECT and sync_file_range are Linux dependent, the rest are POSIX.)
You can ask a more correct question if you first learn about the Linux VM subsystem, especially the page cache.
source share