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>