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.


-- 
Igor Sysoev
http://sysoev.ru/en/


More information about the freebsd-net mailing list