Freitag Jan 15, 2010

32bit Anwendung auf 64bit Linux mit GCC kompilieren

Wenn man mal in die Verlegenheit kommt, auf einem 64bit Linux OS ein 32bit Programm kompilieren zu müssen, dann ist das unter Gentoo mit multilib USE-Flag (also installierter 32bit und 64bit Unterstützung) kein Problem. Bevor man einen configure aufruft, exportiert man einfach zwei Variablen:

export CFLAGS="-m32"
export LDFLAGS="-m32"

Unter Ubuntu/Debian sollten folgende Pakete installiert sein, damit das tut:

libstdc++.i386
libgcc.i386
glibc.i386
glibc-devel.i386

Unter SuSE haben die Pakete immer 32bit im Paketnamen also z.B.:

glibc-32bit
glibc-devel-32bit

I.d.R. wird man bei einem größeren Projekt wie den Apache Webserver u.U. aber noch weitere andere 32bit Pakete nachinstallieren müssen.


Donnerstag Jan 07, 2010

HP Officejet 6500 und Linux

Drucker hinüber, Neuer dringend benötigt... Also schnell zum Mediamarkt. Klar war, das es ein HP sein sollte. Die funzen i.d.R. ohne Probleme unter Linux. Ohne genau zu wissen, welchen ich eigentlich kaufen soll, hab ich mir dir 5-6 Typen angeschaut, die da so rumstehen. Gelandet bin ich dann beim 119 Euro teuren Officejet 6500 mit Ethernet-Anschluss, Fax, Scanner und Kopierer. Vorallem der Ethernet-Anschluss hat es mir angetan. Damit ließ sich dann der iMac auch noch anschließen und man hat nicht das Problem, das man das USB-Kabel ständig umstecken muss zwischen zwei Rechnern.

Also daheim IP-Adresse, Netzmaske und Default-Gateway eingestellt (DHCP hätte es auch getan, hab ich aber nicht eingerichtet). Anpingen ging dann schon mal. Dann die Treiber des HP Linux Imaging and Printing System installiert. Die hplip-Treiber laufen mit fast 2000 HP-Druckern und fast jedem Linux-System. Unter Gentoo/Funtoo muss man einfach ein

emerge -av hplip

starten. Ausserdem habe ich in der Datei /etc/portage/package.use noch folgende USE-Flags gesetzt:

net-print/hplip ppds fax qt4

Dann kann man mit CUPS den Druckertreiber einrichten. Dazu ruft man im Webbrowser einfach die Admin-Oberfläche von CUPS unter http://localhost:631 auf. Dort kann man dann nach dem Drucker einfach suchen lassen. Die Testseite kam ohne Probleme raus.

Für die Inbetriebnahme des Scanners habe ich nicht lange experimentiert und den Drucker/Scanner gleich per USB angeschlossen. Soweit Sane/XSane installiert ist, kann man dann gleich mit sane-find-scanner checken, ob der Scanner gefunden wird (hierzu muss man unter Gentoo in der Gruppe lp sein). Wird der Scanner gefunden (sicherheitshalber auch als User root probieren, wenn es als normaler User nicht funktioniert), kann man xsane starten und loslegen mit dem Scannen.

Summasummarum: Der Officejet 6500 läuft wunderbar unter Linux. Und für etwas über 100 Euro bekommt man 4 Geräte in Einem. Feine Sache :-)


Donnerstag Okt 29, 2009

Verzeichnisse ohne Dateien kopieren mit rsync

Mit Version 3 von rsync lassen sich relativ einfach ganze Verzeichnisbäume inkl. Rechte und User-/Gruppen-IDs ohne Inhalt sprich ohne Dateien kopieren:

rsync -a -f"+ */" -f"- *" source/ destination/

Soweit ich weiß, gibt es die Option -f in Version 2 von rsync noch nicht. Drum wird das in div. Enterprise Linux Versionen nicht funktionieren.


Mittwoch Okt 07, 2009

3D Support Radeon HD 2000 - HD 4000 bzw. R6xx - R7xx

