Raketenschlafstättenmechaniker: Hardware, Speicher

Beitrag lesen

  • Wenn das Linux ein Notebook ist und auch mal "einschlafen" können soll, dann sollte der Swap-Space größer sein als der Arbeitsspeicher.

  • Wenn der Swap-Space auf einer SSD abgelegt wird, dann ist es (im Hinblick auf künftige Speicherwerweiterungen) die bessere Idee, diesen nicht als Partition, sondern als Datei anzulegen. Das Fragmentieren ist dann ziemlich egal und der Vorteil einer flexibleren Größe einer Datei hebt den geringeren Nachteil des Fragmentieren wieder auf.

#! sudo /bin/bash

mem=$(LANG=c free -g | grep 'Mem:' | awk '{print $2}');
# e.g. mem=15 (bei 16 GB Speicher)

mem=$(($mem+1));
# e.g. mem=16

SwapBlocks=$((${Gigabytes}*1024*1024));

# Neues Swapfile erzeugen und aktivieren:

swDir='/var/cache/swap'
swFile='/var/cache/swap/swap0';

umask 002;
mkdir "${swDir}";
umask 007;
touch "${swFile}";
fallocate -zl ${Gigabytes}G "${swFile}";
dd if="/dev/zero" of="${swFile}" bs=1024 count=$SwapBlocks;
sudo chmod 0755 "${swDir}";
sudo chmod 0600 ${swFile};
mkswap "${swFile}";
swapon "${swFile}";
swaplist=$(grep 'swap.*sw' /etc/fstab | awk '{print $1}');
for swap in swaplist; do
  swapoff $swap;
done
echo -e "\n${swFile} none swap sw 0 0" >> "/etc/fstab";

# Hat das geklappt?
mem -g;

tmpFile=$(mktemp);
grep -v '/dev/.*swap.*sw' > ${tmpFile};
mv ${tmpFile} /etc/fstab;
chmod 664 /etc/fstab;

# Hat das geklappt?
cat /etc/fstab;

oder das Einrichten eines flexiblen Swaps ab sofort automatisch erledigen lassen:

sudo apt-get install swapspace
  • Willst Du indes auch verschlüsselten swap, dann lese das hier. Beachte, dass beim Aufwecken dann womöglich eine Passworteingabe schon beim "booten" nötig wird.

Falls was schief läuft komme ich gerne und repariere das. Aber nicht kostenlos...