デフォルトでは、Ubuntuに250MBのスワップスペースがありますが、それをより大きなサイズに拡張したいと考えています。 800MBが必要です。これは、現在のスワップの制限に達することなく、いくつかのアプリケーションを開くのに十分だと思います。誰かが私を助けてくれることを願っています。
スワップ領域を追加します。これは(あらゆる面で)スワップパーティションと同じではありませんが、簡単で動的です。
/media/fasthdd/swapfile.img
を好きなものに変更します。たとえば、/swap.img
にすることもできます。 /media/fasthdd/swapfile.img
は単なるファイル名の例です。これを使用している場合は、当然、新しいスワップファイル用に十分な空き領域のある/media/fasthdd/
ディレクトリが必要です。
ターミナルアプリケーションのいずれかを使用して、コマンドを実行します。すべてのコマンドを実行する必要があります ルート権限で、これを行うには、すべてのコマンドの先頭にSudo
を追加するか、コマンドを実行する前にSudo bash
を実行します。
1.空のファイルを作成します。
このファイルには仮想メモリの内容が含まれるため、必要に応じてファイルを十分に大きくします。これにより、1Gbファイルが作成されます。これは、システムの+ 1Gbスワップスペースを意味します。
dd if=/dev/zero of=/media/fasthdd/swapfile.img bs=1024 count=1M
3Gbファイルを作成する場合は、カウント値をcount=3M
に変更します。詳細については、man dd
を参照してください。
2.スワップファイルをベイクする:
次のコマンドは、新しいスワップファイル内に「スワップファイルシステム」を作成します。
mkswap /media/fasthdd/swapfile.img
3.起動時に起動します。
コンピューターの起動中に新しいスワップスペースがアクティブになっていることを確認するには、ファイルシステム構成ファイル/etc/fstab
に追加する必要があります。ファイルの最後に追加します。他のファイルシステム(スワップファイルを含む少なくとも1つ)ファイルにアクセスする前に、読み取り/書き込みモードでマウントする必要があります。
# Add this line to /etc/fstab
/media/fasthdd/swapfile.img swap swap sw 0 0
4.有効化:
次のコマンドを使用して、コンピューターを再起動するか、手動で新しいスワップファイルをアクティブにすることができます。
swapon /media/fasthdd/swapfile.img
使用可能なスワップ領域が増えていることがわかります。次のコマンドを使用して、新しいスワップを確認し、アクティブであることを確認できます。
cat /proc/swaps
Filename Type Size Used Priority
/media/fasthdd/swapfile.img file 8388604 2724 -1
grep 'Swap' /proc/meminfo
SwapCached: 4772 kB
SwapTotal: 8388604 kB
SwapFree: 8355812 kB
スワップサイズを増やすもう1つの方法は、GParted Partition Editorを使用することです。つまり、スワップパーティションのサイズを変更し、それを右クリックして「Swapon」を選択します。
Gparted-live-diskまたはUbuntu live diskをブートする方が簡単です(すべての/dev/sda
パーティションがアンマウントされるように)。 Ubuntuライブディスクを実行する場合、以下のコマンドを実行してgpartedをインストールする必要があります。
Sudo apt-get update
Sudo apt-get install gparted && Sudo gparted
スワップパーティションの前または後に未割り当て領域が存在する場合にのみ、スワップパーティションのサイズを大きくできる必要があります。スワップパーティションの下または上に未割り当て領域(スワップパーティションで追加しようとしている領域)がなかった場合、パーティションのサイズを変更し、その未割り当て領域を取得する必要があります。
上記のスクリーンショットでは、linux-swapの前に11.4 GB、スワップパーティションの後に12.8 GBの未割り当て領域がありました。
サイズを変更するには、スワップパーティション(ここでは/ dev/sda9)を右クリックし、[サイズ変更/移動]オプションをクリックします。次のようになります。
スライダーの矢印を左右にドラッグして、[サイズ変更/移動]ボタンをクリックします。スワップパーティションのサイズが変更されます。
上記のスクリーンショットでは、スワップパーティションに追加する未割り当て領域はdev/sda7
と/dev/sda8
の間にありました。未割り当て領域をそこからスワップパーティションのすぐ上に移動するには、単純な以下の手順、
/ dev/sda8パーティションを右クリックして、Resize/Moveオプションをクリックします。
スライダーをクリックして左端に移動すると、/dev/sda8
パーティションのすぐ上にあった未割り当てスペースが/dev/sda8
の下になります。その後、[サイズ変更/移動]ボタンをクリックします。
そして今、未割り当て領域はケース1のようなスワップパーティションのすぐ上にありました。
拡張パーティションのすぐ下に18 GBの未割り当てスペースがありました。このスペースをlinux-swapパーティション(拡張パーティション内にある)に追加するには、次の手順に従う必要があります。
拡張パーティションを右クリックしてResize/Moveオプションを選択すると、次のスクリーンショットのようになります
矢印をクリックして右端にドラッグし、Resize/Moveをクリックして、18GBの未割り当て領域が拡張パーティションの下部に来るようにします.14.80 GBの未割り当て領域が既に下部にあり、18.34 GBがそれと組み合わされて、拡張パーティションの下部に(18.34 + 14.80 GB)の未割り当て領域が作成されます。
スワップパーティションのすぐ下に未割り当てのスペースがありました。これはケース1のようになり、ケース1に従います。
注:上記の操作を進める前に、重要なデータをすべてバックアップすることを忘れないでください。
0からfallocate
でファイルを埋める必要なく、スワップファイル用のスペースを確保したい場合は、dd
を使用することもできます。
man
ページから:
DESCRIPTION
fallocate is used to preallocate blocks to a file. For filesystems which support the fallocate system call, this is done quickly by
allocating blocks and marking them as uninitialized, requiring no IO to the data blocks. This is much faster than creating a file by
filling it with zeros.
既にswap
が定義されている場合は、それを削除するか保持することができ、* nixがそれを管理します(swapon
優先度を定義することでさらに良くなります)。これは、異なるデバイス、ドライブ間でスワップを分散させる場合に役立ちます(速度またはその他のカスタムニーズに基づいて、 StackExchangeの複数のスワップファイルの目的は何ですか を参照)。
fallocate
の使用法$ Sudo swapon -s
Filename Type Size Used Priority
/swapfile file 262140 246276 -1
スワップファイルを作成およびアクティブ化する標準的な方法。
$ size="4G" && file_swap=/swapfile_$size.img && Sudo touch $file_swap && Sudo fallocate -l $size /$file_swap && Sudo mkswap /$file_swap && Sudo swapon -p 20 /$file_swap
/etc/fstab
ファイルに行を追加して、スワップが次回の再起動時に初期化されるようにします(新しく作成されたスワップスペースの優先度も更新し、古いスワップファイルの優先度も更新します)。
/ etc/fstabファイルで、prevスワップの優先度が10になっていることに注意してください。
/swapfile none swap sw,pri=10 0 0
/swapfile_4G.img none swap sw,pri=20 0 0
$ Sudo swapon -s
Filename Type Size Used Priority
/swapfile file 262140 0 10
/swapfile_4G.img file 4194300 0 20
/etc/fstab
削除するスワップに関連する行を削除します。
スワップファイルを削除して削除します。
Sudo swapoff /mnt/swapfile && Sudo rm /mnt/swapfile
私の場合、1GBと思ったスワップファイルが既にありましたが、詳しく見ると256 MBしかなく、Railsアセットをプリコンパイルするとサーバーがメモリ不足になりました。
Errno::ENOMEM: Cannot allocate memory - nodejs
ここで説明するように、スワップファイルを作成しました: https://stackoverflow.com/a/34885004/784318
/swapfile
という空のファイルを作成する行は次のとおりです。
Sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k
スワップファイルのサイズを変更するには、次の簡単な手順を実行する必要がありました。
# Reboot the system to be able to switch swapping off
Sudo reboot
# Turn swap off
Sudo swapoff -a
# Delete the `/swapfile`
rm -f /swapfile
# Recreate the swapfile but with double file size memory
Sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k
# Turn swap back on
Sudo swapon -s
# Change the permission to non-world-readable
Sudo chown root:root /swapfile
Sudo chmod 0600 /swapfile
# Use the swap file
Sudo mkswap /swapfile
Sudo swapon /swapfile
ファイルが作成されました(536870912/1024/1024 = 512 MB):
ls -lia /swapfile
768 -rw------- 1 root root 536870912 Apr 27 07:54 /swapfile
free -m
コマンドを使用すると、ファイルが予想どおり512 MBであることがわかりました。
スワップファイルの追加方法
creat .imgファイル
Sudo dd if =/dev/zero of =/swap.img bs = 1M count = 1000
注!:bs = 1M count = 1000 ==> 1GB
(bs *カウント=メガバイト単位のサイズ)
他の例:
Sudo dd if =/dev/zero of =/swap.img bs = 10M count = 100
.imgファイルをフォーマットする
須藤mkswap /swap.img
スワップファイルを有効にする
Sudo swapon /swap.img
スワップファイルをfstabに追加します
この行をfstab(/ etc/fstab)に追加します
/swap.img none swap sw 0 0