[Systems] Discovery_One Was a.sl.o migration.

Bernie Innocenti bernie at codewiz.org
Wed Nov 11 14:17:08 EST 2009

El Thu, 05-11-2009 a las 10:25 +0100, Sascha Silbe escribió:

> > I _think_ that our current bottle neck is our Apache server.  Because
> > we are running many services, we have several Apache mod_* enabled.
> > This gives us heavy  Apache processes.
> In theory, Linux is supposed to create COW (Copy-on-write) mappings on 
> fork(), i.e. only memory that gets modified by the child process will be 
> newly allocated.
> How well that works in practice with Apache I don't know, but maybe 
> bernie does.

Apache modules are like shared libraries. The overhead of each library
you load is 4 more VMA (virtual memory areas) in the process address
space: code, read-only data, data and bss. On fork, there may be a tiny
overhead to increment and decrement their use-count.

Our Apache instance has 648 maps, many of which come from locale files
and non-optional libraries. A minimal Apache instance on Karmic has 200
maps. On Rawhide, 334 maps.

That said, I think this overhead is really negligible compared to all
the work required to serve a request. I'd be more concerned for the cost
of each virtual host as well as global rewrite rules, aliases and
filetypes. Each request has to be matched against a a long series of
patterns before being dispatched to the proper handler.

The above overhead may sound huge--and it probably is for serving static
content. However, it's unmeasurable noise compared with the 20-30ms
required to process a PHP page of a non-trivial application like Remora
or Mediawiki. And PHP is still the most efficient server-side language
you could use.

   // Bernie Innocenti - http://codewiz.org/
 \X/  Sugar Labs       - http://sugarlabs.org/

More information about the Systems mailing list