Ich versuche, eine Funktion zu erstellen, die 100 Anrufe pro Sekunde sendet und alle 60 Sekunden auf 200 Anrufe pro Sekunde erhöht. Der Code ist unterC Testgenerator für Last
for (i = 1; i <= 240; i++) {
for (j = 0; j <= 100; j++) {
send_tcp();
}
sleep(1);
if(i %60 == 0) j=j+200;
else j = j*1;
}
Die send_tcp() ist im Grunde nur eine Buchse öffnen und TCP an eine bestimmte Adresse senden. Das Problem ist, dass für j = 100 jede Sekunde korrekt gesendet wird. Wenn jedoch j = 300, geht es nach 3 Sekunden, um 300 Tcp zu senden, und es dauert 10 Sekunden, um eine 500 Tcp-Anforderung zu senden. Grundsätzlich, wenn das j in der Zahl geht, kann ich j Anruf/Sekunde nicht bekommen.
mir dieses Denken ist nur ein logischer Fehler, aber ich kann nicht herausfinden, wie J Anruf/Sekunde zu senden, unabhängig davon, welche Zahl j ...
für jede Antwort schätzen würde
- Sorry für mein schlechtes Englisch, im Grunde muss ich j Nummer von "send_tcp"/Sekunde machen. Wenn J jedoch größer wird, scheint die J-Nummer von "send_tcp" nicht/Sekunde zu sein, sondern wird zu/3 Sekunden oder mehr.
ah ja danke für das Zeigen. Ich habe diesen Fehler auch gemacht. Aber wenn Sie dies versuchen, wenn n_class zum Beispiel 500 ist, wird eine Schleife von send_tcp() viel länger dauern als 1 Schleife von 100 send_tcp(). Wenn 100 send_tcp in 1 Sekunde gesendet werden kann, kann jede 500 send_tcp() vielleicht 3 Sekunden dauern, um zu beenden. während ich tatsächlich n_calls pro Sekunde senden muss, egal wie groß die n_calls sind. (Entschuldigung, es ist schwierig, dies auf Englisch auszudrücken .. aber ich hoffe, ich gebe meine Absicht) – heike
Ihr Ziel von "send n_calls pro Sekunde, egal wie groß die n_calls sind" ist nicht erreichbar. Sie benötigen unbegrenzte Bandbreite und Verarbeitungsleistung. –
ja die Absicht ist das, aber ich beschränke es auf 100.300.500. Aber das Ergebnis ist, dass für 100 Anfrage pro Sekunde ausgeführt wird, aber für 300 und 500 dauert es länger. Daher macht es die Server-Seite schwierig, die genaue Verarbeitungszeit zu erfassen ... Wie kann ich zum Beispiel n_class = 500/Sekunden (nicht 3 Sekunden) senden? – heike