9
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Linuxでスワップ領域を作成する方法

Last updated at Posted at 2023-04-13

Linuxシステムで物理メモリが足りなくなったとき、スワップ領域が役立ちます。スワップ領域は、ディスク上の一部を仮想メモリとして使用することで、システムのメモリ容量を拡張します。この記事では、スワップ領域を作成する方法を説明します。

前提: スワップ領域の確認

まず、現在のスワップ領域の状況を確認しましょう。以下のコマンドを実行して、スワップ領域の情報を表示します。

$ free -h

または

$ swapon --show

これにより、現在のスワップ領域のサイズや場所が表示されます。すでに十分なスワップ領域がある場合は、これ以上の操作は不要です。

ステップ1: スワップファイルの作成

まず、ddコマンドを使用して、スワップファイルを作成します。以下のコマンドを実行してください。

$ sudo dd if=/dev/zero of=/swapfile bs=1M count=1024

このコマンドは、/dev/zeroからゼロバイトのデータを読み取り、/swapfileに書き込むことで、1GB(1024MB)のスワップファイルを作成します。
仮にスワップを2GB追加したい場合は、1024を2048(1024 * 2 = 2048MB)に変更すれば良いです。

ステップ2: スワップファイルのアクセス権限の変更

次に、スワップファイルのアクセス権限を変更します。スワップファイルは、セキュリティ上の理由から他のユーザーにアクセスされないようにする必要があります。以下のコマンドを実行して、アクセス権限を変更します。

$ sudo chmod 600 /swapfile

ステップ3: スワップファイルをスワップ領域として設定

次に、mkswapコマンドを使用して、スワップファイルをスワップ領域として設定します。以下のコマンドを実行してください。

$ sudo mkswap /swapfile

ステップ4: スワップファイルの有効化

作成したスワップファイルをシステムに有効化させるには、swaponコマンドを使用します。以下のコマンドを実行して、システムにスワップファイルを使用するように指示します。

$ sudo swapon /swapfile

ステップ5: スワップファイルの永続化

システム起動時にスワップファイルが自動的に有効化されるように、/etc/fstabファイルにエントリを追加します。以下のコマンドを実行して、エントリを追加します。

$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

スワップファイルの永続化は重要なので絶対行ってください。スワップファイルが永続化できていないと、サーバを再起動した際などにメモリ不足に気づかずアプリのクラッシュやデータの損失などが発生する可能性があります。

最終確認

最後に、新しく作成されたスワップ領域が正しく設定されているか確認しましょう。再度以下のコマンドを実行して、スワップ領域の情報を表示します。

$ free -h

または

$ swapon --show

これで、のスワップ領域が作成され、システムがそれを使用するように設定されました。今回の操作により、システムのメモリ容量が拡張され、より多くのアプリケーションやプロセスを同時に実行できるようになります。

9
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?