Beiträge getagged mit Webserver

Einfache Lasttests mit Apache ab

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.

, , , ,

2 Kommentare

Buch: Grundlagen von Datenbanksystemen


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.

, , , , ,

Keine Kommentare

PHP Entwicklungsserver auf dem Mac

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.

, , , ,

Keine Kommentare

Apache Mod Rewrite aktivieren

Wenn man eine Internetseite für Suchmaschinen optimieren will, kommt man um ein URL rewriting nicht herum. Das Apache Modul mod_rewrite ist genau so ein URL rewriter, aber um ihn zu benutzen, muss das Modul erst einmal aktiviert bzw. geladen werden. Und genau das, werde ich hier in einem kurzen Tutorial erklären.

Debian:

Unter Linux Debian kann man mod rewrite mittels “a2enmod” recht einfach aktivieren, dafür einfach als Superuser (root) folgendes per SSH senden:

a2enmod rewrite

Nun bei Schritt 2. (Linux) weiter machen.

Linux:

Erstelle einen symbolischen Link von der Datei “/etc/apche2/mods-enabled/rewrite.load” zur Datei    “/etc/apache2/mods-available/rewrite.load”, um rewrite.load mit dem nächsten Apache restart zu laden.

ln  /etc/apache2/mods-available/rewrite.load /home/david/Desktop/rewrite.load –symbolic

(Pfad zu apache2 kann abweichen.)

Nun müssen wir noch das Umschreiben der URL im Vhost erlauben. Den <Directory *> Bereich des Verzeichnisses, in dem rewrite erlaubt werden soll, findet man meistens in der passenden .conf Datei in /etc/apache2/sites-enabled in dem jeweiligen Vhost (<vhost>). Hier nun den Eintrag AllowOverride suchen und auf All setzen. Dann den Eintrag Options suchen und um +FollowSymLinks erweitern. Das Ganze sieht dann ungefähr so aus:

AllowOverride All
Options +FollowSymLinks

(Unter Options können natürlich noch andere Werte auftauchen, diese einfach stehen lassen.)

Nun den Apache noch neu starten und mod rewrite sollte aktiviert sein und funktionieren.

/etc/init.d/apache2 restart

XAMPP unter Windows:

Um das Modul mod_rewrite zu aktivieren in der Datei “\apache\conf\httpd.conf” im XAMPP Ordner die Zeile “#LoadModule rewrite_module modules/mod_rewrite.sosuchen und die Raute am Anfang der Zeile entfernen. Ergebnis:

LoadModule rewrite_module modules/mod_rewrite.so

Den <Directory *> Bereich des Verzeichnisses, in dem rewrite erlaubt werden soll in der selben Datei suchen. Hier nun den Eintrag AllowOverride suchen und auf All setzen. Dann den Eintrag Options suchen und um +FollowSymLinks erweitern. Das Ganze sieht dann ungefähr so aus:

AllowOverride All
Options +FollowSymLinks

(Unter Options können natürlich noch andere Werte auftauchen, diese einfach stehen lassen.)

Jetzt den Apache2 noch neu starten und alles ist fertig.

Fehler:

Eine gute Zusammenfassung der häufigsten Fehler findet man hier.

, ,

3 Kommentare

Server administration mit ispCP. Kostenlos!


Virtual Server Hosting: Mit garantierten RAM-Ressourcen, Prozessor-Power und vollen Zugriffsrechten!
Wegen meines Serverumzuges, suchte ich nach einem kostenlosen Admintool zur Verwaltung meines Webservers.

Durch den Tipp eines Freundes, bin ich dann auf die kostenlose Alternative zu Programmen wie Confixx oder Plesk aufmerksam geworden: ispCP. Zum Test, hab ich es auch gleich mal auf einem Debian Etch Server installiert und mir alles ein wenig an geguckt.

IspCP ist zwar bisher nur als RC2c verfügbar, aber ich habe bisher noch keine Bugs bemerkt. Nach der Installation, die übrigens sehr leicht ist, steht das Webinterface denen von Confixx und Plesk in keine Bereich nach. Der Admin kann Reseller anlegen, der wiederum die User. Der Endbenutzer kann im Admininterface alles erdenkliche einstellen, angefangen bei den Mysql Datenbanken über Mail Accounts bis hin zum FTP Account. Für Webhostanbieter beinhaltet das Interface sogar ein Ticketsystem, über welches Supportanfragen schnell geklärt werde können.
IspCp ist komplett kostenlos und eignet sich für Linux Systeme mit Debian, Suse, Fedora, Gentoo oder Ubuntu. Wie schon gesagt ist auch die Installation sehr leicht, auf meinem komplett neu installiertem Server ohne Apache und Co hat die Installation vielleicht 30 Minuten gedauert. Die benötigten Pakete kann man mit der Ausgabe einer Datei sehr leicht installieren und muss nicht alle Pakete zusammensuchen. In der Planung steht wohl auch ein System, um mehrere Server mit einem Interface zu verwalten, wie es bei dem Vorgänger VHCS der Fall war.

Auf der Homepage, beschreiben die Macher ispCP so:

ispCP is a project founded to build a Multi Server Control and Administration Panel without limits. Until there is an usable version a lot of time will pass by. This Control Panel should be usable by any Internet Service Provider (isp).
To develop such a tool, we need a lot of time. To gain your interest, we decided to support the dying VHCS project. VHCS means Virtual Hosting Control Panel. It is a powerful tool to administrate your webhosting services. Our fork of VHCS is called the ispCP Omega.

Die Roadmap ist wohl ein wenig in Verzug gekommen, wenn man ihr allerdings ein wenig Glauben schenken kann, sollte demnächst RC3 erscheinen und in absehbarer Zeit auch ein Stable Release 1.0.0. Die Wishlist lässt außerdem auf weitere spannende Features hoffen.

Insgesamt eine sehr interessante Applikation, die mehr als nur eine Alternative ist. ispCP wird wohl bei so manchen Konkurenten noch für Aufregung sorgen.


, ,

2 Kommentare