handle tiny buffers more gracefully using 16, 256 and sysconf(_SC_PAGESIZE) for size