On Tue, Apr 14, 2015 at 11:00:52AM -0400, Przemek Klosowski wrote:
On 04/13/2015 11:34 PM, Zbigniew Jędrzejewski-Szmek wrote:
>OK, so swap 2x memory seems excessive. Actually swap with the same as
>memory should work *most* of the time. There's no guarantee that any
>amount swap will be enough, since it could all be filled by the time
>hibernation is requested, but we should try to cover most normal
>usage. But considering that swap will be slow on HDD, so users will
>most likely avoid using more than a small amount, and SDD are small,
>so it's expensive to provide bigger swap, the default that anaconda
>uses seems OK. An exception is for computers with small amount of RAM
>(<= 2GB?). There swaps is more likely to be filled and the default
>size for swap should imho be higher than the amount of RAM.
Exactly! remember that a typical disk speed is few tens of MB/s,
i.e. about 1 GB/min. I came to the conclusion that anything more
than 4GB is just counterproductive. Large swap just deceives us into
thinking that we can run jobs larger than the physical memory but
that is really not the case, just like Seymour Cray said [1].
The amount of swap
space used should be controlled by vm.swappiness
sysctl and kernel algorithms, not by making the swap small.
Maybe swap space should simply be max(4GB, $PhysicalMemory).
Actually, isn't 'swap to filesystem' still an option? if so, maybe
swap should be a constant 4GB, and hibernation should create an
appropriately sized file on the fly, join it to the swap and use
both.
I think it should be other way around: swap partition big enough to
hibernate, i.e. the size of RAM, and a dynamnically sized swap
file if more swap space is needed for non-hibernation data.
Zbyszek