linux

dd optimieren

Written by  on März 24, 2012

dd ist ein Tool um Dateien und Geräte blockweise zu kopieren. Erst kürzlich kam eine Anfrage zu mir, wie denn die Geschwindigkeit von dd gesteigert werden könnte. Im konkreten Fall ging es auch noch darum, die Daten übers Netzwerk zu übertragen.

1) Komprimierung verwenden

dd if=/dev/sdX bs=1024 count=1024 | gzip -9 | ssh root@192.168.XXX.XXX "gunzip | dd of=/tmp/testfile"

2) Blockgröße einstellen

Die Auswirkung der Blockgröße habe ich mal etwas durchprobiert. In diesem Diagramm, sieht es so aus, als würde die Blockgröße nicht viel bringen. Der default Wert auf dem Test-System war genau ein Block der Festplatte mit 512 Byte. Das anheben der Blockgröße auf deutlich über 1MB bringt je nach Test 30 – 60 % mehr Geschwindigkeit.

Wait I/O

Written by  on März 4, 2012

Wait I/O wird immer dann angezeigt, wenn ein Prozess auf die Festplatte warten muss. …

Was kann man gegen Wait I/O tun?
Neben den offensichtlchen sachen, wie z.B. schnellere Festplatten, performantere RAID Levels oder gleich einer SSD gibt es noch eine, zugegeben nutzlose Möglichkeit, den Wait I/O zu reduzieren.
Mit einer leeren Schleife pro CPU Kern, wird die Nutzung so gewandelt, dass sie statt I/O-lastig plötzlich CPU-lastig ist:

while true; do true; done

Abra Ka Kosmetik – die Wait I/O ist verschwunden 😉

PS: Macht das nicht zu Hause (auf einem Produktiv-System) nach…

Speicherauslastung und Swap

Written by  on Februar 29, 2012

Wird der RAM in einem Linux-System zu wenig, wird auch der Swap-Bereich benutzt. Woher kommt es aber, dass manchmal noch Speicher frei ist, aber trotzdem schon Swap benutzt wird?
Laut Thorsten Robers, LPI 301, S. 306 gibt es zwei Bedingungen, wann Speicher in den Swap-Bereich ausgelagert wird:

Steht nicht genügend RAM zur Verfügung oder geht der Betriebssystemkern davon aus, dass der Prozess in nächster Zukunft nicht weiter ausgeführt werden muss, lagert der Kernel diese Daten in den Swap-Speicher aus.

Das bedeutet, dass der Kernel bereits präventiv den Swap-Bereich benutzt, um mehr Speicher für die tatsächlich aktiven Prozesse und den Platten-Cache frei zu haben.

Im Idealfall wird dieser (Anm: der Swap-Speicher) kaum genutzt, wobei nicht die Verwendung der [sic] Swap-Speichers per se auf einen Engpass hinweist. Erst wenn der Kernel Swap-Speicher exzessiv zur Auslagerung von Prozessen und Daten nutzt, wirkt sich das negativ auf die Gesamtperformance des Systems aus.

Das Verhalten "wie gerne" ein System den Auslagerungsspeicher benutzt, kann eingestellt werden unter der Bezeichnung swappiness:

# cat /proc/sys/vm/swappiness
60

60 ist der Default-Wert, 0 würde bedeuten, dass gar nichts mehr in den Swap-Bereich kommen soll.

Dateinamen aus einer Liste extrahieren

Written by  on Februar 7, 2012

Hier die Liste:

# cat test.lst
X:KRIS KRISTOFFERSONKRIS KRISTOFFERSON - HELP ME MAKE IT THROUGH THE NI - SINGLE - 1980 - COUNTRY - 0.MP3|TAG|KRIS KRISTOFFERSON|HELP ME MAKE IT THROUGH THE NI||SINGLE|1980|0|COUNTRY|MP3|0|141296|0|327680|0|0|-1|0|0|0|3|192|10|-1|0|0|0|-1472508263|0||0|-1|-1|
X:ENGLISCHCCARLENE CARTERCARLENE CARTER - EVERY LITTLE THING - SINGLE - 1980 - DANCE - 0.MP3|TAG|CARLENE CARTER|EVERY LITTLE THING||SINGLE|1980|0|DANCE|MP3|0|192992|0|327680|0|0|-1|0|0|0|3|128|10|-1|0|0|0|804889938|0||0|-1|-1|
X:TOM ASTOR UND WOLFGANG PETRY - TAKE ME HOME - FOX.MP3|TAG|TOM ASTOR UND WOLFGANG PETRY|TAKE ME HOME|FOX||2006|||MP3|0|177972|0|327680|0|0|-1|0|0|0|3|192|10|-1|0|0|0|-1510661211|18||43283610|-1|-1|
X:TEXAS COUNTRYTEXAS COUNTRY - HEARTACHE COUNTY.MP3|TAG|TEXAS|COUNTRY||- HEARTACHE COUNTY|1999|TRACK|COUNTRY|MP3|0|178364|0|327680|0|0|-1|0|0|0|3|128|10|-1|0|0|0|-742867055|0||0|-1|-1|

