Hello all, sorry for the big mail that follows.

These are my first attempts at fine tuning and stress testing in OpenBSD
so excuse my ignorance.
I am stress testing BIND as a resolver on Linux (CentOS 6) and OpenBSD
(5.0 release). I will evaluate unbound since this will be included
in base also later. I use BIND that comes with the operating systems
(9.4.2-P2 in base for OpenBSD and bind-9.7.3 rpm that comes with
CentOS 6), however this is rather irrelevant for my questions. I am
trying to fill as much as I can in BIND's cache and I use 2 VMs with
identical configuration (2 CPUs, 8GB RAM) for the systems to perform the
tests.  
The tests are simple shell scripts running from a couple of clients that
generate random names and ask (using dig(1)) for various RRs, most of them
won't exist so the nameserver should cache a negative response. I have
increased the caching ttl configs to both systems as

        # 7 days max ttls for the stress tests
        max-ncache-ttl 604800;
        max-cache-ttl 604800;
 
I run the tests for a couple of days, identical load on both
systems. Here is the relevant top(1) and ps(1) output on both systems:

OpenBSD
---------
load averages:  0.39,  0.41,  0.40                                         
openbsd-dns 14:23:05
37 processes:  36 idle, 1 on processor
CPU0 states:  4.2% user,  0.0% nice,  2.2% system,  1.8% interrupt, 91.8% idle
CPU1 states:  3.4% user,  0.0% nice,  3.8% system,  0.2% interrupt, 92.6% idle
Memory: Real: 609M/1231M act/tot Free: 6728M Cache: 551M Swap: 0K/502M

  PID USERNAME PRI NICE  SIZE   RES STATE     WAIT      TIME    CPU COMMAND
31077 named      2    0  592M  594M sleep/1   select  217:52 12.65% named
 1970 _pflogd    4    0  728K  384K sleep/1   bpf       0:34  0.00% pflogd
 1642 root       2    0 1240K 2124K sleep/0   select    0:29  0.00% sendmail
 ...

kzorba@openbsd: ~ ->ps -ax -v | head   
  PID STAT       TIME  SL  RE PAGEIN   VSZ   RSS   LIM TSIZ %CPU %MEM COMMAND
31077 S     216:21.22   0 127      7 606228 608260 8145988 1292 13.2  7.3 
/usr/sbin/named
10103 Is      0:00.21 127 127      0  3500  3120 8145988  284  0.0  0.0 sshd: 
kzorba [priv] (sshd)
32112 S       0:00.53   5 127      0  3500  2316 8145988  284  0.0  0.0 sshd: 
kzorba@ttyp0 (sshd)
23004 Is      0:00.02 127 127      0  3420  3136 8145988  284  0.0  0.0 sshd: 
kzorba [priv] (sshd)
 1816 S       0:00.06   0 127      0  3420  2292 8145988  284  0.0  0.0 sshd: 
kzorba@ttyp3 (sshd)
15380 Is      0:00.02 127 127      0  3376  3160 8145988  284  0.0  0.0 sshd: 
kzorba [priv] (sshd)
21925 Is      0:00.16 127 127      0  3372  3144 8145988  284  0.0  0.0 sshd: 
kzorba [priv] (sshd)
 3237 I       0:00.08 127 127      0  3344  2336 8145988  284  0.0  0.0 sshd: 
kzorba@ttyp2 (sshd)
12462 I       0:00.40  22 127      0  3340  2296 8145988  284  0.0  0.0 sshd: 
kzorba@ttyp1 (sshd)

CentOS 6 Linux
---------------
top - 14:24:11 up 15 days, 23:29,  3 users,  load average: 0.00, 0.00, 0.00
Tasks: 114 total,   1 running, 113 sleeping,   0 stopped,   0 zombie
Cpu(s):  3.1%us,  2.4%sy,  0.0%ni, 92.8%id,  0.0%wa,  0.3%hi,  1.4%si,  0.0%st
Mem:   8062104k total,  5052532k used,  3009572k free,   144560k buffers
Swap:  5486188k total,        0k used,  5486188k free,   218556k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
                            
19542 named     20   0 4582m 4.3g 2564 S 11.6 55.3 193:28.88 named              
                            
    1 root      20   0 19328 1528 1220 S  0.0  0.0   0:00.77 init               
                            
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd           
                            
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.06 migration/0        
                            
    4 root      20   0     0    0    0 S  0.0  0.0   0:16.42 ksoftirqd/0        
       
...

kzorba@linux~->ps aux | head -1
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
kzorba@linux~->ps aux | grep named
named    19542  6.7 55.4 4692936 4468528 ?     Ssl  Apr18 194:02 
/usr/sbin/named -u named -t /var/named/chroot

I understand the kernel VM layers are completely different, but how come
the named process on OpenBSD for the same load consumes so low resident
memory? Also, why VZS < RSS on OpenBSD?
The general question I am trying to answer is, can BIND utilize all
available memory on the system (so I can arrange the amount of memory
when I order the servers).

I understand I need reading. Any pointers to documentation or hints are
highly welcome.

Regards,

Kostas

-- 
Kostas Zorbadelos               
twitter:@kzorbadelos            http://gr.linkedin.com/in/kzorba 
----------------------------------------------------------------------------
()  www.asciiribbon.org - against HTML e-mail & proprietary attachments
/\  

Reply via email to