Systemtuning mit S A R

Veröffentlicht in Wissen am 15.09.2006

0

Dass Grundlagenforschung wichtig ist, zeigt der unter anderem an den deutschen Wissenschaftler Prof. Theodor W. Hänsch verliehene Nobelpreis für Physik. Prof. Hänsch, der auf dem Gebiet der Grundlagenforschung arbeitet, hat eine Methode zur exakten Bestimmung der Frequenz von Laserstrahlung mit entwickelt. Einen Nobelpreis werden wir wohl nicht gewinnen - dennoch hat es auch was mit Grundlagenforschung zu tun. Jeder Admin sollte sich, nicht nur bei Engpässen, mit der Analyse seines Linux Servers auskennen, dabei hilft ihm die Sysstat [1] Werkzeugsammlung vor allem mit dem SAR - System Activity Reporter.

Dieser kann ohne das System zu belasten sehr effektiv Aufzeichnungen aus allen vier Bereichen der Performance Analyse machen, die der Admin zu einem späteren Zeitpunkt auswerten kann. Somit lassen sich sehr elegant Lastprofile erstellen. Falls notwendig kann der SAR auch Echtzeitaufzeichnungen machen, die den aktuellen Stand des Servers darstellen. Die Daten bekommt SAR, wie die meisten Tools (vmstat, top etc.), aus dem »/proc« Dateisystem.

Von Grundlagen…
Zur Ermittlung des Gesamtzustandes eines Systems gibt es vier Kategorien, die betrachtet werden müssen:

  • Prozessor
  • Speicher
  • I/O
  • Netzwerk

Um die Ausgaben von SAR zu verstehen, und auch korrekt interpretieren zu können, sind ein paar Basics unverzichtbar. In der “Run Queue” stehen die Prozesse, die auf Zuteilung eines Prozessors warten. Je mehr Prozesse warten, desto länger ist die Run Queue. Da ein Prozessor immer nur einen Prozess ausführen kann, Hyperthreading einmal ausgenommen, wird zwischen diesen in einem bestimmten Intervall gewechselt. Diesen Wechsel nennt man “Kontext Switch”. Um sicherzustellen, dass jeder Prozess eine faire Zuteilung der CPU erhält, unterbricht der Kernel periodisch den laufenden Prozess und weist einem anderen Prozess die CPU zu. Die Anzahl der periodischen Kontext Switche ist Abhängig von Architektur und Kernel Version. Die Anzahl ist einfach zu ermitteln, indem man sich die Angaben aus dem Proc Dateisystem holt: Listing 1

Listing 1: Kontext Switche ermitteln.
[root@baldur ~]# cat /proc/interrupts | grep timer; sleep 10; cat /proc/interrupts | grep timer

0: 7520081 XT-PIC timer
0: 7530091 XT-PIC timer

[root@baldur ~]#

Die Differenz (10010) entspricht der Anzahl Kontext Switche in zehn Sekunden, das bedeutet etwa 1001 in der Sekunde.
Die ist wichtig zu wissen, falls die tatsächlich ausgeführten Kontext Switche deutlich höher ausfallen.

…und Foschung
Das Sysstat Paket liegt den meisten Distributionen bei und kann einfach mittels »yum install sysstat« oder »apt-get install sysstat« installiert werden. Nach der Installation sollte man erstmal einen »cronjob« eintragen, der das System etwas beobachtet. Das Listing 2 zeigt wie ein solcher Eintrag aussehen könnte.

Listing 2: Cron Eintrag für die Systembeobachtung
*/10 * * * * root /usr/lib/sa/sa1 1 1
53 23 * * * root /usr/lib/sa/sa2 -A

Bei dem ersten Eintrag handelt es sich um Script, welches den “sadc - System activity data collector” mit dem Intervall von einer Sekunde einmal aufruft. Der zweite Eintrag sorgt dafür, dass ein Logrotate für die erstellten Protokolle durchgeführt wird. Von diesem Zeitpunkt an steht das System schon gut unter Beobachtung und dies ohne dasselbige zu belasten. Dies sollte auf jedem Linux System installiert sein, damit man erstens ein Gefühl dafür bekommt wie stark ein System ausgelastet ist und zweitens im Ernstfall einen Engpass sicher identifizieren kann.