Endlich ist es soweit! Nachdem ich die ATI Radeon Grafikkarte (Radeon HD 3650 - RV635) in meinem Laptop (siehe auch: Elitebook 8530p, Gentoo, Sabayon, Kubuntu - Teil 1 / Elitebook 8530p, Gentoo, Funtoo - Teil 2) am Anfang am liebsten an die Wand geklatscht hätte, weil die propritären ATI einfach nur übel sind und mit neueren sowie (teilweise) selbstkompilierten Kernel überhaupt nicht tun (im Gegensatz zu Nvidia), hab ich das Teil dann doch noch zum Laufen bekommen mit den OpenSource Treibern (radeonhd). Die laufen wirklich gut und die 2D Performance ist inzwischen super. Nur mit 3D war halt nix. Das ist mir prinzipiell egal, aber sowas wie die Desktopeffekte von KDE 4 oder Compiz Fusion is halt dann nicht so richtig (schnell) - und ich mag die Dinger echt gerne, da sie wirklich auch produktiv sind.

Wer Funtoo/Gentoo als Linux-Distribution nutzt und sich rantraut, kann die nötigen Treiber für 3D Unterstützung aber jetzt nutzen. Ich wollte zunächst wie hier beschrieben vorgehen, aber das Ganze kompilierte leider nicht ganz fertig.

Aber Gentoo "to the rescue"! Zunächst habe ich mir mal einen Kernel 2.6.32 (git-sources-2.6.32_rc3-r1) installiert und kompiliert. Verwendet habe ich eine Kernel-Config von Sabayon 5.0, das auf Gentoo aufsetzt, für Desktop-Systeme ist und Kernel 2.6.31 verwendet. Die .config (x86_64 / x86) habe ich fast unverändert übernommen - nur die KMS (Kernel Mode Settings) im Staging-Bereich habe ich aktiviert und alles andere im Staging-Bereich ausgeschaltet, da die Android-Treiber bei mir das Kompilieren des Kernel verhindern (bricht mit Error ... ab).

Das ist prinzipiell eine feine Sache. Man hat hiermit praktisch auf der Console schon die volle Auflösung - in meinem Fall 1600x1050 - und wenn man zwischen X-Server und Konsole mit CTRL+ALT+F1 oder CTRL+ALT+F7 hin und her wechselt, flackert nix, da nicht mehr zwischen den Auflösungen umgeschaltet werden muss. Das Ganze funkt auch wunderbar - prinzipiell. Nur leider sieht der X-Server nach dem Start recht bunt aus und der Cursor ist ziemlich viereckig ;-) Aber gut, das ist ja auch alles noch ziemlich experimentell. Man kann KMS über einen Kernel-Bootparameter wieder ausschalten. Dazu fügt man in der /boot/grub/grub.conf den Parameter radeon.modeset=0 hinten an. Wenn es dann doch mal tut, kann man ja den Parameter wieder weglassen.

Nun aber zur 3D Unterstützung: Zunächst habe ich das X11-Overlay hinzugefügt:

layman -a x11
layman -S


Da man Mesa und die Xorg-Treiber in den neuesten Versionen braucht, habe ich die Pakete unmasked (mit Hilfe des Tools autounmask):

autounmask x11-base/xorg-drivers-9999
autounmask media-libs/mesa-9999


Dann installiert man Folgendes:

emerge -av xorg-server xorg-drivers mesa libdrm


Und schließlich sollte man noch einen

revdep-rebuild

hinterherschicken. Dann muss man eigentlich nur noch Durchstarten und in den System Settings die Desktop Effekte einschalten (soweit nicht schon passiert [waren bei mir bisher auf XRender eingestellt]) und auf OpenGL umstellen. Das war's eigentlich :-) Bei mir laufen fast alle Effekte sehr schnell.

Und fall es jemanden interessiert: glxgears läuft bei mir jetzt mit 2123 FPS ;-)


Dienstag Okt 06, 2009

KVM Benchmark: Apachebench, IOzone, Graphics Magick

Update 20100115: Bezügl. I/O-Performance und dem qcow2-Format, sollte man das hier noch lesen: Features/KVM qcow2 Performance . Seit Qemu/KVM 0.11.0 hat sich da einiges getan. Vorraussetzung für die bessere Performance ist aber, das man das qcow2-Image mit Qemu >= Version 0.11.0 erzeugt hat. Es kann also durchaus Sinn machen, ein altes Image in ein Neues zu konvertieren.

