マウントされた外部EBS、/workspaceにスワップを作成したい
そして私はデバイスまたはリソースがビジー状態です
swapon: /workspace/swap.1: swapon 失敗: デバイスまたはリソースがビジー状態です
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
sync
コマンドを実行してもまだ動作しません
➜ ~ sync
➜ ~ sudo /sbin/swapon /workspace/swap.1
swapon: /workspace/swap.1: swapon failed: Device or resource busy
スワップ情報はこちら
➜ ~ cat /proc/swaps
Filename Type Size Used Priority
/workspace/swap.1 file 10485756 0 -1
答え1
sda2にスワップパーティションを作成しようとしたときに同様の問題が発生しました。私の解決策は次のように入力することでした。
#: swapoff /dev/sda2
#: mkswap /dev/sda2
#: swapon /dev/sda2
これで、私が抱えていた問題がリセットされたようです。これが機能するかどうかを確認するには、「ブロックマウントポイントを確認します。
答え2
問題はスワップを追加することではなく、すべてのスワップ領域が の出力に表示されるという想定にありますdf
。
そこにはパーティションタイプのデータのみが表示され、システム内スワップ、つまりスワップファイルを使用しているため、それは表示されません。スワップスペースだった最初に実行した方法でswapon
は、確認する場所が間違っていました。2回目はswapon
失敗しました。同じファイルを2度追加することはできないため、当然のことです/proc/swaps
。全てスワップ スペースでは、新しいスペースが稼働していることがわかりました。
答え3
sync
コマンドの後にブロック キャッシュを削除する必要がありますmkswap
。
その説明は以下の通りです。
データを書き込んでも、それが物理的にディスクに書き出されていない場合、そのページはダーティ ページになります。つまり、そのコンテンツはシステム上で作成され、ハード ディスクから読み込まれなかったということです。したがって、ダーティ ページをスワップすることはできません。
答え4
このコマンドを試してください
echo 1 > /sys/block/zram0/reset
「zram0」をスワップパーティションに置き換えます。例:
# 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