スワップ領域を増やす方法は?


128

デフォルトでは、Ubuntuに250MBのスワップスペースがありますが、それをより大きなサイズに拡張したいと思います。800MBが必要です。これは、現在のスワップの制限に達することなく、いくつかのアプリケーションを開くのに十分だと思います。誰かが私を助けてくれることを願っています。


2
Gpartedを開き、ここに表示されるもののスクリーンショットを投稿してください。
アーロンヒル

スワップパーティションを隣接する未割り当て領域に拡張できる場合は、を使用しますgparted。アクティブな(ブートされた)パーティションがすべての非スワップスペースを使用しているなどの理由でそのようなスペースが利用できない場合、gparted未割り当てスペースを作成するためにアクティブパーティションのサイズを小さくすることはできません。この場合、より大きなスワップスペースを作成するためにUbuntuを再インストールできます。
H2ONaCl

回答:


172

いつでもスワップファイルを作成できます

スワップ領域を追加します。これは(あらゆる面で)スワップパーティションと同じではありませんが、簡単で動的です。

/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

5
編集するに/etc/fstabは、コマンドラインでこれを試してくださいsudo gedit /etc/fstab
ベン

大変助かりました。ありがとうございます。
リカ

新しく作成されたスワップファイルを無効にする方法は?
リカ

1
スワップオフ!
リカ

2
ステータスを確認するには、「cat / proc / swaps」ではなく「swapon -s」コマンドを使用します。その後、「free」コマンドもスワップ使用情報を提供します。
ポールM

40

スワップパーティションのサイズを増やすGUIメソッド

スワップサイズを増やすもう1つの方法は、GPartedパーティションエディターを使用することです。つまり、スワップパーティションのサイズを変更し、それを右クリックして「Swapon」を選択します。

gparted-live-diskまたはUbuntu live disk(すべての/dev/sdaパーティションがマウント解除されるように)を起動するのが簡単です。Ubuntuライブディスクを実行する場合、以下のコマンドを実行してgpartedをインストールする必要があります。

sudo apt-get update
sudo apt-get install gparted && sudo gparted

スワップパーティションの前または後に未割り当て領域が存在する場合にのみ、スワップパーティションのサイズを大きくできる必要があります。スワップパーティションの下または上に未割り当て領域(スワップパーティションで追加しようとしている領域)がなかった場合、パーティションのサイズを変更し、その未割り当て領域を取得する必要があります。

ケース1-スワップパーティションの前または後に存在する未割り当て領域

GPartedパーティション

上記のスクリーンショットでは、linux-swapの前に11.4 GB、スワップパーティションの後に12.8 GBの未割り当て領域がありました。

  • サイズを変更するには、スワップパーティション(ここでは/ dev / sda9)を右クリックし、[サイズ変更/移動]オプションをクリックします。次のようになります。

    ここに画像の説明を入力してください

  • スライダーの矢印を左右にドラッグして、[サイズ変更/移動]ボタンをクリックします。スワップパーティションのサイズが変更されます。


ケース2-パーティション間に未割り当て領域がある

ここに画像の説明を入力してください

上記のスクリーンショットでは、スワップパーティションに追加したい未割り当て領域はとの間にdev/sda7ありました/dev/sda8。未割り当て領域をスワップパーティションのすぐ上に移動するには、以下の簡単な手順に従う必要があります。

  • / dev / sda8パーティションを右クリックして、[ サイズ変更/移動 ]オプションをクリックします。

    ここに画像の説明を入力してください

  • スライダーをクリックして左端に移動すると、/dev/sda8パーティションのすぐ上にあった未割り当て領域が下に/dev/sda8表示されます。その後、[サイズ変更/移動]ボタンをクリックします。

  • そして今、未割り当て領域は、ケース1のようなスワップパーティションのすぐ上にありました。


ケース3-未割り当て領域が拡張パーティションの外部に存在した場合

ここに画像の説明を入力してください

拡張パーティションのすぐ下に18 GBの未割り当て領域がありました。この領域をlinux-swapパーティション(拡張パーティション内にある)に追加するには、以下の手順に従う必要があります。

  • 拡張パーティションを右クリックして、[ サイズ変更/移動 ]オプションを選択すると、下のスクリーンショットのようになります

    ここに画像の説明を入力してください

  • 矢印をクリックして右端までドラッグし、[ サイズ変更/移動 ]をクリックして、18 GBの未割り当て領域が拡張パーティションの下部に来るようにします。 GBはそれと組み合わされて、拡張パーティションの下部に(18.34 + 14.80 GB)の未割り当て領域を作成します。

  • スワップパーティションのすぐ下に未割り当てのスペースがあり、ケース1のようになり、ケース1に続きます。