Ich habe in den letzten Tagen auf einem HP DL 380 G6 Server ein paar Benchmarks mit der Linux Kernel Virtual Maschine (KVM) gemacht. Ich persönlich nutze die KVM schon seit fast zwei Jahren und produktiv laufen aktuell über 40 VMs. Die Stabilität und die Performance hat sich in den letzten Releases sehr gut entwickelt und die Entwicklung geht sehr schnell voran.

Der Host und der Gast liefen mit Gentoo und Kernel 2.6.31.1. Der Host hat folgende Komponeten eingebaut:

2 x Intel Xeon CPU L5520 - 2 Quad-Processors (static performance, VT-d, Hyperthreading eingeschaltet in BIOS)
8 x 300 GB SAS 10k Festplatten (RAID 10)
24 GB RAM

(Einige) Host (kernel) Einstellungen:

I/O scheduler: deadline
Filesystem: xfs
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_VIRTIO_BLK=m
CONFIG_VIRTIO_NET=m
CONFIG_VIRTIO_CONSOLE=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_VIRTIO=m
CONFIG_VIRTIO_RING=m
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_BALLOON=m

(Einige) Gast (Kernel) Einstellungen:
I/O scheduler: deadline/cfq (siehe unten)
Filesystem: ext3 (datamode=ordered/writeback [siehe unten])
VIRTIO Network (VIRTIO_NET) und Block (VIRTIO_BLK) Treiber verwendet.
Der Gast ist ein qcow2-Image, welches ich vorher mit "dd" erweitert habe, damit es für den IO Test groß genug ist und nicht erst während des Tests erweitert wird (was die Werte total verfälscht hätte).
CONFIG_KVM_CLOCK=y
CONFIG_KVM_GUEST=y
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_NET=m
CONFIG_VIRTIO_CONSOLE=y
CONFIG_HW_RANDOM_VIRTIO=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO_RING=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_PARAVIRT_SPINLOCKS=y

KVM Startup Optionen (die Wichtigsten):
-m "variabel-siehe unten"
-smp "variabel-siehe unten"
-cpu host
-daemonize
-drive file=/data/kvm/kvmimages/gfs1.qcow2,if=virtio,boot=on
-net nic,vlan=104,model=virtio,macaddr=00:ff:48:23:45:4b
-net tap,vlan=104,ifname=tap.b.gfs1,script=no
-net nic,vlan=96,model=virtio,macaddr=00:ff:48:23:45:4d
-net tap,vlan=96,ifname=tap.f.gfs1,script=no

Da wir KVM hauptsächlich für Webserver benötigen, habe ich Benchmarks mit Apachebench, Graphics Magick und IOzone erstellt:

Apachebench mit 4 GB RAM, CFQ Scheduler, 1/2/4/8 vProcs verglichen mit dem Host (der hp380g6 Graph):
http://www.tauceti.net/kvm-benchmarks/merge-3428/
Apachebench mit 2 GB RAM, CFQ Scheduler, 1/2/4/8 vProcs verglichen mit dem Host:
http://www.tauceti.net/kvm-benchmarks/merge-6053/

Mich hat hier u.a. interessiert, ob mehr RAM mehr Durchsatz bringt und ob mehrere virtuelle Prozessoren skalieren. Wenn man die 2xQuadCore + Hyperthreading mit den 8 virtuellen Prozessoren (vProcs) vergleicht, dann kann die KVM hier mithalten. Die Speichergröße spielt keine Rolle.

Graphics Magick resize mit 4 GB RAM, CFQ scheduler, 1/2/4/8 vProcs verglichen mit dem Host (der hp380g6 Graph):
http://www.tauceti.net/kvm-benchmarks/merge-5214/
Graphics Magick resize mit 2 GB RAM, CFQ scheduler, 1/2/4/8 vProcs verglichen mit dem Host (the hp380g6 graph):
http://www.tauceti.net/kvm-benchmarks/merge-7186/

