: What exactly is missing/misdesigned?
As I understand, Linux always makes random page swapouts,
that is ideal (though I am not sure) for desktop
applications. But for applications running in background
and using large volumes of virtual memory this algorithm breaks.
Linux practically does not coalesce swapins/swapouts.
When I "swap" by hands, I get performance close to one
achieved by kernel swapping algorithm used by SounOSes and Digital
(It is difficult to compare results on different hardware,
so that I compare curves performance(used virtual memory)).
It allows to conclude, that other unices use an adaptive
swapping algorithm. It would be very interesting to understand
why FreeBSD wins, but studying BSD sources is pretty boring business.