So begrenzen Sie den Bandbreitenverbrauch pro Benutzer oder Client-Gerät

Ihre Website, Anwendung oder Datei-Hosting-Dienst verfügt über endliche Netzwerk- und Server-Ressourcen, um alle ihre Benutzer zu bedienen. Eine der wichtigsten Ressourcen ist die Bandbreite. Ein erheblicher Bandbreitenverbrauch durch nur eine Teilmenge der Benutzerbasis kann zu einer Netzwerküberlastung und einer geringeren Ressourcenverfügbarkeit für andere Benutzer führen. Um Netzwerküberlastung zu verhindern, müssen Sie möglicherweise den Bandbreitenverbrauch eines Clients einschränken, indem Sie temporäre Dienstverweigerungsmethoden verwenden, z. B. die Reaktion auf eine Clientanforderung mit einer HTML-Seite, wenn dieser einen vorkonfigurierten Bandbreitenwert über einen bestimmten Zeitraum vor der Anforderung überschritten hat.

Im Allgemeinen können Sie den Bandbreitenverbrauch entweder pro Clientgerät oder pro Benutzer regulieren. Dieser Anwendungsfall zeigt, wie Sie den Bandbreitenverbrauch pro Client über einen Zeitraum von einer Stunde auf 100 MB begrenzen können. Der Anwendungsfall zeigt auch, wie Sie den Bandbreitenverbrauch pro Benutzer über einen Zeitraum von einer Stunde auf 100 MB regeln können, indem Sie einen benutzerdefinierten Header verwenden, der den Benutzernamen bereitstellt. In beiden Fällen wird die Verfolgung des Bandbreitenverbrauchs über einen bewegten Zeitraum von einer Stunde erreicht, indem der Intervallparameter in der Stream-ID auf 60 Minuten gesetzt wird. Die Anwendungsfälle zeigen auch, wie Sie eine HTML-Seite importieren können, die an einen Client gesendet werden soll, der den Grenzwert überschritten hat. Das Importieren einer HTML-Seite vereinfacht nicht nur die Konfiguration der Responder-Aktion in diesen Anwendungsfällen, sondern vereinfacht auch die Konfiguration aller Responder-Aktionen, die dieselbe Antwort benötigen.

So beschränken Sie den Bandbreitenverbrauch pro Benutzer oder Clientgerät mit der Befehlszeilenschnittstelle

Führen Sie in der Befehlszeilenschnittstelle die folgenden Aufgaben aus, um Aktionsanalysen für die Begrenzung des Bandbreitenverbrauchs eines Clients oder Benutzers zu konfigurieren. Jeder Schritt enthält Beispielbefehle und deren Ausgabe.

  1. Richten Sie Ihre Lastausgleichskonfiguration ein. Konfigurieren Sie den Lastenausgleich virtuellen Server mysitevip, und konfigurieren Sie dann alle Dienste, die Sie benötigen. Binden Sie die Dienste an den virtuellen Server. Im folgenden Beispiel werden zehn Dienste erstellt und die Dienste an mysitevip gebunden.

    > add lb vserver mysitevip HTTP 192.0.2.17 80
     Done
    > add service service[1-10] 192.0.2.[240-249] HTTP 80
    service "service1" added
    service "service2" added
    service "service3" added
    .
    .
    .
    service "service10" added
     Done
    > bind lb vserver vserver1 service[1-10]
    service "service1" bound
    service "service2" bound
    service "service3" bound
    .
    .
    .
    service "service10" bound
     Done
    
  2. Konfigurieren Sie den Stream-Selektor. Konfigurieren Sie einen der folgenden Stream-Selektoren:

    • Um den Bandbreitenverbrauch pro Client zu begrenzen, konfigurieren Sie einen Stream-Selektor, der die Client-IP-Adresse identifiziert.

       > add stream selector myselector CLIENT.IP.SRC
        Done
      
    • Um den Bandbreitenverbrauch pro Benutzer auf der Grundlage des Wertes eines Anforderungs-Headers, der den Benutzernamen bereitstellt, zu begrenzen, konfigurieren Sie einen Stream-Selektor, der den Header identifiziert. Im folgenden Beispiel lautet der Name der Kopfzeile UserHeader.

       > add stream selector myselector HTTP.REQ.HEADER(“UserHeader”)
        Done
      
  3. Konfigurieren Sie einen Stream-Bezeichner. Konfigurieren Sie einen Stream-Bezeichner, der den Stream-Selektor verwendet. Stellen Sie den Intervallparameter auf 60 Minuten ein.

    > add stream identifier myidentifier myselector -interval 60 -sampleCount 1 -sort BANDWIDTH
     Done
    
  4. Konfigurieren Sie die Responderaktion. Importieren Sie die HTML-Seite, die Sie an Benutzer oder Clients senden möchten, die das Bandbreitenverbrauchslimit überschritten haben, und verwenden Sie dann die Seite in Responderaktion crossed_limits.

    > import responder htmlpage http://192.0.2.20:80/stdpages/wait.html crossed-limits.html
    This operation may take some time, Please wait...
    
     Done
    > add responder action crossed_limits respondwithhtmlpage crossed-limits.html
     Done
    
  5. Konfigurieren Sie die Responder-Richtlinien. Konfigurieren Sie die Responderrichtlinie myrespol1 mit der Regel ANALYTICS.STREAM (myidentifier) .COLLECT_STATS und der Aktion NOOP. Konfigurieren Sie dann die Richtlinie myrespol2, um zu bestimmen, ob ein Client oder Benutzer die Grenze von 100 MB überschritten hat. Die Richtlinie myrespol2 ist mit der Responderaktion crossed_limits konfiguriert.

    > add responder policy myrespol1 'ANALYTICS.STREAM("myidentifier").COLLECT_STATS' NOOP
     Done
    > add responder policy myrespol2 'ANALYTICS.STREAM("myidentifier").BANDWIDTH.GT(1048576)' crossed_limits
     Done
    
  6. Binden Sie die Responderrichtlinien an den virtuellen Lastausgleichsserver. Die Richtlinie myrespol1, die nur statistische Daten sammelt, muss die höhere Priorität und einen GOTO-Ausdruck von NEXT haben.

    > bind lb vserver mysitevip -policyName myrespol1 -priority 1 -gotoPriorityExpression NEXT
     Done
    > bind lb vserver mysitevip -policyName myrespol2 -priority 2 -gotoPriorityExpression END
     Done
    
  7. Testen Sie die Konfiguration. Testen Sie die Konfiguration, indem Sie HTTP-Testanforderungen von mehreren Clients oder Benutzern an den virtuellen Lastausgleichsserver senden und mithilfe des Befehls stat stream identifier die Statistiken anzeigen, die für den angegebenen Bezeichner gesammelt werden. Die folgende Ausgabe zeigt Statistiken für Clients an.

    > stat stream identifier myidentifier -sortBy BandW –fullValues
    Stream Session statistics
                              Req           BandW
    192.0.2.30                5000          3761
    192.0.2.31                29            2602
    192.0.2.32                25            51
    
                              RspTime       Conn
    192.0.2.30                2             0
    192.0.2.31                0             0
    192.0.2.32                0             0
     Done
    >
    

So begrenzen Sie den Bandbreitenverbrauch pro Benutzer oder Client-Gerät