Mit 8 vProcs ist die KVM ungefähr 10% langsamer. Mehr Speicher scheint auch hier nicht zu helfen.

Der folgende IOzone Test lief mit der KVM-Option cache=none. In diesem Fall ist alleine der Host für's Wegschreiben der Daten verantwortlich. Das erscheint mir aktuell immer noch die sicherste Option zu sein, um die Datenintegrität des KVM-Images und der Filesysteme in der KVM sicher zu stellen. Allerdings bremst das die Performance:

IOzone Schreibtest (write) mit 2 GB RAM, CFQ scheduler, ext3 Filesystem und datamode=ordered, 1/2/4/8 vProcs verglichen mit dem Host (der hp380g6 Graph):
http://www.tauceti.net/kvm-benchmarks/merge-3564/
IOzone Schreibtest (write) mit 2 GB RAM, deadline scheduler, ext3 Filesystem und datamode=ordered, 1/2/4/8 vProcs:
http://www.tauceti.net/kvm-benchmarks/merge-4533/

Wie man sieht, bringt das Austauschen des Schedulers ungefähr 10-15 MByte/s mehr an Durchsatz. Die CPU-Auslastung habe ich aber nicht überprüft während des Tests.

Die folgenden IOzone Tests liefen ohne cache-Option und somit mit dem Defaultwert writethrough:

IOzone Schreibtest (write) mit 2 GB RAM, deadline scheduler, ext3-Filesystem und writeback (siehe Testseite), 8 vProcs verglichen mit dem Host (der hp380g6 Graph):
http://www.tauceti.net/kvm-benchmarks/merge-7526/

Die Zahlen sind relativ beeindruckend. Die KVM kann eigentlich fast immer - mit den entsprechenden Einstellungen - mit dem "echten" Host mithalten in diesen Tests. Den Netzdurchsatz müsste man jetzt noch messen, dann wäre der gesamte Benchmark schon fast vollständig.


Dienstag Jul 28, 2009

Firefox und Thunderbird unter KDE 4

Wer sich schon öfter mal darüber geärgert hat, das Firefox und Thunderbird nicht so wahnsinnig toll aussehen, wenn sie unter KDE laufen, dem kann geholfen werden. Grundsätzlich liegt das daran, das die beiden Apps GTK-Anwendungen sind und damit GUI-Elemente haben, die eben etwas anders aussehen, wie man das von einer KDE-Anwendung gewohnt ist.

Unter Gentoo installiert man das Paket gtk-engines-qt (heisst bei anderen Distributionen ähnlich). Dann KDE durchstarten. Anschließend kann man in KDE die System Settings aufrufen und dort dann den Button Apearance auswählen (sorry, kenne nur die englischen Bezeichnungen dafür...). In der linken Spalte sieht man dann jetzt GTK Styles and Fonts. Wenn man dort Use my KDE style in GTK applications auswählt, hat man das, was man braucht :-)


Montag Jul 06, 2009

PostgreSQL-Replikation mit Londiste und SkyTools - Teil 1

Warum SkyTools / Londiste? Ich war auf der Suche nach einer Replikationslösung, die mir einfach die Daten von einer Master-DB auf eine Slave-DB kopiert. Die Slave-DB ist read-only. Man muss grundsätzlich vorwegnehmen, das es unter Postgres leider keinen Replikationsmechanismus gibt, wie ihn die MySQL hat. Dort werden die Transaktionslogs auf dem Slave nachgefahren. D.h. das wirklich alle Statements auch auf dem Slave ausgeführt werden inkl. aller DDL-Statements (also sowas wie CREATE TABLE). Das ist bei (fast) keiner Replikationslösung, die es unter Postgres gibt, der Fall. Ich vermute mal, das das PGCluster macht, welcher auch Multimaster-Replikation unterstützt. Zu dieser Lösung habe ich aber kein Vertrauen, da im Supportforum keiner der Entwickler antwortet. Ausserdem ist der PGCluster oder auch PGCluster-II (wird wohl eh nie erscheinen) immer eine speziell angepasste Version von Postgres und hängt der Entwicklung immer hinterher (und aktuell schon ziemlich...). Ich mag keine so reingeschusterten Sachen. Dann gibt es noch den CyberCluster, der in eine ähnliche Kategorie fällt und auf PGCluster aufbaut, aber auch so seine Probleme hat, wie ich mal auf der Postgres-Mailingliste erfahren habe.

