FreeBSD KVA/KVM tuning

zonelimit issues…
Igor Sysoev is at rambler-co.ru
Thu Apr 24 18:44:18 UTC 2008

——————————————————————————–

On Mon, Apr 21, 2008 at 03:27:53PM +0400, Igor Sysoev wrote:

> The problem that FreeBSD has small KVA space: only 2G even on amd64 32G
> machines.
>
> So with
>
> vm.kmem_size=1G
> # 64M KVA
> kern.maxbcache=64M
> # 4M KVA
> kern.ipc.maxpipekva=4M
>
>
> I can use something like this:
>
> # 256M KVA/KVM
> kern.ipc.nmbjumbop=64000
> # 216M KVA/KVM
> kern.ipc.nmbclusters=98304
> # 162M KVA/KVM
> kern.ipc.maxsockets=163840
> # 8M KVA/KVM
> net.inet.tcp.maxtcptw=163840
> # 24M KVA/KVM
> kern.maxfiles=204800

Actually, on amd64 it is possible to increase KVM up to 1.8G without
boot time panic:

vm.kmem_size=1844M
# 64M KVA
kern.maxbcache=64M
# 4M KVA
kern.ipc.maxpipekva=4M

Without descreasing kern.maxbcache (200M by default) and
kern.ipc.maxpipekva (~40M by default) you can get only about 1.5G.

So with 1.8G KVM I able to set

# 4G phys, 2G KVA, 1.8G KVM
#
# 750M KVA/KVM
kern.ipc.nmbjumbop=192000
# 504M KVA/KVM
kern.ipc.nmbclusters=229376
# 334M KVA/KVM
kern.ipc.maxsockets=204800
# 8M KVA/KVM
net.inet.tcp.maxtcptw=163840
# 24M KVA/KVM
kern.maxfiles=204800

Now KVA is split as

kernel code 8M
kmem_map 1844M
buffer_map 64M
pager_map 32M
exec_map 4.2M
pipe_map 4M
??? 60M
vm.kvm_free 32M

I leave unused spare 32M free KVA (vm.kvm_free) because some map
(unknown for me) after pipe_map may grow slightly. If vm.kvm_free will
become 0, kernel will panic.


Original from: http://lists.freebsd.org/pipermail/freebsd-net/2008-April/017737.html

歷史上的今天

About mtlin

I'm easygoing and sometimes sentimental, also can be very funny. Geek style but social. A Blogger, a Wikipedian and an Engineer.
This entry was posted in FreeBSD and tagged , , , , , , , , , , , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published.