Wie gestern schon beschrieben kann man super ab (Apache Bench) die Performance seiner Applikationen im Web testen. Durch Zufall hab ich in meiner Ports Sammlung noch ein anderes Programm gefunden das auch sehr vielversprechend aussieht: siege.
Dort kann man auch mehrere URLs testen, einen User simulieren und noch viel mehr. Damit habe ich allerdings noch nicht so viel Erfahrung. Hab aber gleich mal meine App getestet:
siege -c 100 -t 10s http://localhost/myProject/
Die Ausgabe sieht fast so aus wie beim ab:
Transactions: 545 hits
Availability: 100.00 %
Elapsed time: 17.85 secs
Data transferred: 1.33 MB
Response time: 1.02 secs
Transaction rate: 30.53 trans/sec
Throughput: 0.07 MB/sec
Concurrency: 31.01
Successful transactions: 604
Failed transactions: 0
Longest transaction: 3.31
Shortest transaction: 0.03
Mit einem Config File kann man aber auch noch mehrere Urls abfragen und so ein realistischeres Ergebnis erzielen. Mehr dazu steht in der Docu von Siege oder in Tutorials die man so im Netz findet: Regression testing with Siege.
Ich denke mal das solche Tools auch eine wunderbare Möglichkeit sind verschiedene Hoster zu testen oder einem Kunden zu zeigen wie Vorteilhaft eine Optimierung seiner Applikation wäre oder einfach nur welchen extremen Effekt der Einbau eines Caches hat.
Wer sich mit Websiten beschäftigt die von mehr als 100 Besuchern am Tag besucht werden und nicht wirklich viel im Terminal macht freut sich eventuell über Apache Bench.
Das ist ein Programm das man auf OSX ganz einfach im Terminal laufen lassen kann um seinen Server mal so richtig schwitzen zu lassen.
Ein üblicher (und auch vergleichbarer) Aufruf ist der folgende:
ab -c 10 -t 60 http://localhost/myProject/
Was 60 Sekunden lang, immer 10 Requests auf die Seite abfeuert und einem danach folgende Ausgabe generiert:
Finished 3102 requests
Server Software: Apache/2.0.59
Server Hostname: localhost
Server Port: 80
Document Path: /myProject/
Document Length: 2005 bytes
Concurrency Level: 10
Time taken for tests: 60.002 seconds
Complete requests: 3102
Failed requests: 303
(Connect: 0, Receive: 0, Length: 303, Exceptions: 0)
Write errors: 0
Total transferred: 7530897 bytes
HTML transferred: 6211149 bytes
Requests per second: 51.70 [#/sec] (mean)
Time per request: 193.431 [ms] (mean)
Time per request: 19.343 [ms] (mean, across all concurrent requests)
Transfer rate: 122.57 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 1.2 0 11
Processing: 30 186 663.6 157 20630
Waiting: 0 161 83.6 155 621
Total: 30 187 663.6 157 20631
Percentage of the requests served within a certain time (ms)
50% 157
66% 196
75% 219
80% 235
90% 276
95% 309
98% 354
99% 386
100% 20631 (longest request)
In dieser Ausgabe kann man erkennen das das aktuelle Projekt so ca. 50 Leute gleichzeitig aushalten könnte. Im vergleich mit anderen Projekten kann man dann Rückschlüsse darauf ziehen wie gut man programmiert hat ;-)
Viele benutzen ab auch zum Vergleich von verschiedenen Frameworks die ich euch natürlich nicht vorenthalten möchte: Test1, Test2 und Test3.
ab kann man wie üblich über macports installieren (OSX Developer Tools müssen installiert sein):
sudo port install ab
Für alle die mal gerne in großen Listen auf ihrem Apple Suchen und gerne wissen wollten wie viel da denn drauf ist (in einem Ordner)
Alle HD-Filme daran erkennen das man die irgendwie im Dateinamen mit "HD" markiert hat:
$ ls | grep HD
Wie viele können das wohl sein?
$ ls | grep HD | wc -l
Das ganze kann man auch einfach abspeichern!
$ ls | grep HD > ~/Desktop/HD_Movies.txt
Speichert euch alles mit HD im Namen auf dem Desktop als Textdatei.
So und um das mal ein wenig praktisch zu machen: Ein Befehl, der euch alle HD Filme aus eurem Home-Movie Ordner auf dem Desktop speichert:
$ ls ~/Movies/ | grep HD > ~/Desktop/HD_Movies.txt
Das ~ bekommt ihr btw. mit Apfel+N (auf der deutschen Klampfe), danach ein Leerzeichen machen!
Das schöne ist - jeder Mac kann das! Ja sogar jeder auf nem *-NIX System basierender Rechner! Ich hab das nicht rausgefunden. Aber das sog. Piping ist so alt und trotzdem noch so toll aktuell und cool - zieht euch hoffentlich die Socken aus. Demnächst noch mehr - "Wie finde ich alle MP3s von einem Künstler" ... bald!
Kommentieren und noch mehr nachfragen ist erwünscht!
Der erste Blogeintrag in dem neuem Zeitalter:
23, Illuminati und Hacker Allüren, wer den echten Scheiss haben will - sollte sich Kuckuksei reinpfeifen! (Gibt leider keine neue Auflage - sind ein paar Rechtschreibfehler drin)
Clifford Stoll - Astronomie Crack hat in den 80ern Tron und seine Schergen aufliegen lassen. Auf Basis seiner Notizen die mit nur 75 Cent Defizit starteten verfolgt er (sehr schön beschrieben) den Weg von Berk(e)ley nach Deutschland (damals BRD).
Chliff is mittlerweile echter Fan von sog. Klein Bottles, Reale Abbilder von Objekten die keine zwei Seiten haben! Wenn man mal bei Wickipedia schaut sieht man das echt freaky Sachen gibt. Objekte, diese Kleinflaschen oder dieses - was wahrscheinlich alle kennen - Möbiusband - die nur eine Seite haben! Wie ’ne Serviette mit nur einer Seite! Kannste nich umdrehen!
Aber dazu noch mehr: Cliff hat so’n paar Bücher geschrieben, und nachdem ich das Kuckucksei gelesen habe wollte ich ihn sehen. Auf Photos oder Film - was ist das für ein Typ. Da hilft google nicht viel, gibt nur Photos von heute.
Es gibt allerdings auch ein Video:
Clifford Stoll: 18 minutes with an agile mind
Der Typ is echt der super Assoziationsirgendwasdenker! In einer Sekunde erzählt er von damals, dann gibt es ein Wasser und danach erklärt er in kurzen Sätzen wie man die Wellenlänge auch bekannt als λ (keines lamda) misst. Schaut euch das Video an! - Achso, auch das Buch lesen!
Im Amerikanischen Fernsehen gab es auch eine Dokumentation über das Tagebuch von Cliff in dem er ja alle 3-Buchstaben-Agenturen kennen und verstehen lernt. Wenn wer das Teil auf Tape hat, oder mir sagen kann wo es das gibt soll er mir Bescheid sagen.