Dann gibt es noch Tools, die soz. Statements replizieren auf zwei oder mehrere Datenbanken und wie ein vorgeschalteter Proxy arbeiten, mit dem sich die Clients verbinden. pgpool-II gehört da dazu. Aber was mach ich, wenn eine Node ausfällt? Die Daten bei dieser Art Replikation müssen zwangsläufig auseinander laufen, wenn eine DB ausfällt. Eine Antwort darauf gibt Gerd Koenig in pgpool-II for beginners (PDF). Das ist an sich schon mal nicht schlecht, aber diese Methode benötigt eigentlich fast schon ein komplettes Recovery der DB, damit die Datenbanken wieder konistent werden.

Dann gibt's noch Bucardo. Da ist zwar der Entwickler sehr aktiv, aber mir gefällt das dahinterliegende Konzept gar nicht, mit rsync irgendwelche Daten durch die Gegend zu kopieren. Prinzipiell handelt es sich hierbei um eine Multi-Master-Replikation.

Weiterhin hätten wir noch den Mammoth Replicator. Der war mal kommerziell und ist jetzt OpenSource. Hier kann man auch Support von Enterprise DB kaufen. Bin ich aber auch nicht so wirklich überzeugt von dem Konzept.

Bleiben grob noch zwei Tools: Slony-I und Londiste.

Slony-I ist schon irgendwie das Schweizer Taschenmesser und Urgestein unter den Replikationslösungen - nur ungleich komplizierter zu bedienen. Und das war für mich dann auch der Grund, es mit Londiste/SkyTools zu versuchen, welches die Skype-Entwickler als OpenSource veröffentlich haben und das teilweise in Python geschrieben ist - was gleich noch viel mehr für die Lösung spricht ;-)

Hier mal eine Übersicht über die wichtigsten Links bezügl. Londiste/SkyTools:

SkyTools Download:
Londiste ist ein Teil der SkyTools. Version 2.1.9 ist gerade aktuell. Diese Version kann man sich auf pgFoundry downloaden. Da ich aber einen Teil der Funktionalität von Version 3 brauche, lade ich mir das Source-Paket (http://pgfoundry.org/pipermail/skytools-users/2009-April/001029.html) runter, welches Marko Kreen in einem Posting der SkyTools-Mailingliste erwähnt hat. Version 3 ist aktuell noch Alpha - wobei ich mir ziemlich sicher bin, das das Skye intern schon länger im Einsatz ist und sicherlich weit weniger Alpha ist, als so manches andere Prgramm ;-) Bei mir läuft das jetzt auf jeden Fall schon mal seit 3 Monaten ganz gut durch.

SkyTools @ PostgreSQL Wiki
http://wiki.postgresql.org/wiki/SkyTools

Londiste Tutorial (Version 2)
http://pgsql.tapoueh.org/site/html/londiste/londiste.html

SkyTools Users Archives Mailingliste
http://pgfoundry.org/pipermail/skytools-users/

Manpage für londiste (Version 2)
http://manpages.ubuntu.com/manpages/jaunty/man1/londiste.1.html

Whats you favourite PostgreSQL Replication Tool:
1. Slony-I
2. pgpool2
3. londiste
http://www.postgresql.org/community/survey.61

PostgreSQL Replication using Slony-I
http://jayant7k.blogspot.com/2008/11/postgresql-replication-using-slony-i.html

Database management tools from Skype: WAL shipping, queueing, replication. The tools are named walmgr, PgQ and Londiste, respectively
http://pgfoundry.org/projects/skytools/

Und in Teil 2 erklär ich dann, wie ich es eingerichtet habe...


Donnerstag Mai 28, 2009

Amiga MOD-Files per FUSE-FS abspielen mit uadefs

Schon witzig, was es alles heutzutage als Filesystem gibt ;-) So kann man mit uadefs ein Verzeichnis mit Tracker-Dateien mounten und dann auf dieses Verzeichnis mit jedem beliebigen Player, der WAV-Dateien abspielen kann, diese Dateien abspielen. Das funktioniert ähnlich wie bei sshfs (ermöglicht ein Filesystem eines entfernten Rechners per SSH zu mounten):

