Linux 14.981 Themen, 106.343 Beiträge

Ist Swap notwendig?

Alekom / 73 Antworten / Flachansicht Nickles

Hallo Nickles-Gemeinde,

auf meinen Linux-Rechner Cinnamon Rebecca 17.1 habe ich 3 Partitionen.

root, home und eben swap...

ich habe 8g ram arbeitsspeicher verbaut, braucht man da noch eine swap?

mit dem befehl top habe ich festgestellt, in keiner einzigen sekunde wurde swap aktiv.

swap habe ich mit 4GB eingestellt.

und spielt es eine rolle wohin man swap partitioniert?

früher waren das partitionsschema ja so:

root, swap, home

jetzt ist es:

root, home, swap

netten Gruß Alekom

btw. manchmal friert der rechner ein. obwohl manchmal nur 1 seite offen ist. ist es der celeron?

Alles hat seinen Sinn, auch das scheinbar Sinnlose, denn es gibt nichts ohne Sinn.
bei Antwort benachrichtigen
REPI neanderix „Ich halte von SWAP-Dateien nur eines: Abstand. OK, ist unter ...“
Optionen
ich bleibe bei Swap-partitions, sehe keinerlei Vorteil in Swap-Files.

Der Einzige Vorteil ist wohl, dass man "on the fley" den Swapspeicher erweitern kann, ohne das System neu starten zu müssen.  Auch ist dieser Swapspeicher beim Neustart des Systems dann nicht mehr vorhanden.

Ist ganz gut, falls man wirklich mal mit seinen Anwendungen an die Speichergrenze von RAM uns Swap kommt.

Bewerkstelligen kann man das ganze mit einem Script. 

#!/bin/sh
###########################################################################
# Bash-Shell-Script Anlage eines temporaeren Swapfiles
# zur Erweiterung des Swapbereiches
###########################################################################
# Syntax ./newswap <optional Groesse der Swapdatei als integer>
# Default als Groesse der Swapdatei ist 32 MB
###########################################################################

# Anlagen eines zusaetzlichen Swapfiles als Datei
ver="1.1"
swapdir="/tmp/" # Ablageort der Swapdatei ggf. anpassen
swapfilename="swapfile"
swaptarget=$swapdir$swapfilename
blocksize=1024
isroot=$(whoami)
swapcount=$[$blocksize * 32] # Defaultgroesse = 32MB
if [ $isroot = "root" ]; then

freespace="free -o -k -t"
helptxt="\n\n newswap V ver\n=================================
\nVergroessern des Swapbereiches mittels zusaetzliche temporaerer Swapdatei
\nUsage: $0 (Speicher in MB als integer = 32MB default)\n-(fh)
--help\n-f Anzeige Speicherbelegung\n-h oder --help diese Hilfe\n"
case "$1" in
-f ) echo -e "\nSpeicher und Plattenbelegung im Zielverzeichniss : $swaptarget";
eval $freespace ;eval df $swapdir; exit ;;
-h | --help ) echo -e $helptxt; exit ;;
* ) ;;

esac

# Neue Dateigroesse bei optionaler Eingabe berechnen
if [ "$1" ] ; then
swapcount=$[$blocksize * $1]
fi

# Pruefen, ob Swapdatei existiert, dann anlegen, sonst
# Swapfile ausser Betrieb nehmen und loeschen
if test -e $swaptarget; then
# Swapfile ausser Betrieb nehmen
swapoff $swaptarget
# Swapfile loeschen
rm $swaptarget
#Speicheranzeige
free -o -k -t
else
# Ermitteln, ob Plattenplatz reicht
countall=$(df $swapdir | grep dev | awk '{print $2}')
countcheck=$(df $swapdir | grep dev | awk '{print $4}')
countnew=$[$countcheck - $swapcount]
usepercentnew=$[($countnew * 100) / $countall]
# Bei Plattenplatz < 10 % wird kein Swapdatei angelegt
if [ $usepercentnew -lt 10 ]; then
echo -e "\007Plattenplatz kleiner 10 % !, Swapfile kann nicht angelet werden !!"
else
echo "Bleiben freier Plattenspeicher: " $usepercentnew "%"
# Leerdatei gewuenschter Groesse erzeugen
dd if=/dev/zero of=$swaptarget bs=$blocksize count=$swapcount
# Initialisierung des Swapfiles
mkswap $swaptarget $swapcount
# Zurueckschreiben aller Aenderungen im Dateisystem
sync
# Swapfile in Betrieb nehmen
swapon $swaptarget
# Speicheranzeige
free -o -k -t
fi
fi
else
echo
echo "Dieses Tool funktioniert nur als root..."
echo "... Sie sind hingegen als "$isroot" angemeldet !"
echo
fi

Der Script ist von 2004. Eventuell muss er an heutige Shell Versionen etwas angepasst werden. Auch sollte man die Swap Default-Größe wohl etwas höher setzen. 

Das Teil legt  beim ersten Aufruf die Swapdatei an und mountet diese.

Beim Zweiten Aufruf wird die Swapdatei unmountet und wird gelöscht.

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen