My machine has roughly 8GB of RAM. Why is
min_free_kbytes set to 67584? The kernel code comment says I should expect to see
min_free_kbytes set to around 11584. It also says the largest it would set it to is 65536.
$ cat /proc/sys/vm/min_free_kbytes 67584 $ free -h total used free shared buff/cache available Mem: 7.7Gi 3.2Gi 615Mi 510Mi 3.9Gi 3.7Gi Swap: 2.0Gi 707Mi 1.3Gi $ grep -r min_free_kbytes /etc/sysctl* # No manual configuration $ $ uname -r # My kernel version 5.0.17-200.fc29.x86_64
/* * Initialise min_free_kbytes. * * For small machines we want it small (128k min). For large machines * we want it large (64MB max). But it is not linear, because network * bandwidth does not increase linearly with machine size. We use * * min_free_kbytes = 4 * sqrt(lowmem_kbytes), for better accuracy: * min_free_kbytes = sqrt(lowmem_kbytes * 16) * * which yields * * 16MB: 512k * 32MB: 724k * 64MB: 1024k * 128MB: 1448k * 256MB: 2048k * 512MB: 2896k * 1024MB: 4096k * 2048MB: 5792k * 4096MB: 8192k * 8192MB: 11584k * 16384MB: 16384k */