1. mkdir -p ~/mnt/uadefs
2. uadefs /amiga/songs ~/mnt/uadefs
3. vlc ~/mnt/uadefs/mod.foo

Voraussetzung ist natürlich, das man das FuSE-Paket installiert hat. uadefs ist bei Gentoo ein Teil des uade-Pakets (Unix Amiga Delitracker Emulator).


Mittwoch Mai 06, 2009

MySQL Performance- und Diagnose-Tool Jet Profiler

Normalerweise bin ich ja kein Fan von ClosedSource Programmen insbesondere im OpenSource Umfeld. Aber dieses Tool hier ist wirklich praktisch und ich habe bisher auch noch nicht wirklich was Besseres gefunden, wenn es um die Performanceanalyse einer MySQL-DB geht, insbesondere wenn man auf der Suche nach langsamen Queries, Locks, Cache-Hit-Ratio's, usw. geht. Man bekommt diese Infos zwar auch teilweise anderweitig, aber kaum so gut und übersichtlich aufbereitet, was letztendlich viel Arbeit spart.

Vom Jet Profiler kann man sich eine soweit ganz funktionale, freie Version downloaden, aber leider wird man relativ schnell feststellen, das man ohne die 99 Dollar teure (oder billige - je nachdem) Version nicht so arg weit kommt. Aber zum Testen und einem ersten Überblick reicht es. Das Programm ist in Java geschrieben und ist allen Unkenrufen zum Trotz (was man immer noch von Java-Programmen hört) schnell und gut bedienbar. Es läuft unter Linux, Mac OS X und Windows.


Mittwoch Apr 15, 2009

Die eigene Cloud mit EUCALYPTUS

EUCALYPTUS - Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems. Wer seine eigene Cloud bauen will, kann das mit EUCALYPTUS tun. Die Software ist OpenSource, unterstützt Xen und in Release 1.5 jetzt auch KVM als Hypervisor. Das Interface ist kompatibel zu Amazons EC2. Das Schöne an dem Ganzen ist, das es im Prinzip nur ohnehin schon vorhandene Tools verwendet, die es so unter Linux gibt.


Mittwoch Apr 01, 2009

grep: Mehr als ein Wort rausfiltern - eine Art mulit-grep

Wer sich schon immer gefragt hat, wie man mit grep nach mehreren z.B. Wörtern filtern kann, dem sei geholfen:

grep -F -e wort1 -e wort2 dateiname

wort1 und wort2 ersetzt man durch die Wörter, die man sucht und dateiname nach dem Dateinamen in dem man suchen möchte oder lässt den Dateinamen weg, wenn man von stdin lesen möchte.


Montag Mrz 30, 2009

KVM, Qemu: Welche I/O-Scheduler verwenden

Update 20090403: Ich denke, das sich das unten stehende, so nicht halten läßt. Die Sache mit dem noop-Scheduler verhält sich teilweise sehr gut, teilweise aber auch ziemlich übel, in dem z.B. der pgflush-Daemon ziemlich viel Systemzeit beansprucht und der I/O-Durchsatz ziemlich in die Knie geht. Das ändert sich schlagartig, sobald man auf den CFQ-Scheduler umschaltet. Auf den getesteten Systemen scheint die Benutzung des CFQ-Schedulers in Host und Guest die beste Kombination zu sein. Man kann das ja selber mal ausprobieren, in dem man den I/O-Scheduler im laufenden Betrieb wechselt z.B.

echo "cfq" > /sys/block/vda/queue/scheduler

Man sollte dann aber schon eine Anwendung oder einen Test fahren, der gut was auf die Platte schreibt und das auch möglichst konstant macht. Oder besser: Man verwendet bonnie++ . Ein eher syntetischer Test für I/O-Durchsatz aber ein guter Ausgangspunkt.