Aufgabe: Extrahiere den Dateinamen:

# cut -d"|" -f1 test.lst | awk -F '' '{ print $NF }'
KRIS KRISTOFFERSON - HELP ME MAKE IT THROUGH THE NI - SINGLE - 1980 - COUNTRY - 0.MP3
CARLENE CARTER - EVERY LITTLE THING - SINGLE - 1980 - DANCE - 0.MP3
TOM ASTOR UND WOLFGANG PETRY - TAKE ME HOME - FOX.MP3
TEXAS COUNTRY - HEARTACHE COUNTY.MP3

Howto: Screen

Written by  on Dezember 30, 2011

Screen ist ein kleines Programm, welches einen eigenen "Bildschirm" öffnet. Dieser läuft auch nach dem ausloggen der Shell weiter und kann in einer anderen Sitzung wieder übernommen werden.

Screen starten:

screen

Wieder ausloggen: [Strg + a]; d(etatch)

Vorhandene Screen-Sitzungen auflisten:

server:~ # screen -list
There is a screen on:
        27272.pts-4.server      (Detached)
1 Socket in /var/run/screens/S-root.

Eine Sitzung forsetzten

screen -r(esume) [PID] 

PID ist nur notwendig, wenn bereits mehr wie eine Sitzung läuft.

Howto: Patch

Written by  on Dezember 29, 2011

Patch einspielen ganz einfach:

In der Ordner mit dem Source-Code wechseln:

cd /usr/src/linux

Patch anwenden

patch -p 1 < /path/to/patch/patch.patch

"-p 1" steht dafür, dass der erste Ordner aus den Patch-Files weggelassen wird!

Fertig!

Anleitung

Speichertest über Netzwerk starten

Written by  on November 6, 2011

Vorausgesetzt es arbeitet schon ein Linux-Server im lokalen Netzwerk, ist PXE Boot für z.B. Speichertests leicht einzurichten.

Im DHPC wird definiert, dass übers Netzwerk gebootet werden soll. Infos gibt's unter www.syslinux.org

/etc/dhcp.conf

host hostname {
  hardware ethernet 00:XX:XX:XX:XX:XX;
  fixed-address 192.168.XX.XX;
  option routers 192.168.XX.XX;
  filename "pxelinux.0";
}

In der PXE Config lädt man einfach den Speichertest.
/tftpboot/pxelinux.cfg/default

LABEL MEMTest
MENU LABEL Speichertest
KERNEL memtest

AveSPof

Written by  on Oktober 27, 2011

aus Linux Hochverfügbarkeit: Einsatzszenarien und Praxislösungen (Galileo Computing)

S 178: AveSPof: A very expensive Single Point of Failure

S 182: in einem Heartbeat|OpenAIS|Corosync/Pacemaker-Cluster

Master-Master Replikation

Written by  on Oktober 2, 2011

Warum es keinen Sinn macht in einer Multi-Master-Replikation auf mehrere Master schreibend zuzugreifen. Und ich behaupte mal, dass das nicht nur für Mysql sonder auch für andere Datenbanken oder Dateiserver gilt:

One of the most seductive traps to fall into is to believe that you gain anything by making more than one server in a replication topology writeable. The usual thought traps are, "I'll get more write performance" or, "All nodes will be equal and failover will be easier." Both are false.
You do not gain performance by writing to both masters in a master-master setup. All writes are sent through replication and must be repeated on every node, so it doesn't matter where they originate.

Web Operations: Keeping the Data On Time S. 211

Die Google Lüge

Written by  on Oktober 1, 2011

Nur weil es in letzter Zeit schon öfter vorgekommen ist, vermute ich, dass es kein Zufall mehr sein kann.

Gibt man im Google Suchbegriffe ein, schmuggeln sich laufend Seiten in die ersten 10 Treffer, in denen zumindest einer der Suchbegriffe nicht vorkommt.

Beispiel:
zypper puppet downgradeLink Nr. 3 bei mir, über google.at gesucht, geht überhaupt nicht auf Puppet ein.

[Update] So rächt sich google – jetzt bin ich für diese Keywords "zypper, puppet und downgrade" selber auf dem Spitzenplatz gelandet – und das ohne eine Lösung für das ursprüngliche Problem parat zu haben.