CPU Engpässe identifizieren
Die wichtigsten Optionen um alle Aktivitäten der CPU zu identifizieren sind in Tabelle 1 zu finden. Falls Probleme auftreten ist die CPU auch die erste Anlaufstelle. Ein einfacher Aufruf von »sar -u 2 10« zeigt die prozentuale Auslastung der CPU. Hier kann man schon einen ersten Überblick bekommen, wo das Problem steckt (hoher %iowait- oder %user-Wert).

Tabelle 1:sar CPU Parameter

  • -c Anzahl der Prozesse, die pro Sekunde erzeugt werden
  • -I {irq|SUM|ALL|XALL} Anzal der Interrupts / Sekunde
  • -P {cpu|ALL} CPU-spezifische Informationen bei Mehrprozessorsystemen
  • -q Informationen zur Run Queue und des Load Average
  • -u Angaben zur CPU Auslastung (default)
  • -w Anzahl Kontext Switche

Speicher Engpässe identifizieren
Hier zeigt sich SAR genauso mächtig oder gar mächtiger als andere Performancetools. Es ist möglich den aktuellen Speicherverbrauch mit allen zugehörigen Parametern anzuzeigen. Im Vergleich zu anderen Tools setzt SAR die Angaben immer in Relation zur Zeit. Das versetzt den Admin in die Lage, Veränderungen im Speicherverbrauch über einen gewissen Zeitraum zu sehen, ohne die Differenz zwischen zwei Momentaufnahmen errechnen zu müssen. Tabelle 2 zeigt die Speicherrelevanten Optionen von SAR.

Tabelle 2:sar Speicher Parameter

  • -B Übersicht der Pageingstatistik
  • -W Anzahl Swap Pages In und Out
  • -r Gesamttübersicht über die Speichernutzung

I/O Engpässe identifizieren
Vorweg leider eine eher traurige Nachricht: Es ist mit dem aktuellen Linux Kernel nicht möglich den I/O Verbrauch einem einzelnen Prozess zuzuordnen. Aber in diesem Artikel geht es ja auch nicht um Prozessmonitoring, sondern um die Identifizierung von Systemengpässen. Die möglichen Optionen sind in diesem Fall auch nicht so umfangreich, wie bei der CPU oder dem Speicher. Ein Aufruf von »sar -d 2 10« gibt einen Überblick über den I/O-Verbrauch. Hier muss man natürlich wissen, wie man die Angaben interpretiert und die Festplatte mit der größten Last identifiziert. Die Ausgabe in Listing 3 zeigt ein Beispiel:

Listing 3: I/O Last per Device
Durchschn.: DEV tps rd_sec/s wr_sec/s

Durchschn.: dev1-0 0,00 0,00 0,00
Durchschn.: dev1-1 0,00 0,00 0,00
Durchschn.: dev1-2 0,00 0,00 0,00
Durchschn.: dev1-3 0,00 0,00 0,00
Durchschn.: dev1-4 0,00 0,00 0,00
Durchschn.: dev1-5 0,00 0,00 0,00
Durchschn.: dev1-6 0,00 0,00 0,00
Durchschn.: dev1-7 0,00 0,00 0,00
Durchschn.: dev1-8 0,00 0,00 0,00
Durchschn.: dev1-9 0,00 0,00 0,00
Durchschn.: dev1-10 0,00 0,00 0,00
Durchschn.: dev1-11 0,00 0,00 0,00
Durchschn.: dev1-12 0,00 0,00 0,00
Durchschn.: dev1-13 0,00 0,00 0,00
Durchschn.: dev1-14 0,00 0,00 0,00
Durchschn.: dev1-15 0,00 0,00 0,00
Durchschn.: dev3-0 31,09 5,97 6001,99
Durchschn.: dev22-0 0,00 0,00 0,00
Durchschn.: dev9-0 0,00 0,00 0,00

Die Ausgabe zeigt die durchschnittliche Last der Geräteknoten. Die zweite Spalte zeigt das jeweilige Device mit Major und Minor Nummer. Hier ist also das Device mit der Major-Nummer 3 und der Minor-Nummer 0 das einzige das vom System genutzt wird. Wenn man nun den sprechenden Namen des Devices ermitteln möchte, hilft ein »ls -l /dev | egrep ‘3,\W*0′«. Was uns folgende Ausgabe beschert »brw-r—– 1 root disk 3, 0 18. Jun 2006 hda«. Die Festplatte »hda« ist also die Gesuchte. Hier hilft SAR zu ermitteln, welche Festplatte am häufigsten beansprucht wird.

