Making a dynamically-linked root
mike at FreeBSD.org
Tue Jun 3 22:29:32 PDT 2003
Terry Lambert <tlambert2 at mindspring.com> writes:
> Peter Jeremy wrote:
> > On Mon, Jun 02, 2003 at 02:25:43PM -0700, Matthew Dillon wrote:
> > > start!). Running certain daemon startups in the background might yield
> > > a significant overall improvement in startup times.
> > This isn't a definite win. I know in the past it used to actually
> > slow things down: To take your example, having both sshd and sendmail
> > attempting to fault-in from disk in parallel will thrash both the disk
> > and cache far more than sshd and sendmail sequentially faulting in. A
> > very large number of daemons trying to start in parallel will also
> > stress the scheduler.
> The main problem we ran into with doing this on the InterJet
> was thatsome services started later would finish starting
> before earlier services on which they were dependent.
> It's not very good, for example, for sendmail to try to get
> its name that it's going to use in conversations with its
> peers from a DNS that's not up yet, or for it to try to log
> an error about that failure to a syslogd that's not up yet,
> or for cron to try to send a mail message about a job that's
> just completed, but sendmail isn't up, etc..
> People try to pretend that the dependencies that exist are
> between programs, but they're actually between service
> providers and service consumers, and largely independent of
> the programs providing the services. On top of that, the
> dependencies tend to be both hard and soft, e.g. it's possible
> to continue to offer a degraded service, rather than failing
> outright, if some dependent services aren't there (e.g. you
> can log by IP address if DNS isn't up to provide reverse
> name mappings to look pretty in your logs, etc.).
I think if we identify the dependency graph we can restrict the
parallelization to only the leaf nodes. Granted, we're probably
missing some non-obvious dependencies in rc.d like the cron/sendmail
one you mentioned.
More information about the freebsd-arch