Text vom 20090330: Diese gar nicht so uninteressante Frage kam jetzt schon des Öfteren auf der KVM Mailingliste hoch. Letztendlich ist man sich einig, das das Gastsystem mit elevator=noop gestartet werden sollte. Per Default setzen ja heute die meisten Distributionen den Completely Fair Scheduler-I/O (CFQ) ein. Für den Host selbst ist das vielleicht ok, wenn im Gast elevator=noop als Kernelparameter z.B. im Grub übergibt. Es macht auch nicht wirklich Sinn, wenn sich die I/O-Scheduler im Gast und im Host Gedanken machen müssen, wie denn die Daten am Besten auf die Platte kommen sollen. Wenn ich die Mails der KVM-Entwickler/-User aber richtig interpretiere, dann bevorzugen sie doch eher den deadline Scheduler für den Host. Mit dem habe ich auch sehr gute Erfahrungen gemacht im Serverbereich. Ich finde - aber das ist jetzt meine subjektive Meinung - das der CFQ sich besser für den Desktopbereich eignet als für Serveranwendungen.


Donnerstag Mrz 19, 2009

VLC: Segfault in libc

Wenn mal der VLC nicht mehr startet und in /var/log/messages eine Meldung wie diese zu finden ist

vlc[23006]: segfault at afe80fc4 ip b7d0b19c sp afe80fc8 error 6 in libc-2.8.so[b7c9f000+134000]

dann sollte man mal VLC wie folgt aufrufen von der Kommandozeile aus:

vlc --reset-config

Kabel BW und Linksys WRT160N Wireless Router

Der vom Kabel BW mitgelieferte WLAN-Router D-Link DI-524 ist ja jetzt nicht so unbedingt der Hit, wenn man eine 32 MBit-Leitung hat. Mehr wie 500-600 KB/sec. war da nicht zu holen, obwohl man nur 3 Meter vom Router und freier Sicht mit dem Laptop weg ist.

 

Musste was Schnelleres her. Der Linksys WRT160N arbeitet perfekt mit Kabel BW. Ich habe ihn unter Linux eingerichtet. Die Windows-Software habe ich gar nicht ausprobiert. Den Laptop erstmal per Ethernet mit dem Router verbunden. Die Adresse des Routers ist 192.168.1.1. DHCP ist aktiviert, so das man auch gleich eine IP vom Router bekommt. Den dann erstmal einrichten. Dann im ausgeschalteten Zustand an das schwarze Motorola Kabelmodem anstöpseln. Dazu verbindet man einfach per Ethernet-Kabel den Ausgang mit der Bezeichnung "Internet" vom Router mit dem Modem. Dann das Modem vom Stromnetz trennen, 5 Sek. warten, das Modem erstmal hochkommen lassen und dann den Router einschalten. Das ist nötig, da sonst das Modem sich weigert, mit dem Router zu sprechen, da sich die MAC-Adresse geändert hat. Das sollte dann schon gewesen sein.

Und jetzt sieht's mit der Speed schon besser aus. Gleiche Entfernung wie vorher und 2.0-2.4 MByte/sec. und ohne Draft-N (kann mein Laptop nicht :-( ). Das macht aber schon mehr Spaß ;-)


Dienstag Mrz 17, 2009

Linux - Dateien aufteilen mit split

Will man eine Datei in mehrere kleinere Teile aufteilen, um sie z.B. irgendwo hochladen zu können und dort nur Dateien z.B. mit max. 200MB errlaubt sind, dann kann man split verwenden:

split -a 3 -d -b 199M file_to_split.bin splitted.bin.

Wenn die Ausgangsdatei file_to_split.bin also z.B. 600 MByte groß war, dann erhält man jetzt folgende Dateien mit jeweils 199 MByte Größe:

splitted.bin.000
splitted.bin.001
splitted.bin.002

Die Option -a 3 gibt an, das man einen dreistelligen Suffix anhängen möchte. -d gibt an, das dieser Suffix nummerisch sein soll und -b 199M würde in diesem Beispiel die aufgeteilten Dateien max. 199 MByte gross werden lassen. Dann gibt man noch die Datei an die man aufteilen möchte und wie die aufgeteilten Dateien heissen sollen - also den Prefix soz.