subshells mit wget für Lasttests?
Ich möchte einen Lasttest für eien Webapplikation durchführen.
Als Ansatz dachte ich das ich mit wget exakt die Seitenaufrufe durch einen Browser simulieren, während ich auf dem Server meinen Profiler laufen lasse.
Jeder Client soll dabei mehrere Seitenaufrufe durchführen (also mehrer wget-aufrufe, die dieselbe cookie-datei verwenden)
Um nun mehrer Clients parallel laufen zu lassen, dachte ich daran das ich mehrere subshells starte, die jeweils im Hintergrund laufen. Jede subshell führt dann die unterschiedlichen wget aufrufe aus. Die cookie-datei und log-datei ist in jeder subshell eine andere.
Das Scrip sieht nun so aus:
#
i=0
while [ $i -lt $1 ]
do
i=`expr $i + 1`
echo i: $i
#
Als Ansatz dachte ich das ich mit wget exakt die Seitenaufrufe durch einen Browser simulieren, während ich auf dem Server meinen Profiler laufen lasse.
Jeder Client soll dabei mehrere Seitenaufrufe durchführen (also mehrer wget-aufrufe, die dieselbe cookie-datei verwenden)
Um nun mehrer Clients parallel laufen zu lassen, dachte ich daran das ich mehrere subshells starte, die jeweils im Hintergrund laufen. Jede subshell führt dann die unterschiedlichen wget aufrufe aus. Die cookie-datei und log-datei ist in jeder subshell eine andere.
Das Scrip sieht nun so aus:
#
- Schleife die $1 durchläufe macht
i=0
while [ $i -lt $1 ]
do
i=`expr $i + 1`
echo i: $i
#
- Subshell als hintergrundprozess starten
- 1. wget aufruf --> legt cookie-datei an
- weitere wget aufrufe, verwenden die cookie-datei
(
#
wget -a logfile.$i.log --save-cookies cookies.$i.txt --keep-session-cookies http://localhost.... --post-data "...."
#
wget -a logfile.$i.log --load-cookies cookies.$i.txt --keep-session-cookies http://localhost... --post-data "..."
...
) &
done
Das funktioniert auch
Allerdings werden die Laufzeiten für jeden Test länger, wenn mehrer subshells gestartet werden (ist ja auch logisch, das sind ja konkurrierende Prozesse)
bei 1 subshell dauert das ganze ca. 10 sec
bei 2 subshells bereits 16sec / 5min
bei 2 subshells 9min / 9 min
bei 2 subshells 7min / 9min
bei 8 subshells 31 min / 20 min / 19 min / 21 min / ....
etc.
Mir kommt das irgendwie zu langsam vor, blockieren sich die wgets alle gegenseitig?
Ist der ganze Ansatz naiv?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 58688
Url: https://administrator.de/forum/subshells-mit-wget-fuer-lasttests-58688.html
Ausgedruckt am: 04.05.2025 um 18:05 Uhr
2 Kommentare
Neuester Kommentar

LOL, sag mir die URL per PN, dann kriegste 'nen netten Lasttest... (sofern öffentlich zugänglich)
Lonesome Walker
Lonesome Walker