. 【STEP-27】swap領域を別デバイスに移動してSSD最適化
【STEP-27】swap領域を別デバイスに移動してSSD最適化
【STEP-27】swap領域を別デバイスに移動してSSD最適化

【STEP-27】swap領域を別デバイスに移動してSSD最適化

FacebookXPinterestWhatsApp

    Raspberry Pi 3 Model Bには1GBのSDRAMが搭載されていますが、ブラウザのタブをいくつも開いた状態で数GBのファイルを圧縮/展開するときなどは、メモリーが不足してフリーズしてしまうことがよくあります。

    しかも、OS ( Raspbian ) は、microSDカードを起動ドライブとしていることから、メモリー不足時の一時退避先であるswap領域が既定で100MBしか設定されていません。

    そこで、起動ドライブとは別のswap領域専用のデバイスをマウントすることで、パフォーマンスがアップする可能性があります。

    一般的にswap領域のサイズは、物理メモリーの2倍程度とされているので、今回はswap領域専用のデバイスとして、2GBのUSBメモリーを用意しました。

    現状のswap領域確認

    「LXTerminal」を起動し、先ず、コマンド”free“で、現状 ( 既定 ) のswap領域を確認しておきます。

    free -h

    既定では、swap領域は”99MB”のようです。

    USBメモリーのフォーマット

    Raspberry PiのUSB端子にUSBメモリーを接続すると、「リムーバブルメディアの挿入」画面が現れるので、「キャンセル」ボタンをクリックします。

    コマンド”lsblk“で、USBメモリーのデバイスファイル名を確認しておきます。

    lsblk

    “/media/pi/”にマウントされたUSBメモリーのデバイスファイル名は “sdb1”でした。容量は、1.9GBと少なく表示されています。

    フォーマットする前に、USBメモリーのデバイスファイル名”sdb1″を指定してアンマウントしておきます。

    umount /dev/sdb1

    コマンド”mkfs“で、USBメモリーをフォーマット形式”ext4″にフォーマットします。

    sudo mkfs.ext4 /dev/sdb1

    途中で「続行しますか?」と聞かれるので、”y”→「Enter」で返します。

    y

    プロンプトが返ってくれば、フォーマットは完了です。

    swap領域の準備

    コマンド”mkswap“で、USBメモリー”sdb1″に、ラベル名”usbswap”として、swap領域を準備します。

    sudo mkswap -c -v1 -L usbswap /dev/sdb1

    念の為、コマンド”lsblk“で、コマンド”mkswap“の実行結果を確認しておきます。

    lsblk -f

    USBメモリー”sdb1″は、ラベル名”usbswap”で、swap領域として準備されていることが確認できました。

    パーティションタイプの設定

    コマンド”fdisk“で、USBメモリー”sdb”のパーティションタイプを”82 ( Linux Swap )”に設定します。

    sudo fdisk /dev/sdb

    fdiskのプロンプト「Command(m for help):」が表示されたら、fdiskコマンド”p”でUSBメモリーの現状のパーティション情報を確認しておきます。

    p

    USBメモリー”sdb1″のパーティションタイプは、”7 ( HPFS/NTFS/exFAT )”として認識されていました。

    再び、fdiskのプロンプト「Command(m for help):」が表示されたら、fdiskコマンド”t”でパーティションタイプを変更します。

    t

    fdiskのプロンプト「Partition type ( type L to list all types ) :」が表示されたら、”82 ( Linux Swap )”を指定します。

    82

    fdiskのプロンプト「Command(m for help):」が表示されたら、fdiskコマンド”p”で指定した通りに変更されていることを確認します。

    p

    USBメモリー”sdb”は、パーティションタイプ”82 ( Linux Swap )”として認識されていることが確認できました。

    fdiskのプロンプト「Command(m for help):」が表示されたら、fdiskコマンド”w”でパーティション情報を上書きし,コマンド”fdisk“を終了します。

    w 新規swap領域の起動時自動マウント設定

    作成したswap領域がRaspbian起動時に自動的に有効化されるように、マウント設定ファイル”/etc/fstab”に書き込みます。

    「LXTerminal」を起動し、コマンド”sudo nano“で”/etc/fstab”を開きます。

    sudo nano /etc/fstab

    「GNU nano」画面が開いたら、「↓」キーでカーソルを行頭に”#”がある最初の行に移動し、「Enter」キーで1行開けて、次の通り入力します。各文字列間は「Tab」キーで送ります。

    LABEL=usbswap swap swap default 0 0

    入力したら「Ctrl」+「O」キーで上書きし、「Enter」→「Ctrl」+「X」キーで画面を閉じます。

    既定swap領域の起動時自動マウント停止

    システムディスク ( microSDカード、SSD等 ) 上にマウントされる既定のswap領域は、swap領域管理サービスの”dphys-swapfile”により実行されています。

    Raspbian起動時の”dphys-swapfile”の自動実行を止める為、コマンド”insserv“をインストールします。

    タスクバー左端のメニューアイコンから「設定」→「Add / Remove Software」をクリックして開いたら、左ペイン上の検索欄に”insserv“と入力して「Enter」キーを押します。

    右ペインに”insserv“が表示されたら、チェックボックスにチェックを入れて「Apply」ボタンをクリックします。

    すると、「認証待ち」画面に続いて「認証」画面が現れるので、パスワード入力欄に【STEP-09】で設定したパスワードを入力し、「OK」ボタンをクリックします。

    インストールが終了したら、”insserv“のチェックボックスにチェックが入っていることを確認して、「OK」ボタンをクリックしたます。

    インストールした”insserv“で、Raspbian起動時にswap領域管理サービス”dphys-swapfile”が自動実行されるのを止めます。

    sudo insserv -r dphys-swapfile

    swap領域のマウント状況確認

    コマンド”swapon -s“で、swap領域のマウント状況を確認します。

    swapon -s

    設定ファイルを編集しても、それが反映されるのは再起動後なので、現状のswap領域は既定の約100MBだけでした。

    コマンド”swapon -L”で、USBメモリーのswap領域ラベル名”usbswap”をマウントします。

    sudo swapon -L usbswap

    再び、コマンド”swapon -s“で、swap領域のマウント状況を確認します。

    swapon -s

    既定の102MBとUSBメモリー”sdb1″の1,955MBが、swap領域としてマウントされていました。

    確認したら、再起動します。

    reboot

    「LXTerminal」を起動し、もう一度、コマンド”swapon -s“で、swap領域のマウント状況を確認します。

    swapon -s

    USBメモリー”sdb1″の1,955MBだけが、swap領域としてマウントされていました。

    swap領域設定後の効果確認

    一旦、元の環境に戻す為、既定のswap領域”/var/swap”をマウントして、USBメモリーのswap領域”usbswap”をアンマウントし、コマンド”swapon -s”で確認します。

    sudo swapon /var/swap sudo swapoff -L usbswap swapon -s

    「LXTerminal」をもうひとつ起動し、コマンド”top“で、システム情報を表示します。

    表示された画面上にカーソルを移動してクリックし、次のトグルキーを1文字づつ入力して、表示を下の画面のように変更します。

    top m t m z

    ブラウザを起動して”You Tube”のノンストップ再生動画を1本づつ再生してみました。同時に3本再生したところで、既定のswap領域100MBを100%使い切りフリーズしそうになりました。1GBの搭載メモリーも95.4%使用して余裕はまったくありません。

    全ての画面を閉じて再起動すれば、今回設定した環境に戻るはずですが、念の為、コマンド”swapon -s”で確認します。

    swapon -s

    「LXTerminal」をもうひとつ起動し、コマンド”top“で、システム情報を表示します。

    表示された画面上にカーソルを移動してクリックし、次のトグルキーを1文字づつ入力して、表示を下の画面のように変更します。

    top m t m z

    前と同じくブラウザを起動して”You Tube”のノンストップ再生動画を1本づつ再生してみました。同時に5本再生しても、USBメモリーのswap領域1.9GBはまだ90%以上残り、1GBの搭載メモリーの使用率も87,2%で余裕があります。

    次回の【STEP-28】では、Cchromiumのキャッシュを高速なRAM内のRAMDISK領域にマウントして、ブラウジングの更なる安定化を図ります。

    <<【STEP-26】【STEP-28】>>

    📎📎📎📎📎📎📎📎📎📎