Ist das Netzwerk der Flaschenhals?
Wenn alle Bereiche gründlich untersucht wurden, aber die Anwendung immer noch träge ist, kann es eventuell am Netzwerk liegen. Aus eigener Erfahrung kann ich sagen, dass viele Software-Hersteller vorhandene Performanceprobleme schnell auf das Netzwerk abwälzen wollen. Um solchen Problemen auf die Spur zu kommen, ist SAR sicherlich ein guter Einstiegspunkt. Der erforderliche Aufruf »sar -n DEV 2 10« gibt einen Überblick (siehe Listing 4) über die Netzwerkstatistik.

Listing 4: Netzwerkstatistik
Durchschn.: IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s

Durchschn.: lo 6,09 6,09 407,74 407,74 0,00 0,00 0,00
Durchschn.: eth0 0,00 0,00 0,00 0,00 0,00 0,00 0,00
Durchschn.: wlan0 0,95 2,10 97,25 187,12 0,00 0,00 0,00

Die erste Spalte zeigt die jeweilige Netzwerkschnittstelle an. Die zweite und dritte Spalte zeigen die empfangenen / gesendeten Pakete pro Sekunde an. Die vierte und fünfte Spalte das Gleiche in Bytes pro Sekunde. Hie kann man schon ein Gefühl dafür entwickeln wie stark das Netzwerk ausgelastet ist und ob die Netzwerkschnittstelle der Flaschenhals ist. Aber auch die Kabel können zu trägen Antwortzeiten einer Applikation beisteuern. Um die entsprechenden Fehlerstatistiken anzusehen gilt der obige Aufruf, nur anstelle von DEV nimmt man EDEV, also »sar -n EDEV 2 10«. Sollten hier signifikante Größen auftreten kann ein Wechsel des Patchkabels oder des Netzwerkkartentreibers schon helfen. Das letzte Schlüsselwort ”SOCK” (sar -n SOCK 2 10) zeigt die Statistik über Sockets an. Hier kann SAR helfen einen Überblick über die genutzten Sockets (UDP oder TCP) zu bekommen.

Alt und doch nützlich
SAR ist in der alten Unix-Welt groß geworden. Viele Admins nutzen dieses Tool um einen Überblick über ihre Systeme zu bekommen. Dieses sogenannte Baselining ist wichtig um ein Gefühl für die betreuten Systeme zu ermitteln. Erst aufgrund dieses Gefühls kann der Admin im Ernstfall den Fehler schnell identifizieren und beheben. Im Vergleich zu anderen Tools liegt die Stärke von SAR in der Möglichkeit die Daten zu sammeln und auch historisch auszuwerten.