注:上記の操作を進める前に、すべての重要なデータのバックアップを取ることを忘れないでください。


2
GUIツールの優れたガイド、そのまま++に値します。ただし、パーティションの編集に伴うリスクの可能性に関する警告が表示される場合があります。シンプルなMBRバックアップガイドまたはそのようなガイドへのリンクは素晴らしい追加であり、エラーは起こりそうにないかもしれませんが、コストが高くなる可能性があります + MBRバックアップを取ることはあまり多くの時間やスペースを消費せず正しく行われれば多くの作業、スペース、時間を節約できます。
サンポサラーラ

2
swaponを忘れずに、swapパーティションを右クリックし、swapon
user3752281

30

またfallocate、ファイルを0〜で埋める必要なく、スワップファイル用のスペースを確保する場合にも使用できます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の複数のスワップファイルの目的を参照してください)。

fallocate2番目のスワップファイルを追加するための簡単な使用法

スワップ状況を確認します。

$ sudo swapon -s
Filename                Type        Size    Used    Priority
/swapfile               file        262140  246276  -1

4Gスワップファイルを作成する

スワップファイルを作成およびアクティブ化する標準的な方法。

$ 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

スワップスペースの1つ(たとえば、元の256Mb)を削除します

編集 /etc/fstab

削除するスワップに関連する行を削除します。

そのスワップを削除する

スワップファイルを削除して削除します。

sudo swapoff /mnt/swapfile && sudo rm /mnt/swapfile

リソース:


3
1の 場合、fsがサポートしている場合fallocateよりもはるかに優れddています。それらのワンライナーはまだ読みにくいと感じていますが、実際のコマンドに分解する場合は勉強しやすいでしょうか?
サンポサラーラ

3
これは完璧な答えの例であり、非常に理解しやすく、実装が非常に簡単です。それはubuntu 18の魅力のように働いた
ダミアンラファエルラテネロ

7

私の場合、すでに1GBと思ったスワップファイルがありましたが、もっと詳しく見ると256MBだけで、レールアセットをプリコンパイルするとサーバーがメモリ不足になりました

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になっていることがわかりました。


単一のファイルを削除するために、rmコマンドで危険な-rフラグを使用しないでください。rm -fは十分すぎるはずです。
サンポサッララ16

1
@SampoSarralaヘッドアップをありがとう、それに応じてスクリプトを変更しました。
ベシ

@Besiありがとうございます!これはまさに、Ubuntu 18.04 LTSシステムでスワップファイルのサイズを増やすために必要なものでした。書いたとおりに機能しました。素晴らしい助け!!!
Bラジカル

このソリューションは、コマンドラインであり、再パーティション化を必要とせず、スワップファイルが既に存在する場合の対処方法が説明されているため、気に入っています。
cxrodgers

3

スワップファイルを追加する方法

  1. 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

  1. .imgファイルをフォーマットする

    sudo mkswap /swap.img

  2. スワップファイルを有効にする

    sudo swapon /swap.img

  3. スワップファイルをfstabに追加します

この行をfstab(/ etc / fstab)に追加します

/swap.img   none            swap    sw              0       0

私は通常、「mkswap -L SWAP2」などのスワップにラベルを設定します。
ポールM

注意:これはサンポサリアによって受け入れ/最もupvoted答えとして、それ以下の文脈でスワップIMGは/メディア/ fasthddするのではなく、根に直接追加と同じ答えである

0

スワップのサイズを8GBに変更

# Turn swap off
# This moves stuff in swap to the main memory and might take several minutes
sudo swapoff -a

# Create an empty swapfile
# Note that "1G" is basically just the unit and count is an integer.
# Together, they define the size. In this case 8GB.
sudo dd if=/dev/zero of=/swapfile bs=1G count=8

sudo mkswap /swapfile  # Set up a Linux swap area
sudo swapon /swapfile  # Turn the swap on

動作したかどうかを確認します

grep Swap /proc/meminfo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.