Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 06 Jul 2002 22:02:14 -0700
From:      Darren Pilgrim <dmp@pantherdragon.org>
To:        Matthew Dillon <dillon@apollo.backplane.com>
Cc:        "Matthew D. Fuller" <fullermd@over-yonder.net>, ticso@cicely.de, freebsd-hackers@FreeBSD.ORG
Subject:   Re: How does swap work address spacewise?
Message-ID:  <3D27CB56.D5BEE938@pantherdragon.org>
References:  <20020705113532.GA11273@atrbg11.informatik.tu-muenchen.de> <20020705133515.GA295@HAL9000.wox.org> <20020705133837.GA513@HAL9000.wox.org> <20020705234126.GA12183@atrbg11.informatik.tu-muenchen.de> <3D2640A7.3EA2236B@pantherdragon.org> <20020706020656.GL48977@cicely5.cicely.de> <3D2762FE.9D9E0378@pantherdragon.org> <20020706215220.GG5512@over-yonder.net> <200207062334.g66NYIhS063812@apollo.backplane.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Matthew Dillon wrote:
>     The nominal limit for swap space is around 14 GB due to limitations
>     in available KVM.  There are three major limiting factors in the kernel:
> 
>     * The swap bitmap eats 2 bits per page of swap.  The bitmap is sized
>       to handle NSWAP (default 4) x size_of_largest_swap_partition.

Is NSWAP tied to the NSWAPDEV kernel option, or is it the actual number
of active swap devices?  If the prior, is setting NSWAPDEV to the
actual number of swap devices a useful for improving memory usage?  Is
NSWAPDEV just a compile-time tunable, or is there a sysctl to do the
same thing?

>     * The system has to keep track of pages that are swapped out.
>       The system reserves 8 x <physical_pages_in_system> worth of
>       KVM to keep track of swapped out pages.  A machine with 4G
>       of ram reserves enough KVA to hold 32GB worth of swapped out pages.
> 
>     * The system limits the size of the above zone to VM_SWZONE_SIZE_MAX,
>       which is typically around 70 MB of KVM (enough to hold 14 GB worth
>       of swap mappings).
> 
>     So the nominal limit is around 14 GB on a 32 bit architecture.  With
>     tuning this limit can be bumped up, but the practical limit is
>     going to be around 60GB unless you give the kernel more KVA (reducing
>     the amount of VM a user process can access).

Can VM_SWZONE_SIZE_MAX be tuned down as well, or does the kernel 
already handle this efficiently enough to keep it at a minimum useful
value sized relative to PHYS?

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3D27CB56.D5BEE938>