[1] Sysstat [http://perso.wanadoo.fr/sebastien.godard/]

Mit Lichtgeschwindigkeit Emails wieder finden

Veröffentlicht in Wissen am 14.09.2006

0

Jeder kennt es, wo ist doch die Mail, von Frau XY in der das wichtige Dokument angehängt war. Wenn man nicht weiß, an welchem Datum die Mail eingetroffen ist, bemüht man die Outlook Suche. Und jeder, der ein paar Mails mehr in seinem Posteingang hat, kennt das Spiel mit der Zeit. Eine Volltextsuche wird gäufig zur Geduldsprobe.

Abhilfe mit “Lookout”
Das kostenlos bereitgestellte Add-On Lookout wird inzwischen von Microsoft bereitgestellt und erweitert die Outlook Versionen ab 2000 um eine mächtige Sucherweiterung. Die Software ist unter [1] zu finden und in ein paar Sekunden installiert. Zuvor sollte man allerdings prüfen, ob das .NET Framewor installiert ist, was für die Software benötigt wird. Einmal installiert kann die Suche losgehen. Die Suche selbst ist nicht nur rasend schnell, sondern auch flexibel und vielseitig. Im einfachsten Fall gibt mane einen oder mehrere Begriffe in die Suchzeile der Symbolleiste ein.

Feldbezogene Suche
Für die Poweruser ist es sicherlich schön zu hören, dass eine feldbezogene Suche auch möglich ist. Diese errinert an die Suchfunktionen in einem Gmail-Account. Es ist also möglich das Feld anzugeben und den Wert mittels eines “:” zu trennen. Hier einige Beispiele:

  • subject:Termin (findet alle Emails in denen Termin im Betref steht)
  • category:VIP (Vielleicht alle Emails die von Abtielungsleitern sind)

Eine vollständige Übersicht erhält man wenn man in das Suchfeld “help” eingibt.

Infos
[1] Lookout Projektseite: [http://www.lookoutsoft.com/Lookout/download.html]

Anonym im Internet

Veröffentlicht in Wissen am 12.09.2006

0

So etwas ist möglich wenn man mit dem TOR (The Onion Routing) unterwegs ist. Das Onion Routing funktioniert nach dem Zwiebelschalenprinzip. Der Client wählt einen Pfad durch ein Netz spezieller Router und verschlüsselt die zu übermittelnden Daten in verschiedenen Schichten. Jeder Router im Pfad packt eine Schicht aus und sendet den Inhalt an den nächsten Router weiter. Auf diese Weise kennt jeder Router nur den sendenden Server und den Rechner, an den er das Paket weiterleitet, nicht aber Quelle und Ziel der Daten.

Proxy nicht wirklich anonym
Eine Möglichkeit, zumindest beim Surfen im WWW einen Hauch von Anonymität genießen zu können, ist der Einsatz eines so genannten Proxy-Servers. Dabei handelt es sich um Mittler zwischen dem Client, also dem Internet-Nutzer, und einem Web-Server.
Der Caching Proxy etwa vermag eine eigene IP zu erstellen, die nicht eindeutig auf einen bestimmten Nutzer verweist. Doch auch auf diese Weise surft man nicht 100%ig anonym. Denn es ist möglich, über die Auswertung des Datenverkehrs zwischen dem Nutzer-Proxy und dem Zielrechner-Proxy eine Identifizierung des Nutzers vorzunehmen und den Inhalt des Datenstroms zu bestimmen
In anbetracht der Tatsache, dass die TOR Software kostenlos und ohne viel Installationsaufwand eingesetzt werden kann. TOR kann unter [1] bezogen werden und ist für Windows und Linux verfügbar.

Infos
[1] TOR Homepage [http://tor.eff.org/]

Gmail effizient nutzen

Veröffentlicht in Wissen am 11.09.2006

0

Jeder, der sich zu denjenigen Zählen kann, der einen Gmail-Account besitzt oder zumindest die Möglichkeit hat an einen dran zukommen, der kann durch ein paar einfache Regeln die Effizienz seiner Mail-Bearbeitung deutlich steigern.

Email-Adressen
Alle in Deutschland vergebenen Googlemail-Adressen sind auch gleichzeitig GMAIL-Adressen. Also eine Adresse der Form: vname.nname@googlemail.com ist gleichzeitig auch unter vname.nname@gmail.com zu erreichen.

Google ist sehr großzügig mit bestimmten Zeichen. Die oben genannte Adresse ist nämlich auch ohne Punkt erreichbar, also vnamenname@gmail.com.

Mehrere Mailadressen möglich. Google verwirft alles was in der Mailadresse nach einem + kommt. Dies ist eine interessante Möglichkeit Emailadressen bestimmten Zwecken zuzuordnen. Denn eine Emailadresse wie vname.nname+werbung@gmail.com kann mit Filtern versehen und gleich mit dem Label Werbung/Newsletter gemarkt werden. Dies bietet eine elegante Möglichkeit ankommende Mails vielleicht aus verschiedenen Newslettern gleich richtig einzuordnen.

Shortcuts
Google bietet die Möglichkeit die Weboberfläche von Gmail durch Shortcuts zu bedienen. Dies ist eine tolle Form der GUI-Bedinung, wenn man sich erstmal daran gewöhnt hat. Die wichtigsten Shortcuts stelle ich hier vor - die komplette Übersicht ist unter [1] zu finden.

1. Email verfassen “c” (compose)
2. Antworten “r” (reply)
3. Allen Antworten “a” (reply all)
4. Versenden “Tab” + “return”

Label
Das neu eingeführte Konzept zur Verwaltung der Mails mittels Label hat soweit ich weiß bisher noch kein anderer Webmailanbieter. Dennoch ist es nicht so neu wie viele glauben, denn die meisten Emailclients (z.B. Outlook) können ebenfalls mit Labeln umgehen. Hier heißen sie allerdings Kategorien.

Label habe im Vergleich zu Ordnern den Vorteil, dass man eine Email mit mehreren Labeln versehen kann. Kurz, eine Mail kann mit mehreren Labeln versehen werden, was auf Ordner angewendet, bedeuten würde, dass eine Mail in mehrere Ordner zu verschieben wäre (ohne die Mail zu kopieren).

Suchfunktionen a la Google
Es wäre ja nicht Google, wenn es keine gute Suchfunktion gäbe. Natürlich kann man einfach seinen Suchbegriff eintippen und hoffen, dass dieser zum gewünschten Erfolg führt. Oder man sucht mithilfe von Metatags. Also im Suchfeld den Metatag angeben und Enter drücken:

* from:
* to:
* label:
* subject:
* is:read/unread

Jeder Metatag kann natürlich mit allen anderen verknüpft werden, möchte man z.Z. alle Mail von Peter Meier haben aber nicht die die mit dem Label “Wichtig” versehen wurden, findet folgende Summe die gwünschten Mails:

from:peter.meier@domain.com !label:wichtig

Das “!” steht an dieser Stelle für eine Verneinung. Eine komplette Übersicht ist unter [2] zu finden.

Verschlüsselung
Natürlich kann man den Gmail Account mittels POP3 und einem Emailclient nutzen, der in der Lage ist GPG zu verschlüsseln. Eine weitere Möglichkeit ist die Benutzung einer GPG-Shell wie WinPT oder GPG-Shell. Hier ist es möglich über die Zwischenablage die Emails zu ver- und entschlüsseln. Hat allerdings den Nachteil, dass man die verschlüsselten Mails nur lesen kann, wenn man einen entsprechenden Client installiert hat. Die Situation fällt im Urlaub oder auf Reisen schon einmal aus.

Die zweite Alternative ist die Nutzung des Dienstes Freenigma. Dieser Dienst bringt dem Anwender die Möglichkeit in Web-Mailpostfächern ohne großen Aufwand seine Mail zu verschlüsseln. Dabei ist das System so konstruiert, dass der Betreiber eines Webmail-Dienstes selbst keinerlei Möglichkeiten hat, in die Verschlüsselung einzusehen. Als echte Web 2.0-Anwendung ist Freenigma mittels AJAX realisiert und bietet eine Firefox-Extension, die den Bildschirm analysiert und automatisch erkennt, wann eine Mail geschrieben wird. Registriren kann man sich unter [3]. Leider ist derzeit noch kein Austaush mit herkömmlichen PGP/GPG Anwendungen möglich. Das heißt, jeder mit dem man verschlüsselt kommunizieren will, muss ebenfalls bei Freenigma registriert sein.

Firefox-Erweiterungen
Für mich ist eine Software erst richtig gut, wenn sie die Möglichkeit bietet ihr aussehen mittels Skins zu verändern. Hier kommt der Firefox Browser ins Spiel. Denn mit Ihm ist eben genau das möglich. Die Erweiterung ist unter [4] zu finden und einfach zu installieren. Allerdings sollte man darauf achten, dass beim ersten Start die Spracheinstellungen auf English(US) stehen. Eine weitere schöne Erweiterung ist der “Google Mail Notifier”, der sich wunderbar in die Symbolleiste und/oder Statusleiste des Firefox integriert, um Ankunft neuer Mails zu prüfen.

Fazit
Google hat mit Gmail sicherlich neue Maßstäbe im Freemailer-Bereich geschaffen. Die Oberfläche orientiert sich im vergleich zu vielen anderen Web-Mailern eher an einen gängigen Emailclient wie Thunderbird. Dies macht die Benutzung der Oberfläche sehr funktional und übersichtlich, da die Werbung nur dezent eingeblendet wird. Nachteilig bleibt festzuhalten, dass alle Emails gescannt werden, um daraufhin kontextbezogene Werbung einzublenden. Dies ist as Sicht des Datenschutzes ein nicht zu verkennender Askekt. Wie auch immer, die Wahl bleibt jedem selbst überlassen einen technisch ausgereiften Webmailer zu nutzen.
Infos

[1] Gmail Shortcuts: [http://mail.google.com/support/bin/answer.py?answer=6594]
[2] Gmail Suchfunktion: [http://mail.google.com/support/bin/answer.py?answer=7190&topic=1578]
[3] Freenigma [http://www.freenigma.com]
[4] Gmail Skins: [https://addons.mozilla.org/firefox/2127/]
[5] Gmail Notifier: [http://addons.mozilla.org/firefox/173/]