To start with, I had several notes and questions
about the English original (which I posted separately).
Thus my review for the German version will likely be
incomplete, as I need responses to these questions
before being able to rate the translation of the
corresponding sections.
> <p>Der Apache 2.0 ist ein universeller Webserver mit einem
> ausgewogenen Maß an Flexibilität, Portierbarkeit und
> Leistungsfähigkeit. Zwar wurde er nicht speziell für neue
> Benchmark-Höchstwerte entwickelt, dennoch erweist er sich im
> praktischen Einsatz als ein Hochleistungsserver.</p>
These kinds of "political statements" should be trans-
lated absolutely literal, as if they were part of a
contract or license agreement. Even small deviations
can give a reader the impression that Apache claims
to be what it is not.
I try this section myself:
"Apache 2.0 ist ein Allzweck-Webserver, der entworfen
wurde, um ein ausgewogenes Ma� an Flexibilit�t,
Portierbarkeit und Leistungsf�higkeit zu bieten.
Obwohl Apache 2.0 nicht speziell daraufhin ausgelegt
wurde, neue Benchmark-H�chstwerte zu erreichen, ist
er dennoch in der Lage, in vielen praktischen Einsatz-
f�llen eine hohe Performance zu liefern."
('Hochleistungsserver' = 'high performance server' is
exactly _not_ what Apache claims to be, but it still
happens to be quite fast in many real life situations.)
> <p>Im Vergleich mit der Apache-Version 1.3 enthält er viele neue
> ergänzende
"neue" and "erg�nzende" would be a duplicate.
I suggest you rather use "zus�tzliche" for these two.
> des Betriebssystem, während andere die Schaffung eines ausgewogenen
> Verhältnisses zwischen Funktionalität und Geschwindigkeit
> erlauben.</p>
Nope, but "..., w�hrend es andere dem Administrator
erlauben, _auf_Kosten_von Funktionalit�t zus�tzliche
Geschwindigkeit zu erzielen."
"to trade functionality for speed" isn't "make a
balance between functionality and speed" but "to
reduce functionality in order to increase speed".
<p>Der zentrale Hardware-Aspekt für die Webserver-Leistung ist der
RAM-Speicher.
"RAM-Speicher" is a "wei�er Schimmel" because the
"M" of "RAM" already means "memory" = "Speicher".
> Ein Webserver sollte niemals Swapping durchführen müssen,
Interestingly enough you didn't translate "swapping"
here. It _is_ a technical term, yet a translation
might be possible:
"Ein Webserver sollte niemals dazu gezwungen sein,
Hauptspeicherinhalte auf langsamere Speichermedien
auslagern zu m�ssen." (Which would explicitly explain
_why_ this would be a bad idea.)
> die den Benutzer ungeduldig werden lässt.
Just translate literally and say:
"welcher der Benutzer nicht mehr als 'hinreichend
schnell' empfinden wird."
> Der Benutzer unterbricht dann den Ladevorgang und löst ihn erneut aus,
This is a very abstract translation.
Literally it would be
"Der Anwender klickt dann auf 'Stop' und (danach auf)
'Neu laden', wodurch _er_ die Serverbelastung noch
erh�ht."
> Sie können und müssen
"should" is not "must".
So: "m�ssen" => "sollten".
> die maximal zu bedienende Anzahl der Clients kontrollieren, damit der Server
> nicht zu
> viele Kindprozesse starten muss, die das Swapping verursachen.
It is not the child processes that cause the swapping,
it is the _creation_ of these processes (because each
new child process requires additional RAM, and RAM is
limited by the available hardware).
Literally: "Sie k�nnen - und sollten - die Einstellung
der Direktive <directive>MaxClients</directive> so
w�hlen, da� Ihr Server nicht so viele Kindprozesse
startet, da� er (dadurch) beginnt, zu swappen."
(note that I _don't_ translate "swap" here.)
> Ermitteln Sie über die Prozessliste oder ein Programm wie
> <code>top</code>
"oder ein Programm" => "mit Hilfe eines Programms". (You
won't get easy access to the process list without one.)
> und dividieren Sie diesen Wert durch die verfügbare RAM-Größe
> (berücksichtigen Sie dabei auch andere Prozesse).</p>
Nope, but just the opposite.
"Divide into" is the inverse to "divide by".
There is no literal translation for this in German
(it would be something like
"...und berechnen Sie, wie oft diese Gr��e in
den verf�gbaren RAM hinein pa�t (wobei Sie
etwas Platz f�r andere Prozesse �brig lassen
sollten)."
) so you have to reorder this line:
"...und teilen Sie die Gr��e des verf�gbaren
RAM durch diesen Wert (wobei...".
> und genügend Festplatten.
The _number_ of hard disks is of less importance;
mostly, it is the response behaviour (time for head
positioning, transfer rate) that counts.
Thus: "gen�gend" => "hinreichend schnelle".
> Frühere Solaris 8-Versionen
"fr�here" => "fr�he".
(A release doesn't vanish when the next release it out;
one may consider it outdated, but for practical reasons
others won't, and Apache doesn't enforce the use of the
most recent OS version, for good reasons...)
> <p>Vor der Apache-Version 1.3, war die
Which purpose does this comma serve?
> Müssen in den Protokolldateien Adressen in Hostnamen aufgelöst
> werden,
You often try to avoid direct speech in your translation,
while the Apache manual often uses this as to directly
address the reader to actively do something.
I would write literally:
"Falls Sie in Ihren Protokolldateien eine Aufl�sung von
IP-Adressen in Hostnamen ben�tigen, ...".
> dann benutzen Sie das Programm <a
> href="../programs/logresolve.html"><code>logresolve</code>
> </a>, das Bestandteil der Apache-Distribution und eines der zahlreichen
> Protokollprogramme ist, die zur Verfügung stehen.</p>
Your translation of "log reporting" lacks the "reporting"
part, and the end of the sentence wasn't too elegant in
English already.
I would translate this to
"dann verwenden Sie _daf�r_ (besser) das Programm 'logresolve'
der Apache-Distribution, eines der zahlreichen verf�gbaren
Programme zur _Auswertung_ von Protokolldateien."
> <p>Werden DNS-Namen nur in einigen CGI-Skripten benutzt,
> sollte der <code>gethostbyname</code>-Aufruf in dem entsprechenden
> CGI-Skript benutzt werden.</p>
Literally:
"Aber abgesehen von dieser M�glichkeit: Falls Sie DNS-Namen
nur in einigen wenigen CGI-Anwendungen ben�tigen, sollten
Sie in Erw�gung ziehen, den <code>gethostbyname</code>-Aufruf
(nur) in denjenigen CGIs durchzuf�hren, die ihn ben�tigen."
The problem might be that some of these CGIs could be closed
source and won't allow the admin to change their behaviour.
> <p>Ist irgendwo im URL-Raum die Anweisung <code>Options FollowSymLinks</code>
The exact opposite is true, and this is a very important point.
You cannot just join two statements with opposite truth values
into one sentence the way you tried to (because you misunder-
stood).
Literally:
"�berall dort innerhalb Ihres URL-Raums, wo Sie
a) die Option 'FollowSymLinks' _nicht_ gesetzt oder
b) die Option 'SymLinksIfOwnerMatch' gesetzt
haben, wird Apache zus�tzliche Systemaufrufe ben�tigen, um
eine Pr�fung _auf_ (die Verwendung von) symbolic links durch-
zuf�hren."
> Die Ergebnisse dieser Aufrufe werden nicht zwischengespeichert und werden
> daher für jede
> Anfrage durchgeführt.
You cannot "durchf�hren" an "Ergebnis".
("they" refers to the lstat() calls, not to their results.)
Literally:
"Die Ergebnisse dieser Aufrufe werden nicht zwischengespeichert;
deshalb sind letztere (diese Aufrufe) bei jeder weiteren Anfor-
derung erneut erforderlich."
> versucht der Apache, die Datei <code>.htaccess</code> für jede
> Komponente des Dateinamens zu öffnen.
Not exactly. It isn't always the same .htaccess file that
Apache attempts to open - see example below.
So this should be:
"versucht der Apache f�r jede Komponente des Dateinamens,
eine _entsprechende_ (d. h. in dem Verzeichnis des bis
dahin gebildeten Pfadnamens liegende) .htaccess-Datei zu
�ffnen."
> Die erforderlichen Maßnahmen
Nope, but "Die L�sung des Problems".
> Allerdings wiegen die Vorteile der Content-Negotiation in der Praxis die
> Leistungseinbußen auf.
Even more than that - "outweight" is more than "equals".
Thus: "Allerdings �berwiegen in der Praxis die Vorteile
der Content Negotiation gegen�ber den Leistungseinbu�en."
(Meaning: "In this aspect it is unlikely that you want
to trade functionality for performance.")
> In einer Situation kann der Server beschleunigt werden.
Literally: "Aber es gibt eine Situation, in welcher der
Server (tats�chlich) beschleunigt werden kann (ohne dabei
auf Funktionalit�t verzichten zu m�ssen)."
> Anstatt Jokerzeichen wie</p>
Please don't translate the technical term "wildcard".
> <p>zu benutzen, kann eine vollständige Optionsliste verwendet werden:</p>
"kann ... benutzt werden" => "sollten Sie ... benutzen".
> DirectoryIndex index.cgi index.pl index.shtml index.html
> <p>An erster Stelle in der Liste steht der häufigste Fall.</p>
Nope: ", wobei Sie den h�ufigsten Fall an erster Stelle
angeben sollten." (Because this list will obviously be
parsed and evaluated sequentially, and the more likely
the first entry is to fit, the less Apache has to bother
about the other entries. In short: "_You_ have to know
what you are doing in your site - noone else will.")
> <p>Auch das explizite Anlegen einer <code>type-map</code>-Datei
> ermöglicht
> bessere Leistungen als die Verwendung von <code>MultiViews</code>,
Literally: "Beachten Sie auch, da� das explizite Anlegen..."
> <p>Ist die Content-Negotiation erforderlich, sollten
Literally: "Falls Ihre Site (unbedingt) Content Negotiation
ben�tigt, ...".
> <p>In Situationen, in denen der Apache 2.0 auf den Inhalt einer
> auszuliefernden Datei schauen
"auf den Inhalt... schauen" => "den Inhalt... betrachten"
> nimmt er normalerweise eine Speicherzuordnung für die Datei vor,
Nope. "memory mapping" is more than just memory allocation.
I suggest translating it to "Speicherabbildung (des Inhalts)"
because the content will be read into this memory and kept
there permanently (to avoid further disk access for this file,
which is the reason why we want to do this in the first place
I guess).
> <p>Bei einigen Betriebssystem passt sich <code>mmap</code> nicht so gut wie
> <code>read(2)</code> an,
I suggest "scale" to treat as a technical term here.
Maybe you should write
"Bei einigen Betriebssystemen ist <code>mmap</code> nicht
so gut skalierbar bei wachsender Anzahl von CPUs wie
<code>read(2)</code>."
> in einem eingebundenen NFS-Dateisystem
"mount" is a technical term for sure.
I would rather not translate it, although I am not sure
about any elegant way of using it here.
> kann es zu einem Busfehler kommen, wenn das nächste Mal versucht wird,
> auf den Inhalt der zugeordneten Datei zuzugreifen.</p>
You always write that so impersonal, omitting the subject.
Literally: "kann Ihr Proze� einen Busfehler erzeugen,
wenn _er_ das n�chste Mal versucht, auf ... zuzugreifen."
> (beispielsweise bei statischem Dateiinhalt),
Literally: "beispielsweise bei der Auslieferung des Inhalts
statischer Dateien".
> <p>Bei manchen Betriebssystem ist die <code>sendfile</code>-Unterstützung
> fehlerhaft, was vom build-System nicht erkannt wird,
Nope: "wird" => "wurde".
(The build system seems to try to detect this, but Apache
cannot guarantee that this detection will work perfectly
on each and every platform.)
> insbesondere, wenn die Binärdateien
I would prefer "(ausf�hrbare) Programmdateien", as we talk
about the binaries that are the result of the Apache build
process. ("Binaries" is a technical term here as well.)
> <code>sendfile</code>-Unterstützung verschoben wurden.</p>
I would prefer to think of "move" as "Umzug" (it does not
imply these files were deleted on the original machine),
so this might be something like "�bernommen wurden".
> <p>Bei eingebundenen NFS-Dateien
Please don't translate the technical term "mount".
> <p>Vor der Apache-Version 1.3 hatten die
> <directive module="prefork">MinSpareServers</directive>-,
> <directive module="prefork">MaxSpareServers</directive>- und
> <directive module="mpm_common">StartServers</directive>-Einstellungen
More fluent German: "...hatten die Einstellungen der
Direktiven...".
> drastische Auswirkungen auf die Ergebnisse von Vergleichstests.
I would consider "benchmark" a technical term and rather
not translate it - but "Vergleichstest" might be okay.
> Insbesondere benötigte der Apache eine "Anfahrzeit", um eine
> ausreichende
> Anzahl von Kindprozessen zu erreichen.
The last part of this line seems to be missing.
Append: ", ...um die anfallende Last zu bew�ltigen".
> Nach der Initialisierung der
> <directive module="mpm_common">StartServers</directive>-Prozesse,
Nope. But this is a tricky way of describing things
in English...
"StartServers" is used as an integer value here,
because that is the semantics of the directive.
So just omit the hyphen, and then look at the line:
Can a German reader understand what you wanted to
tell him? ("Anzahl der ...")
Or do you need to rewrite the whole line?
> Mit der Apache-Version 1.3 wurde der Sekundentakt aufgegeben.
I would translate "relax" as "aufgeweicht" or
something like that. (The rule still applies,
just not so unconditionally as before.)
> <p>Das scheint so durchdacht zu sein,
Nope. "to be responsive" (= to show a response time
behaviour of) isn't literally translatable to German.
Thus I try to rewrite this line:
"Das Antwortverhalten dieses Verfahrens scheint so
(hinreichend?) gut zu sein, da�...",
> Die Ausgabe von <module>mod_status</module> kann hier als Orientierung dienen.
The "von" is overloaded and a bit misleading here.
I would prefer to use plural here ("die Ausgaben")
because that would make clear that you don't mean
"to output mod_status" but "some output created by
mod_status".
> Liegt der Wert sehr niedrig, beispielsweise bei <code>30</code>,
> dann sollte er deutlich erhöht werden.
Literally: "dann werden Sie ihn m�glicherweise
deutlich erh�hen wollen."
This document doesn't claim the value of 30 to be
wrong - it only makes you think twice about it.
> oder einer älteren Version von Solaris
�lter als was? Literally: "einer alten Version".
> Die Voreinstellung für <directive
> module="core">KeepAliveTimeout</directive>
> mit <code>15</code> Sekunden, versucht diesen Effekt zu mildern.
I would like to have the comma after "versucht",
not where it is now.
> Hier muss zwischen Netzwerkbandbreite Serverressourcen abgewogen werden.
An "und" is missing here between the two nouns.
> Beim Aufbau des Apache
I would likely translate "build" here as
"�bersetzung" (des Quelltextes), although it is
a bit more than that. But this is the thing we
are talking about in the sections to follow.
> Für die gängigen Unix-Systeme
I guess this should be "allgemeine", just not
restricted in general, while Apache cannot
guarantee this would apply for each *NIX type.
> Jeder Thread bedient eine Verbindung.
You are missing the point:
"Jeder Thread bedient gleichzeitig (= zu einem
bestimmten Zeitpunkt) (maximal) eine Verbindung."
> Jeder Prozess bedient eine Verbindung.
Same as above.
> mit wenig Möglichkeiten
=> "mit schlechter Unterst�tzung"
> <p>Da die Speicherauslastung ein wichtiger Punkt für die
> Leistungsfähigkeit
Suggestion: "Punkt" => "Aspekt".
> ist, sollten eigentlich nicht benötigte Module eliminiert werden.
Literally: "Sollten Sie bestrebt sein, aktuell nicht
benutzte Module zu eliminieren."
> für dieses Modul als Kommentar gekennzeichnet werden.
I guess "auskommentiert" would be common sense here.
> Das Entfernen von Modulen kann so experimentell durchgeführt werden,
> indem überprüft wird, ob die Site anschließend noch
> funktioniert.</p>
Literally: "Dies erlaubt Ihnen, mit dem Entfernen von
Modulen zu experimentieren und zu kontrollieren, ob
Ihre Seite ohne diese Module (immer) noch funktioniert."
(Without having to recompile Apache completely.)
> <p>Wurden Module dagegen statisch in den binären Apache-Server
> eingebunden, muss der Server erneut kompiliert werden, wenn unerwünschte
> Module entfernt wurden.</p>
Just the opposite:
"...wenn Sie unerw�nschte Module entfernen wollen."
(Even removing them requires a recompilation if they
are no DSOs!)
> <p>In diesem Zusammenhang stellt sich natürlich die Frage, welche Module
> überhaupt benötigt werden.
"...und welche nicht." (There is no need to omit that.)
> den eine Website ist auch ohne Fehlerprotokollierung funktionsfähig.
You mean "denn" instead of "den"?
If so, I'd prefer "da eine Website auch ... ist."
> Allerdings ist dazu nicht zu raten.</p>
Literally: "Dies wird allerdings nicht empfohlen."
(not recommmended by the author of this document...)
> <title>Kernoperationen</title>
"Atomic operation" is a technical term; the German
translation would be "atomare Operationen" (meaning
"unteilbare Operationen").
> benutzen das Kern-API
See above.
> Dieses API stellt Kernoperationen
See above.
> mit denen eine einfache Thread-Synchronisation möglich ist.</p>
Literally:
"Die f�r eine einfache Thread-Synchronisation ver-
wendet werden k�nnen."
> CPU-Modellen zu gewährleisten, denen eine solche Anweisung fehlt.
Literally: "denen solche Anweisungen fehlen."
> kann eine schnellere Kernimplementierung ausgewählt werden.
See above.
(Uh, this might be tricky... something like:
"k�nnen Sie zur �bersetzungszeit eine schnellere
Implementierung f�r die atomaren Operationen aus-
w�hlen, indem Sie...")
> <p>Die Option <code>--enable-nonportable-atomics</code> spielt für
> folgende Betriebssysteme eine Rolle:</p>
I would literally use "ist relevant f�r".
> APR unter Solaris/SPARC Mutex-basierte Kernoperationen.
"Kernoperationen" => "atomare Operationen".
> sind die Kernoperationen
(I won't repeat the same correction from here on.)
> (je nach Betriebssystem) sowie mehrerer zusätzliche Aufrufe
Typo: "mehrerer" => "mehrere"
> <p>Dieser Abschnitt wurde noch nicht bezüglich der
> Änderungen des Apache HTTP-Servers mit der Version 2.0
> aktualisiert. Die Angaben können aber müssen nicht mehr
> alle gültig sein.</p>
Literally:
"Dieser Abschnitt wurde bez�glich der in Version 2.0
des Apache-HTTP-Servers durchgef�hrten �nderungen
noch nicht vollst�ndig aktualisiert. Ein Teil der
(vorliegenden) Information mag weiterhin relevant
sein, aber gehen Sie vorsichtig damit um."
> wobei die nicht beschäftigten Prozesse
"die" => "alle". (To make the point clearer.)
> Eine naive Implementierung kann folgendermaßen ausschauen
"Eine naive Implementierung sieht etwa folgenderma�en aus"
> sie dienen lediglich der Anschauung):</p>
"Anschauung" => "Veranschaulichung"
> <p>Bei dieser naiven Implementierung gibt es ein ernstes Problem.
Where has the "starvation" part gone?
I don't have any literal translation myself, so
I try to translate what I think the original
document was trying to say:
"Bei dieser naiven Implementierung besteht die
ernsthafte Gefahr, da� sich der Server in nutzlosen
(unproduktiven?) Berechnungen ersch�pft."
> wenn sie zwischen Anfragen liegen.
Um... again it isn't easy to find a literal translation.
Maybe "wenn sie gerade keine Anfrage bearbeiten."
(Sondern eben darauf warten, die n�chste Anfrage zu
bekommen - und dieses Warten effizient zu gestalten,
ohne Ressourcen zu verpulvern, ist genau das Problem.)
> hängt vom Betriebssystem und Zeitaspekten ab).
"timing" isn't the same as "time".
It might be best to not translate this word.
> Sie betreten alle die Schleife und versuchen die Verbindung zu akzeptieren
I would prefer "Jeder von ihnen..."
(as this would be the opposite of "Aber nur einer".)
> Dadurch werden diese Kindprozesse daran gehindert, Anfragen von diesem
> einen und keinem der anderen Socket zu bedienen.
This line doesn't make any sense.
"lock into" ist not the same as "prevent from", it is
rather the opposite:
"Dieses blockiert diese Kindprozesse tats�chlich derartig,
da� sie nur noch Anforderungen von diesem einen Socket
und keinem (der vielen) anderen bedienen k�nnen."
(Because they're locking depends on the next request to
arrive at this port - they won't wake up before that no
matter what, I guess.)
> Diese Problem wurde
Typo: "Diese" => "Dieses"
> Es bieten sich mindestens zwei Lösungen an.</p>
Literally: "Es existieren mindestens zwei L�sungen."
> Bei zehn unbeschäftigten Kindprozessen für <code>select</code>
> und einer eingehenden Verbindung, werden neun Prozesse aktiviert.
> Sie versuchen die Verbindung zu akzeptieren (<code>accept</code>).
> Das schlägt fehl und sie stehen wieder bei <code>select</code>, ohne
> etwas zu verrichten. Zwischenzeitlich hat keiner dieser neun Prozesse
> Anfragen, die über andere Sockets eingehen, bedient.
You should not change the structure of the sentences
for this paragraph. Translate it absolutely literally,
or else you lose the dependencies of the statements.
> implementieren eine wechselseitige Ausschlusssemaphore.
I would prefer "eine wechselseitig ausschlie�ende
Semaphore", despite this English version which said
"mutual exclusion" instead of "mutual exclusive".
> Nur ein Kindprozesse kann jeweils den Mutex besitzen.
Insert "zu einem gegebenen Zeitpunkt" after "Mutex".
> Für die Implementierung der Mutexe gibt es mehrere
> Auswahlmöglichkeiten.
Rather: "stehen mehrere M�glichkeiten zur Verf�gung."
> Bei einigen Architekturen wurde keine Auswahl getroffen,
This might be the literal translation, yet it doesn't
make too much sense. (And the English version doesn't
either IMHO; I'll post a separate question about this.)
> der Apache beendet wird, ohne das die Semaphore vorher geleert wird
I would prefer "zur�ckgesetzt".
> Zum anderen lässt das Semaphoren-API Denial-of-Service-Attacken durch
> CGI-Skripte zu,
I would prefer "erm�glicht".
> die unter der gleichen <code>uid</code> wie der Webserver ausgeführt
"uid" is just an abbreviation for "user id" (Benutzer-
kennung) and need not be marked up in <code>...</code>.
> Aus diesen Gründen wird diese Methoden außer von IRIX
> (wo die beiden zuvor genannten bei den meisten IRIX-Rechnern
> unverhältnismäßig aufwändig sind) von keiner
> anderen Architektur benutzt.</p>
Replace "von" by "auf". (We are talking about what
is used by Apache, not "by the operating system").
> Segmentfehler verursacht, was zum Absturz des Webservers führt.</p>
"hang" is not "crash" - unfortunately "hang" is less
easy to detect, locks ressources and whatnot.
> dann kann es sinnvoll sein, die APR entsprechend zu ergänzen.</p>
Literally:
"dann k�nnte es sinnvoll sein, die APR um den ent-
sprechenden Code zu erweitern."
> nur eine bestimmte Anzahl von Prozessen zugelassen wird.
"zugelassen" => "hinein gelassen" (in die Schleife?).
> Dies ist ein Feld für zukünftige Bemühungen,
Insert "m�gliches" before "Feld".
> da parallele Webserver nicht die Norm sind.</p>
Insert "hochgradig" after "da".
> <p>Im Idealfall sollten die Server ohne mehrfache
> <directive module="mpm_common">Listen</directive>-Anweisungen
> auskommen, wenn gute Leistungen im Vordergrund stehen.
Nope, but: "Idealerweise sollten Sie auf die Verwendung
mehrfacher 'Listen'-Anweisungen verzichten, wenn...".
> Bei der Art und Weise, wie die meisten TCP-Stacks implementiert sind,
> aktiviert der Serverkern aber alle in <code>accept</code> blockierten
> Prozesse,
Where did you get that "aber" from?
You sound like you want to contradict the previous line,
while you are actually explaining it.
(You might even add some affirmative "n�mlich" there.)
> im Serverkern zirkuliert
Rather "Betriebssystemkernel" (or "kernel").
> und deaktiviert wird, wenn keine Verbindung anliegt.
Literally: "und sich selbst wieder 'schlafen legen',
wenn sie bemerken, da� f�r sie keine (zu bearbeitende)
Verbindung vorliegt." (The initiative to 'sleep' comes
from the child process itself, not some outside magic.)
> Verhalten führen, wie die nicht blockierende Lösung bei mehreren
> Sockets.</p>
Remove the comma (what follows is no complete sentence).
> <p>Es hat sich herausgestellt, dass viele Systeme sich besser verhalten,
I suggest "besser" => "gutm�tiger"
(i. e. less vulnerable to extreme situations).
> Dies entspricht in der Tat fast in allen Fällen dem Standard.
Welchem Standard? I am not perfectly sure but I guess
"So this is actually the default in almost all cases."
should be
"So this is actually the default behaviour
_of_ _Apache_ in almost all cases."
> zu einer Abnahme der Anfragen pro Sekunde 3% gegenüber
Insert "von weniger als" before "3".
> Möglicherweise entstehen diese Wartezeiten durch lange Transportwege
I don't think this is correct. "to be a wash" looks as if
this were some idiom, yet my dictionary doesn't know about
it. "long haul lines" might rather indicate the attributes
of these lines than the distance they actually cover.
So from the context I would guess that this line wanted to
say: "Bei DF�-Verbindungen ist diese Verz�gerung h�chst-
wahrscheinlich vernachl�ssigbar, also lediglich in (schnel-
len) LANs (tats�chlich) ein Problem."
(If you have to wait several seconds for a transmission you
don't care for 0.1 sec latency - if you wait for just tenths
of seconds then another tenth might actually be a nuisance
if that happens millions of times.)
> Die Serialisierung für einzelne Sockets kann mit der Definition
> <code>SINGLE_LISTEN_UNSERIALIZED_ACCEPT</code>
> überschrieben werden.</p>
Literally:
"Wenn Sie die Serialisierung f�r (den Betrieb mit) nur ein(em)
Socket au�er Kraft setzen (�berschreiben) wollen, k�nnen Sie
(die symbolische Konstante) SINGLE_LISTEN_UNSERIALIZED_ACCEPT
definieren; in diesem Fall werden Server mit nur einem Socket
(ihre mutex-Aufrufe?) nicht serialisieren."
> <title>Schleichender Verbindungsabbau</title>
Sounds a bit awkward. Yet, I don't see too many good alter-
natives. Maybe "vorsichtig" oder "z�gernd"...
> <p>Wie in dem Beitrag
> <a
> href="http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-connection-00.txt">
> draft-ietf-http-connection-00.txt</a> Abschnitt 8 erörtert wird,
More fluent German: "Wie in Abschnitt 8 des Beitrags...".
> (denn eine TCP-Verbindung ist bidirektional, wobei
Literally: "(bedenken Sie, da� ... ist, wobei)
> vom Apache wird sie aber seit der Version 1.2 berücksichtigt.</p>
Literally:
"ber�cksichtigt" => "korrekt implementiert"
> <p>Als diese Eigenschaft dem Apache hinzugefügt wurde, kam es infolge
> einer gewissen Kurzsichtigkeit bei verschiedenen Unix-Varianten zu einer
> Reihe
> von Problemen.
This wording makes it ambiguous where the "short-
sightedness" had happened - in Apache or in Unix.
(As I read this paragraph it happened in Apache 1.2
and was fixed later.)
Literally:
"Als diese F�higkeit in Apache eingebaut wurde, sorgte
sie aufgrund einer Kurzsichtigkeit (bei der gew�hlten
Implementierung) f�r eine Reihe von Problemen auf ver-
schiedenen Unix-Versionen.
> Die TCP-Spezifikation legt nicht fest, dass der Status
> <code>FIN_WAIT_2</code> ein Zeitlimit hat, sie verbietet
> es aber auch nicht.
I try a more liberal wording here:
"Die TCP-Spezifikation verlangt nicht, da� der Zustand
FIN_WAIT_2 nur zeitlich begrenzt existieren darf, sie
schlie�t dies jedoch auch nicht aus."
> Bei Systemen ohne Zeitlimit verursachte der Apache 1.2 ein ewiges Hängen
> vieler
> Sockets im <code>FIN_WAIT_2</code>-Status.
Maybe "Zeitlimit" => "timeout-Mechanismus"?
> Für Fälle, in denen der Hersteller keine Patches entwickelt hat
> (wie für
> SunOS4, auch wenn Eigentümer einer Source-Lizenz sich selbst helfen
> können)
> soll diese Eigenschaft deaktiviert werden.</p>
Literally:
"Bei F�llen, in denen der Hersteller nie (entsprechende)
Patches freigegeben hat (beispielsweise SunOS4 - wobei
Leute mit einer Source-Lizenz die entsprechenden Patches
selbst durchf�hren k�nnen) haben wir uns entschieden,
dieses Feature abzuschalten (zu deaktivieren)."
> <p>Dies kann zum einen mit der Option <code>SO_LINGER</code> geschehen.
Literally:
"Es gibt zwei M�glichkeiten, dies zu bewirken.
Eine davon ist die (Verwendung der) Socket-Option SO_LINGER."
> Leider wurde sie für die meisten TCP/IP-Stacks niemals korrekt
> implementiert.
Literally:
"Aber wie das Schicksal so spielt, wurde sie bei den meisten
TCP/IP-Stacks niemals korrekt implementiert."
> Aber selbst bei Stacks mit einer korrekten Implementierung (z. B. Linux
> 2.0.31) erweist
> sich dieses Verfahren als aufwändiger (CPU-Zeit) als die folgende
> Lösung.</p>
Remove "Aber", and make "folgende" => "nachfolgend beschriebene".
> <p>In den meisten Fällen findet sich diese Apache-Implementierung
I am not perfectly sure about the literal translation of
"for the most part", but I suspect it would be "zum gr��ten Teil".
> Da HTTP/1.1 immer mehr vorherrscht und alle Pipeline-Verbindungen dauerhaft
> sind,
I suggest "Mit der zunehmenden Verbreitung von HTTP/1.1 und
der (damit verbundenen) Persistenz aller Verbindungen"
> amortisiert sich dieser Aufwand nach mehreren Anfragen.
Rather: "... mit zunehmender Menge von Anfragen"
("...pro Verbindung" - das ist es ja, was persistente Verbin-
dungen vom alten HTTP/1.0 unterscheidet: Mehrere Anfragen �ber
dieselbe Verbindung).
> Wer das Risiko liebt, kann <code>NO_LINGCLOSE</code> definieren, um diese
> Eigenschaft
> zu deaktivieren, davon ist aber grundsätzlich abzuraten.
Literally:
"Wenn Sie mit dem Feuer spielen und dieses Feature deaktieren
wollen, k�nnen Sie (die Konstante) NO_LINGCLOSE definieren, aber
davon wird grunds�tzlich abgeraten.
> Je mehr die HTTP/1.1-Verbindungen zum Standard werden,
> um so unverzichtbarer wird <code>lingering_close</code>
Literally:
"Insbesondere mit zunehmendem Einsatz persistenter Verbindungen
gem�� HTTP/1.1" (they already are a "standard", just not "in use")
"wird die Verwendung von lingering_close zu einer absoluten
Notwendigkeit werden".
> uns sollten unterstützt werden).</p>
Typo: "uns" => "und".
(Maybe more explicitly: "und sollten daher...".
> <p>Die Apache-Prozesse und Kindprozesse
Literally:
"Apaches Eltern- und Kindprozesse"
(child processes are Apache processes as well)
> Es sollte idealerweise im gemeinsam genutzten Speicher implementiert werden.
"Es" => "Dieses".
(And "shared memory" seems to be a technical term, so I
am not sure whether to translate this at all. Probably not.)
> Bei den Betriebssystemen, zu denen Zugang besteht, oder die zugewiesene Ports
> haben,
Uh. This looks really confused, although I am not absolutely
sure about the meaning of the English version either.
(I guess this would be) literally:
"F�r diejenigen Betriebssysteme, zu denen wir selbst entweder
Zugang haben oder (f�r die) uns eine detaillierte Portierung
vorliegt". (I'll post a question about this separately.)
> wird es normalerweise im gemeinsam genutzten Speicher implementiert.
See above - it is probably better to not translate "shared memory".
> Bei den übrigen wird eine Datei auf der Festplatte verwendet.
"defaults" is missing; insert "standardm��ig" after "wird".
> Eine solche Datei ist nicht nur langsam, sie ist auch unzuverlässiger.
See my corresponding question about the original version.
> Mit ihnen (und den Definitionen <code>HAVE_MMAP</code> oder
> <code>HAVE_SHMGET</code>) wird der vorhandene Code für
> den gemeinsam genutzten Speicher aktiviert.
And how does that exactly work?
Literally:
"Die Definition einer dieser beiden Konstanten (sowie des
entsprechenden ihrer beiden Gegenst�cke HAVE_MMAP bzw.
HAVE_SHMGET) bewirkt die Aktivierung des mitgelieferten
Shared-Memory-Codes.
(You need to #define a pair of corresponding constants...)
> Besitzt das System einen anderen Typ gemeinsam genutzten Speichers,
> muss die Datei <code>src/main/http_main.c</code> geöffnet und die
> erforderlichen
> Hooks für Apache hinzugefügt werden.</p>
Literally:
"Besitzt Ihr System einen andern Typ von Shared Memory,
dann m�ssen Sie die Datei http_main.c bearbeiten und die
entsprechenden Hooks hinzuf�gen, um ihn in Apache verwen-
den zu k�nnen."
> <note>Zur Entwicklung: Der Linux-Port des Apache...
I would write this as:
"Historische Anmerkung: Die Portierung von Apache nach
Linux..." (I have read "der Port" in German, but I always
find it confusing when talking about TCP/IP ports as well.)
> verwendet erst seit der Version 1.2 den gemeinsam genutzten Speicher. Diese
> Nachlässigkeit führt zu einen mangelhaften und unzuverlässigem
> Verhalten früherer Versionen von Apache für Linux.</note>
Make all of that past tense, as Apache 1.2 is _really_
outdated and should not have been in use for many years.
(That's why the note is "historical".)
> <p>Sollen keine dynamisch geladenen Module verwendet werden
> (was der Fall sein kann, wenn entsprechend dieser Ausführungen
> das Optimum an Leistung erreicht werden soll), dann sollte beim Aufbau
> des Servers die Option <code>-DDYNAMIC_MODULE_LIMIT=0</code>
> angegeben werden. Das spart RAM-Speicher, der sonst für dynamisch
> geladene Module benötigt wird.</p>
Literally:
"Sollten Sie nicht vorhaben, dynamisch nachladbare Module
zu verwenden (was vermutlich der Fall sein wird, wenn Sie
diese Zeilen lesen und versuchen, das letzte bi�chen Per-
formance aus ihrem Server herauszukitzeln), dann sollten
Sie bei der �bersetzung des Servers -DDYNAMIC_MODULE_LIMIT=0
angeben. Dies spart RAM, der (sonst) nur f�r die Unterst�tzung
dynamisch geladener Module reserviert wird (werden m��te?).
> <p>Der hier behandelte Trace der Systemaufrufe unter Apache 2.0.38 mit dem
> <code>worker</code>-MPM unter Solaris 8 wurde wie folgt erstellt:
> truss -l -p <var>httpd_child_pid</var>.
I'd try to stay closer to the original sentence structure:
"Nachfolgend sehen Sie einen Trace der Systemaufrufe von
Apache 2.0.38 unter Verwendung des Worker-MPM unter Solaris 8.
Dieser Trace wurde erzeugt durch das Kommando
truss -l -p httpd_child_pid."
> Thread auf Serverkernebene)
Like many times before: You shouldn't use "server" for the
machine when server might as well mean "Apache".
And in connection with "kernel" I would prefer to translate
it to "operating system kernel" = "Betriebssystemkern".
> <p>Um die virtuellen Hosts implementieren zu können, muss der Apache
> die lokale Socket-Adresse für das Akzeptieren der Verbindung kennen.
Nope, but: "die lokale socket-Adresse, �ber welche diese
Verbindung akzeptiert wurde".
(This might be used to find out which Virtual Host is to
be addressed, I guess - could be IP-based Virtual Hosts?)
> benutzt werden, die keine Adressen mit Jokerzeichen haben).
Please don't translate "wildcard" here.
> Bisher wurden jedoch keine Anstrengungen für diese Optimierungen
> unternommen. </p>
I would like this to be:
"Bisher wurde jedoch kein Versuch unternommen, Optimierungen
in dieser Hinsicht durchzuf�hren."
> <p>Die <code>brk(2)</code>-Aufrufe allokieren Speicher im Heap.
I'm not sure but I believe "allozieren" would be more common.
> Das ist in einem Systemaufruf-Trace selten zu erkennen,
Nope, but:
"Solche Aufrufe sind in einem Systemaufruf selten zu beobachten"
> weil das <code>httpd</code>-Programm für die Verarbeitung der meisten
> Anfragen
> eigene Speicherallokatoren verwendet
And that's the reason why. Normally this just doesn't happen.
> In diesem Trace wurde das Programm <code>httpd</code> gerade gestartet,
> deshalb
> muss es <code>malloc(3)</code> aufrufen, um die Speicherblöcke
> für die
> eigenen Speicherallokatoren zu erhalten.</p>
Literally: ", aus denen es die eigenen ... erzeugt."
(I am not very sure how to actually translate "memory allocator",
as I lack the understanding of the corresponding Apache API.)
> <code>fcntl(2)</code> für Sockets behandelt.</p>
"to handle" might rather be "handhaben" or "erledigen" here.
> <p>Der <code>worker</code>-Thread liest Anfrage des Clients.</p>
Insert a "die" before "Anfrage".
> Daher wird <code>lstat(2)</code> nicht für jedes Verzeichnis im Pfad zur
> angeforderten
> Datei benötigt. Auch die <code>.htaccess</code>-Dateien müssen nicht
> überprüft werden.
These two sentences should remain connected:
"Daher ist es f�r jedes Verzeichnis im Pfad zur angeforderten
Datei weder erforderlich, einen lstat(2)-Aufruf durchzuf�hren
(um auf symbolic link zu testen), noch, es nach (= auf die
Existenz) einer .htaccess-Datei zu pr�fen."
> HTTP-Antwort-Header
I'd prefer to let "HTTP response header" untranslated.
> Auffällig ist, dass in diesem Trace ein <code>time(2)</code>-Aufruf
> fehlt.
Literally: "Beachten Sie, da� in diesem Trace unter anderem
kein time(2)-Aufruf auftaucht."
(We've noticed other missing things before, see above.)
> <p>Der <code>worker</code>-Thread schließt die Verbindung.</p>
You missed to mention the "lingering close" that has been
used here, which was discussed in lenght above.
> <p>Am Ende schließt der <code>worker</code>-Thread die Datei, die er
> gerade
> ausgeliefert hat und blockiert, bis der Listener eine andere Verbindung
> zuweist.</p>
Insert "ihm" before "eine".
(Other assignments than these would be irrelevant.)
> (was Gegenstand der Flusskontrolllogik im <code>worker</code>-MPM ist,
I would just prefer "aufgrund der Kontrollflu�logik des
Worker-MPM".
> wenn die verfügbaren <code>worker</code>-Threads beschäftigt
Why did you omit the important word "all" here?
("die" => "alle")
> Auch wenn das im Trace nicht ersichtlich ist,
"im" => "in diesem". (It might be in others...)
Sigh. I'm afraid that not many of your translated lines
are actually usable for this document...
Regards, Michael
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]