Beiträge getagged mit Webentwicklung
Einfache Lasttests mit Apache ab
Verfasst von David unter Webentwicklung und Co am 7. Februar 2010
Heute möchte ich euch ein kleines, aber nützliches Tool vorstellen.
Um die Verfügbarkeit einer Internetseite unter hohen Belastungen zu testen, kann man einen Lastgenerator benutzen. Dieser generiert viele Anfragen gleichzeitig und simuliert so ein hohes Benutzeraufkommen. Apache ab ist ein konstruierter Lastgenerator, welcher nicht versucht einen realistischen Nutzer vorzutäuschen, sondern viele Anfragen an eine konkrete Seite schickt.
Ein konkreter Test mit Apache ab ist relativ einfach und sieht wie folgt aus:
macbook:~ david$ ab -n 200 -c 50 http://test.webserver/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking test.webserver (be patient)
Completed 100 requests
Completed 200 requests
Finished 200 requests
Server Software: Apache/2.2.12
Server Hostname: test.webserver
Server Port: 80
Document Path: /
Document Length: 927 bytes
Concurrency Level: 50
Time taken for tests: 22.955 seconds
Complete requests: 200
Failed requests: 0
Write errors: 0
Total transferred: 243400 bytes
HTML transferred: 185400 bytes
Requests per second: 8.71 [#/sec] (mean)
Time per request: 5738.652 [ms] (mean)
Time per request: 114.773 [ms] (mean, across all concurrent requests)
Transfer rate: 10.36 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 2.0 1 6
Processing: 1026 5446 2558.8 5007 12242
Waiting: 1025 5432 2554.1 4918 12194
Total: 1029 5448 2558.0 5013 12243
Percentage of the requests served within a certain time (ms)
50% 5013
66% 5494
75% 5937
80% 6548
90% 10424
95% 11114
98% 11738
99% 12195
100% 12243 (longest request)
Dieser Befehl hat 200 Anfragen ausgeführt, von denen maximal 50 gleichzeitig verschickt wurden. Es wurden 8.71 Anfragen pro Sekunde geschickt. Eine Anfrage dauerte ca. 114.773 ms. Die Statistiken geben noch Auskunft über das übertragene Datenvolumen, Übertragungsdauer und Erreichbarkeit.
Mit Apache ab kann man relativ einfach und schnell Lasttests durchführen, aber einen echten Nutzer simulieren kann man damit nicht.
Buch: Grundlagen von Datenbanksystemen
Verfasst von David unter Webentwicklung und Co am 28. Januar 2010

Da ich mich derzeit auf ein paar Klausuren vorbereiten muss, komme ich nicht wirklich dazu meinen Blog zu pflegen. Deshalb möchte ich euch heute ein Buch vorstellen, welches ich im letzten Semester genutzt habe um mich auf eine Informatik Klausur vorzubereiten. Gerade für Webentwickler spielen Datenbanken eine große Rolle, fundiertes theoretisches Hintergrundwissen kann deshalb nicht Schaden. Darum möchte ich euch das Buch ”Grundlagen von Datenbanksystemen” von A. Elmasri und B. Navathe vorstellen. Inhaltlich deckt das Buch folgende Schwerpunkte ab:
- Grundkonzepte
(Architektur, ER, EER) - Datenmodelle und Datenbanksprachen
(RDB, relationale Algebra, OODB, SQL) - Entwurfsfragen
(Normalisierung, Entwurf) - Mehrnutzerbetrieb
(Transaktionen, Nebenläufigkeit, Sicherheit)
Mit diesen Schwerpunkten ist es für eine Einführungsvorlesung oder die praktische Arbeit eines Webentwicklers bestens geeignet. Durch die Zusammenfassungen am Ende eines Kapitels und die vielen praxisnahen Beispiel schaffen es die Autoren einen einfachen Einstieg in das theoretische Hintergrundwissen für Datenbanksysteme zu liefern. Durch die Wiederholungsfragen und Übungen zu jedem Kapitel kann man gleichzeitig prüfen, ob man den Stoff verstanden hat. Für Praktiker ist vor allem das Kapitel Entwurfsfragen interessant, dadurch kann man schon beim nächsten Datenbankentwurf Fehler vermeiden, welche einem sonst erst später auffallen.
Das Buch aus dem Pearson Verlag ist ca. 560 Seiten stark und empfehlenswerte Lektüre sowohl für Studenten, als auch für Praktiker.
PHP Entwicklungsserver auf dem Mac
Verfasst von David unter Webentwicklung und Co am 24. Januar 2010
Da ich meine PHP Anwendungen gerne lokal entwickle, um lästiges hin und her kopieren oder lange Wartezeiten zu vermeiden, brauche ich einen Webserver mit PHP und MySql (eventuell noch ein paar PEAR oder PECL Pakete, Imagemagick … ) auf meinem Laptop.
Da ich seit einem halben Jahr mit einem MacBook arbeite (was das Arbeiten an sich sehr vereinfacht), konnte ich nicht einfach “apt-get install apache2 … ” in die Konsole eingeben, sondern musste mir etwas anderes einfallen lassen. Die Pakete von Hand zu installieren, wirkte mir zu aufwändig, deshalb habe ich erstmal vorlieb mit XAMPP nehmen müssen. Das hat für den Anfang auch ganz gut funktioniert, nur hat es mich nicht wirklich glücklich gemacht, da alles etwas umständlich ist und die Konfiguration meist sehr stark vom spätere Livesystem abweicht.
Die für mich perfekte Lösung habe ich erst durch den Tip eines Freundes bekommen (keine Ahnung warum ich da nicht selbst drauf gekommen bin). Ich habe mir einfach VirtualBox installiert, eine virtuelle Maschine angelegt und Ubuntu Server installiert. Und siehe da, alles funktioniert wie ich es mir vorgestellt habe. Die Vorteile:
- kein hin und her kopieren über die langsame Internetleitung/Offline arbeiten
- Konfiguration wie das spätere Livesystem/saubere Entwicklungsumgebung
- Beliebige Wahl des Betriebssystems
- relativ einfach zu installieren
- kein Webserver im normalen System nötig
- bei Konfigurationsfehler setzt man die Maschine einfach zurück
Wenn ich jetzt also entwickeln möchte, wecke ich die Virtuelle Maschine aus dem Schlaf auf, mounte meine home directory und öffne den Webserver. Die IP des Webservers habe ich mir dafür in die /etc/hosts geschrieben.
Letzte Kommentare