Ich möchte einen Swap auf dem gemounteten externen EBS durchführen, /workspace
Und ich habeGerät oder Ressource beschäftigt
swapon: /workspace/swap.1: swapon fehlgeschlagen: Gerät oder Ressource beschäftigt
sudo /bin/dd if=/dev/zero of=/workspace/swap.1 bs=1M count=10240
sudo /sbin/mkswap /workspace/swap.1
sudo /sbin/swapon /workspace/swap.1
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 5.1G 2.3G 70% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 2.0G 12K 2.0G 1% /dev
tmpfs 396M 336K 395M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 2.0G 0 2.0G 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/xvdb 6.0T 1.7T 4.1T 29% /workspace
Funktioniert immer noch nicht, nachdem sync
der Befehl ausgeführt wurde
➜ ~ sync
➜ ~ sudo /sbin/swapon /workspace/swap.1
swapon: /workspace/swap.1: swapon failed: Device or resource busy
Hier sind die Tauschinformationen
➜ ~ cat /proc/swaps
Filename Type Size Used Priority
/workspace/swap.1 file 10485756 0 -1
Antwort1
Ich hatte ein ähnliches Problem beim Versuch, eine Swap-Partition auf sda2 zu erstellen. Meine Lösung bestand darin, Folgendes einzugeben:
#: swapoff /dev/sda2
#: mkswap /dev/sda2
#: swapon /dev/sda2
Dies schien das Problem, das ich hatte, zurückzusetzen. Um sicherzustellen, dass dies funktioniert, verwenden Sie "lsblk", um den Einhängepunkt zu überprüfen.
Antwort2
Das Problem ist nicht das Hinzufügen des Swap-Speichers. Das Problem ist Ihre Annahme, dass der gesamte Swap-Speicher in der Ausgabe von angezeigt wird df
.
Darin werden nur Daten vom Typ Partition angezeigt, und da Sie In-System-Swapping verwenden, also eine Swap-Datei, werden diese nicht angezeigt. Der Swap-SpeicherWaraktiviert durch den ersten, swapon
den Sie getan haben; Sie haben nur an der falschen Stelle gesucht, um das zu bestätigen. Der zweite swapon
ist fehlgeschlagen, zu Recht, weil Sie dieselbe Datei nicht ein zweites Mal hinzufügen können. Als Sie in nachgesehen haben /proc/swaps
, was die endgültige Systemzusammenfassung von istalleSwap-Speicherplatz, Sie haben gesehen, dass Ihr neuer Speicherplatz einsatzbereit ist.
Antwort3
Sie müssen sync
den Blockcache nach dem mkswap
Befehl leeren.
Die Erklärung ist die folgende.
Wenn Sie Daten schreiben, diese aber nicht physisch auf die Festplatte geschrieben werden, handelt es sich um Dirty Pages. Das bedeutet, dass ihr Inhalt hier auf Ihrem System erstellt und nicht von der Festplatte gelesen wurde. Daher können Sie auf Dirty Pages nicht auslagern.
Antwort4
Versuchen Sie diesen Befehl
echo 1 > /sys/block/zram0/reset
Ersetzen Sie „zram0“ durch Ihre Swap-Partition. Beispiel:
# Zram disk - 512MB size
#zram_enable=`getprop ro.config.zram`
#if [ "$zram_enable" == "true" ]; then
# swapoff /dev/block/zram0
# echo 1 > /sys/block/zram0/reset
# echo 536870912 > /sys/block/zram0/disksize
# mkswap /dev/block/zram0
# sync
# swapon /dev/block/zram0 -p 32758