Ich muss einen Server über eine Liste von 100k Post-Requests pro Tag stresstesten. Jede Anfrage muss zu einem gegebenen festen Zeitstempel beginnen. Der kleinste Zeitunterschied zwischen zwei Anfragen beträgt etwa 100 ms.Stresstest-Server: Anfragen zu bestimmten Zeitpunkten starten
Beispiel:
12:08:38.971 url1
12:08:39.429 url2
12:08:40.186 url3
12:08:40.444 url4
...
Ich werde Perl oder C verwenden, um den Stresstest zu implementieren. Anforderungen werden mit "curl" ausgeführt, Threading wird verwendet, da Antworten typischerweise länger als 100 ms sind.
Mein Problem ist es, eine Art von Warteschlange zu füllen, die die Anfragen zu den angegebenen festen Zeiten aus der Liste startet.
Meine erste Idee ist es, eine while-Schleife (zB für einzelne Anforderung) zu verwenden und dauerhaft die Zeitstempel überprüfen:
#include <stdio.h>
#include <sys/time.h>
struct timeval time;
int t_sec=1496064929;
int t_usec=100;
int request_started=0;
int main(){
while(1){
gettimeofday(&time, NULL);
if(time.tv_sec == t_sec && time.tv_usec > t_usec && request_started == 0){
printf("Request start at %d %d\n", time.tv_sec, time.tv_usec);
request_started=1;
}
}
}
Aber dieser Code ist bei weitem nicht ideal ... Gibt es irgendeine Art von Scheduler-Bibliothek welche Anfragen im Subsekundenbereich bearbeiten können? Oder vielleicht, gibt es bereit, Benchmark-Tools zu verwenden, die solche Anfragen aus der gegebenen Liste erzeugen können (ich habe Apache-Benchmark, httperf und Belagerung bereits ohne Glück überprüft)?
Vielen Dank im Voraus!
Ist es zwingend erforderlich, Anfrage nur zu einem bestimmten Zeitstempel zu senden, oder Sie wollen im Grunde einen Server mit 100k Anfragen betonen genug Zeit zwischen zwei aufeinander folgenden Anfrage zu gewährleisten, zwei Anfragen nicht am selben Sockel – Pras
Leider Software-Empfehlungen sind Off-Topic auf Stack Overflow. Du könntest aber vielleicht etwas schreiben, das Crond oder etwas ähnliches verwendet. Du könntest ein Programm schreiben, das deine Datei in eine crontab konvertiert (obwohl ich nicht sicher bin, ob crontab Mikrotips erlaubt, vielleicht mit einem Addon). – simbabque
Ja, es ist zwingend erforderlich, die Anfragen zu bestimmten Zeitstempeln zu senden. Unser Kunde liefert die Liste mit den Zeitstempeln und den Nachfragen. Die Liste soll die Anzahl der Anfragen über den Tag hinweg wiedergeben. Viele Anfragen zu Arbeitszeiten - nur einige Anfragen in der Nacht. – MPH