Work out free memory estimate instantly with clear inputs, formula shown and shareable results.
Summing RSS across processes overstates memory use because shared pages — libraries, the binary itself, copy-on-write pages after fork — are counted once per process. Subtracting the shared portion gives a far more realistic figure, which is why PSS or the kernel's own accounting should be used rather than adding up ps output.
Shared-page adjustment
naive = processes x RSS; actual = processes x (RSS - shared) + shared; double counted = naive - actual
Proportional set size: each shared page is divided among the processes mapping it, so summing PSS across all processes gives a total that does not double count.
They share almost all their memory with the parent through copy-on-write, so RSS reports the full amount for each while actual incremental use is small.