Bug #204

Better oom-survival overall

Added by Dave Täht on Jul 10, 2011. Updated on Apr 21, 2012.
In Progress High Dave Täht

Description

while I have patched xinetd to run with oom=1000, when it forks it cannot seem to reset the oom value of the forked process back to a sane value. (I have not folded this patch into the build yet, because of this)

Secondly, once that actually works, oom-protecting - or not - more stuff would be desirable.

Dropbear could run out of xinetd for sure… rsync already runs out of xinetd, netperf does also but some tests fail on the svn version.

Perhaps git-daemon…

Definately some sensors…

It would be great of lighttpd could run out of xinetd - or some web server - as you only need the web server running rarely… iperf -s doesn’t work out of xinetd either….

nearly every daemon could run out of something like xinetd (I’m not sold on xinetd, or init, but
leaving processes around, unmonitored, is a sure recipe for eventual failure) Monit maybe. systemd and launchd are way too big and overdesigned for this task.

History

Updated by Jim Gettys on Jul 19, 2011.
Off the wall idea: I wonder what size Lennart Poettering’s systemd is? It’s like inetd on steroids, and applicable to things other than network services….
Updated by Dave Täht on Jul 19, 2011.
I looked at both systemd and launchd, shuddered, and moved on. I’m not letting lennart’s design philosophy anywhere near an embedded platform.

that said I have half a patch for xinetd to better control the oom-killer, but for some reason it couldn’t set child processes to anything other than 0 or 1000. I liked very much that it could set itself to 1000, however, and I thought about putting it in regardless of the problems.

if anybody wants to play with it, I’ll upload it here.

Updated by Dave Täht on Jul 31, 2011.
Updated by Dave Täht on Aug 11, 2011.
Part 1 of this - getting xinetd to run with the oom killer disabled… is done.

Part 2 is to get more stuff into inetd.

Updated by Dave Täht on Aug 11, 2011.
root@sinope:/proc# ps | grep xinetd
3078 root 1208 S xinetd
3675 root 1640 S grep xinetd
root@sinope:/proc# cd 3078/
root@sinope:/proc/3078# ls
auxv exe mem oom_adj stat
cmdline fd mountinfo oom_score statm
comm fdinfo mounts oom_score_adj status
cwd limits mountstats personality task
environ maps net root wchan
root@sinope:/proc/3078# cat oom_score_adj
-1000
Updated by Dave Täht on Aug 11, 2011.
Actually, the fix I put in place makes the parent process -1000, which is what we want.

But no matter what I try, it also makes all the child processes -1000.

Ripped patch out of build.

Updated by Dave Täht on Sep 2, 2011.
as much as I would like to address this in the 1.0 it needs to be thunk through carefully and harmonized with stuff run out of init.
Updated by Dave Täht on Apr 21, 2012.

This is a static export of the original bufferbloat.net issue database. As such, no further commenting is possible; the information is solely here for archival purposes.
RSS feed

Recent Updates

Oct 20, 2023 Wiki page
What Can I Do About Bufferbloat?
Dec 3, 2022 Wiki page
Codel Wiki
Jun 11, 2022 Wiki page
More about Bufferbloat
Jun 11, 2022 Wiki page
Tests for Bufferbloat
Dec 7, 2021 Wiki page
Getting SQM Running Right

Find us elsewhere

Bufferbloat Mailing Lists
#bufferbloat on Twitter
Google+ group
Archived Bufferbloat pages from the Wayback Machine

Sponsors

Comcast Research Innovation Fund
Nlnet Foundation
Shuttleworth Foundation
GoFundMe

Bufferbloat Related Projects

OpenWrt Project
Congestion Control Blog
Flent Network Test Suite
Sqm-Scripts
The Cake shaper
AQMs in BSD
IETF AQM WG
CeroWrt (where it all started)

Network Performance Related Resources


Jim Gettys' Blog - The chairman of the Fjord
Toke's Blog - Karlstad University's work on bloat
Voip Users Conference - Weekly Videoconference mostly about voip
Candelatech - A wifi testing company that "gets it".