はじめる人のびぎねっと。

プライバシーポリシー

読み物

Linux基礎

スワップ領域とは?

スワップ領域とは,仮想メモリ使用時に不必要なメモリ領域のデータを一時的に書き込んでおくファイルシステム上の領域のことです。

仮想メモリは,実際にコンピュータに搭載されているメモリだけではなく,ハードディスクなどに用意されたスワップ領域も仮想的にメモリとみなして,より大きなメモリ容量を実現する仕組みです。しかし実際のメモリに比べてハードディスクは読み書きの速度が極端に遅いので,CPUとの間でのデータのやり取りはあくまで実メモリで行います。スワップ領域は,実メモリ上にある必要のないデータを退避しておき,実メモリに空きを作るために使用されます。このように不要なデータを退避することを「スワップアウト」と呼びます。

スワップパーティションとスワップファイル

Linuxはスワップ領域用のファイルシステムとしたパーティションを作成する必要があります。容量はシステムによって異なりますが,およそ実メモリの2倍が一般的です。これ以上の容量を準備したとしても,スワップアウトに時間がかかるため,実用的な速度は達成できないでしょう。パフォーマンスを要求するのであれば,常時使用するプロセスのプログラム領域とそのデータがスワップアウトせずにいられる程度の実メモリ容量を確保する必要があります。

スワップパーティションの他にも,スワップファイルを使うことができます。スワップファイルでは,ファイルにスワップアウトします

スワップパーティションの作成

システムを利用していると当初の予定よりも多くハードディスクを使ってしまい,既存のパーティションに収まらなくなることがあります。このようなときに,不要なファイルを削除するのもひとつの手ですが,新しいパーティションを作成するという方法もあります。

パーティションの作成は次の手順で行います。

(1)パーティションの作成
パーティションの作成は,fdiskコマンドで行います。操作例では,IDEハードディスク/dev/hdaの第2パーティションに作成する場合を想定します。 $ fdisk /dev/hda ←設定するハードディスクのデバイスファイル名 fdiskを起動したら,nコマンドなどでパーティションを作成し,tコマンドでIDを82に設定します。
(2)スワップ領域の作成
スワップ領域は,mkswapコマンドで作成します。 $ mkswap -c /dev/hda2 ←スワップパーティションをスワップ領域として使用可能にする -cオプションを付けて実行すると,スワップ領域を作成する前に不良ブロックの検査を行います。
(3)スワップ領域を有効にする
作成されたスワップ領域を有効にするには,swaponコマンドを実行します。 $ swapon /dev/hda2 ←スワップファイルをスワップ領域に追加する スワップ領域が有効になったかどうかの確認するには,freeコマンドを使用します。 $ free
(4)/etc/fstabに登録する
ブート時にスワップ領域が有効になるように,/etc/fstabに下記を追加します。 /dev/hda2 swap swap defaults 次にシステムがブートする時には,新しいスワップパーティションが有効になります。
(5)スワップ領域を無効にする
swapoffコマンドを実行すると,swaponコマンドで有効にしたスワップ領域を無効にすることができます。 $ swapoff /dev/hda2
スワップファイルの作成

システムの稼動中などに,一時的にスワップ領域を確保したい場合などにスワップファイルを作成します。そして,作成したファイルをスワップ領域に追加をします。

(1)スワップファイルの作成
ddコマンドを使って64MBのスワップファイルを作成します。 $ dd if=/dev/zero of=/tmp/swapfile bs=1024 count=65536 実行属性を付加します。 $ chmod 600 /tmp/swapfile
(2)スワップ領域を作成
mkswapコマンドでスワップ領域を作成します。 $ mkswap /swapfile スワップ領域が有効になったかどうかの確認するには,freeコマンドを使用します。 $ free
(3)スワップ領域を有効にする
swaponコマンドを使って,スワップ領域を有効にします。 swapon /swapfile
(4)/etc/fstabに登録する
ブート時にスワップ領域が有効になるように,/etc/fstabに下記を追加します。 /swapfile swap swap defaults 次にシステムがブートする時に,新しいスワップファイルが有効になります。

このページのTOPへ