Re: Skript um weniger als 1 Sekunde bremsen

From: Bernd Walter <ticso(at)cicely12.cicely.de>
Date: Fri, 18 May 2007 20:23:00 +0200

On Fri, May 18, 2007 at 07:00:26PM +0200, Marc Santhoff wrote:
> Tag,
>
> ich würde gern mit einem selbstgeschriebenen Skript mittels
> "linkchecker" aus den Ports eine sehr lange Liste URLs auf Gültigkeit
> prüfen.
>
> Das funktioniert auch soweit, aber da FreeBSD ein "braves"
> Betriebssystem ist und DOS-Angriffe selbst von innen nach außen
> blockiert, lautet das Resultat in fast der Hälfte aller Fälle
>
> "Connection refused"
>
> weil die Anfragen einfach zu schnell aufeinander folgend abgesetzt
> werden.
>
> Sleep(1) kann als kleinstes Intervall aber nur eine Sekunde pausieren
> und es soll ein Shell-Skript bleiben.
>
> Wie erreiche ich eine kürzere Pause?

In C kannst du usleep verwenden, was nicht portabel ist, oder
portabel einen select mit leerer Liste und Timeout.

> Wie lang muß sie sein, damit FreeBSD nicht bockt (sysctl/var)?
>
> Falls kurze Pausen nicht möglich sind, wie kann ich FreeBSD kurzfristig
> beibringen, sich da rauszuhalten (es sind ja alles unterschiedliche
> URLs, also wird es kein DOS-artiger Zugriff auf fremde Server)?

FreeBSD blockiert da nichts - muss woanders passieren.
Darf der auch nicht - ich habe legitime Anwendungen, bei denen einige
hundert connects pro Sekunde aufgebaut und beended werden.
Von daher lässt sich auch nichts über notwendige Pause sagen.
Evtl. macht der Server am anderen Ende dicht - oder ein Filter
dazwischen.
Mit wget kannst du mehrere URLs per Pipelining ziehen, sofern der
Server das unterstüzt, dann wird nicht für jeden Request ein eigener
Connect gemacht - evtl kommt der Server besser damit zurecht.

-- 
B.Walter                http://www.bwct.de      http://www.fizon.de
bernd(at)bwct.de           info(at)bwct.de            support(at)fizon.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 18 May 2007 - 20:24:15 CEST

search this site