Re: HOWTO: opgradering fra apache2 til apache22

From: Jesper Louis Andersen (none@jlouis--mongers.org.lh.bsd-dk.dk)
Date: Mon 02 Jan 2006 - 12:00:02 CET


Date: Mon, 02 Jan 2006 12:00:02 +0100
From: Jesper Louis Andersen <none@jlouis--mongers.org.lh.bsd-dk.dk>
To: bsd-dk@bsd-dk.dk
Subject: Re: HOWTO: opgradering fra apache2 til apache22

Erik Nordstrom Andersen wrote:

> # httpd -k restart
> Når apache starter får jeg en "[warn] (2)No such file or directory:
> Failed to enable the 'httpready' Accept Filter", som ser ud til at være
> harmløs.

Accept-filters er en lille fed feature, der mig bekendt ikke eksisterer
i andet end FreeBSD. Naar maskinen modtager en forbindelse via TCP skal
den have et accept(2)-kald og saa kan man ellers begynde at hive data ud
af den. Problemet er at man tidligere ofte var ude for at der ikke var
nogen data klar, saa man havde en masse kontekstskift mellem kerne og
userland.

Ideen i et accept-filter er at lave om paa det: Kernen har et filter,
der goer at en forbindelse foerst sendes til userland, naar en hel (http
  GET) query-string er tilgaengelig. Al mellemarbejde kan da goeres af
kernen og antallet af kontekstskift bliver kraftigt reduceret.

Jeg ved ikke hvor meget det hjaelper i praksis. Man kunne nemt
forestille sig at moderne TCP/IP-stakke laver noget sendfile(2)-agtigt[1]

Relevante man-pages (FreeBSD):

   man 9 accept_filter
   man 9 accf_http

Og tak saa lige Yahoo! for den lille guldklump ;)

Saa med henhold til ``harmloes'': Den er ikke harmloes paa en server der
befinder sig paa belastningsgraensen. Og dog, for en meget belastet
webserver skriger CLUSTERING!

[1] Bemaerk at kaldet er ikke-standardiseret. FreeBSD benytter
sendfile(2), Linux benytter en blanding af sendfile og TCP_CORK optionen
paa socket'en. Semantikken er totalt forskellig (yeah).



This archive was generated by hypermail 2b30 : Wed 15 Nov 2006 - 18:24:55 CET