Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 Apr 2003 12:29:24 -0400 (EDT)
From:      Support <support@netmint.com>
To:        stable@freebsd.org
Subject:   load testing and tuning a 4GB RAM server
Message-ID:  <20030406120112.I11095-100000@netmint.com>

next in thread | raw e-mail | index | archive | help
Hello everyone,

First of all, great job on the 4.8-R. We have been a long standing user of
FreeBSD and are very happy with everything.

Now my question. I am trying to stress test a new Dell PowerEdge server
and find the limits of its hardware and my tuning. Here are the server
stats:

* 2x Xeon 2.8 with SMP compiled, hyperthreading NOT compiled in kernel
* 4 GB of RAM, 8 GB of swap on Raid 1 (15K RPM drives) for speed
* User Data is on Raid 5 in a detached PowerVault

Contents of /boot/loader.conf:

kern.ipc.maxsockets=32768
kern.ipc.nmbclusters=32768
kern.ipc.nmbufs=131072
kern.ipc.nsfbufs=6656
kern.ipc.shm_use_phys=1
kern.maxfiles=32768
kern.maxproc=8192
kern.maxswzone=33554432
kern.nbuf=16384
kern.ncallout=32768
kern.vm.kmem.size=268435456
kern.vm.pmap.shpgperproc=2048
net.inet.tcp.tcbhashsize=16384

Contents of /etc/sysctl.conf:

kern.ip.somaxconn=4096
vm.v_free_min=131072
vm.v_free_target=262144
vm.f_free_reserved=32768
vm.v_free_severe=65536
kern.ps_showallprocs=0

Some info from kernel config:

maxusers 0
options KVA_PAGES=512
options NSWAPDEV=1
(the rest is pretty much my hardware, firewall and other irrelevant stuff)

This has been copied by hand as the machine is not networked yet, so
please excuse any possible typos.

The system does a make -j8 world in about 15 minutes. Make -j500
buildworld takes about an hour or less, and the server load skyrockets to
200 or so.

Now here's the kicker. I started 7,500 (yes 7.5 K :) lynx processes to eat
up available memory and started doing the -j500 buildworld. The machine
went into swap about a gig but everything completed fine. It didn't even
seem sluggish in controls. I feel I am not pushing it enough.
Unfortunately, setting -j over 500 doesn't add any load.

If I randomly kill and start 1000s of processes at once, with the total
running hovering around 8000 at all times, I can push the "load" on this
machine to ridiculous numbers like 700. It can do that while doing a
stressful buildworld.

I guess the good thing is this machine safely goes into swap when
exhausting its 4 gigs and that tells me everything is OKay.

sysctl -a |grep kvm shows about 2 GB of memory allocated to kernel and
somewhere between 0.7 GB to 0.9 GB free depending on whether the system
just booted or is running 8000 processes.

Any ideas? Comments? Is my tuning decent, or would you change anything
else? This server is to be a very loaded web/database server.

I will be happy to hear your thoughts.

Please cc: me on all messages because I am not presently subscribed to the
list.

Thanks again guys,

Andrew

NetMint, LLC



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030406120112.I11095-100000>