Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Apr 2002 14:18:46 -0700 (PDT)
From:      John Kozubik <john@kozubik.com>
To:        freebsd-hackers@freebsd.org
Subject:   jail in 4.5-RELEASE: setrlimit() and blocked processes
Message-ID:  <Pine.BSF.4.21.0204171350020.90784-100000@www>

next in thread | raw e-mail | index | archive | help

This post contains two items I would like to raise awareness of:

---

First, postfix inside a jail in FreeBSD 4.5-RELEASE - postfix will compile
and install successfully, however when you run it, incoming mail generates
errors like this:

mail_queue_enter: create file incoming/298266.55902: File too large

and further, sending mail generates errors like this:

postdrop: warning: mail_queue_enter: create file maildrop/627930.56676:
File too large


It turns out that the setrlimit() call in postfix is not functioning
correctly under `jail`.  I have only verified this in FreeBSD 4.5-RELEASE.

You can solve this problem by removing the setrlimit() call in postfix,
with the following patch:


http://www.kozubik.com/published/misc/postfix_patch_fbsd45jail


(patch was provided by Allan Saddi <asaddi@philosophysw.com> )

Please note that when running postfix in this manner there is no upper
bound on incoming mail messages.

---

The second item I would like to address is a large number of blocked
processes showing up in `vmstat` on systems running a large number of
jails.  At first I thought it was just an unusually large number of
blocked processes for a machine with XYZ load on it.  However, as I test
with more and more machines running larger numbers of jails, it seems like
there is an interesting correlation between the number of blocked
processes and the number of jails running.

For instance:

 procs 
 r b w
 4 29 0 
 0 29 0 
 2 29 0 
 3 29 0 

The above was produced on a machine running 30 jails.  The correlation may
be imaginary - in fact I know of another machine on which I am running
only 12 jails that has 20 blocked processes on a constant basis, however I
discount those results somewhat because the machine itself is, in my
opinion, slightly underpowered.

Correlation or not - this is a large number of blocked processes.  What
makes this problem even stranger is that I am not able to identify the
processes that are actually blocked for I/O.  Please note (from the same
machine with 29 blocked processes above):

# ps auxww | awk '{print $8}' | grep D | wc -l
 9

I would expect blocked processes to have a 'D' in the STAT column ... but
only 9 processes do, and they are all special processes:

root         0  0.0  0.0     0    0  ??  DLs   4Apr02   0:00.00  (swapper)
root         1  0.0  0.0   552  208  ??  ILs   4Apr02   0:40.61 /sbin/init
--
root         2  0.0  0.0     0    0  ??  DL    4Apr02   0:13.58  (aac0aif)
root         3  0.0  0.0     0    0  ??  DL    4Apr02   0:37.63
(pagedaemon)
root         4  0.0  0.0     0    0  ??  DL    4Apr02   0:00.00
(vmdaemon)
root         5  0.0  0.0     0    0  ??  DL    4Apr02   2:43.83
(bufdaemon)
root         6  0.0  0.0     0    0  ??  DL    4Apr02 151:57.43  (syncer)
root         7  0.0  0.0     0    0  ??  DL    4Apr02   3:35.23  (vnlru)

swap usage is 0%, there is plenty of free memory, and iostat does not
reveal any over utilization of the disks.  There is no measurable or
perceived performance penalty as a result of this ... except, again, in
the `vmstat` output.


I have no explanation for this.  Comments ?

-----
John Kozubik - john@kozubik.com - http://www.kozubik.com


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?Pine.BSF.4.21.0204171350020.90784-100000>