2020-05-17

【備忘録】スワップファイルの追加

昨年買った NVIDIA Jetson Nano の使用頻度が高くない理由は、はっきり言って時間がないからだと主張したいのですが、持っている情報が少なくて前へ進めないのかもしれない、とも感じています。そこで入門書(右)を買ってみました。

本についての第一の感想は、買って良かった良かった、ということです。一番の理由は、グラフィック関連とはいえいままでサンプルプログラムさえ試していなかったことに気づいたからなのですが、その他に基本的なことで知らなかったということがいくつもありました。そのひとつがスワップの領域を追加する設定です。

ふだん FedoraCentOS を使っているから、というのは全くの言い訳になってしまうのですが、これらのディストロのインストーラは、デフォルトでストレージのパーティション設定に LVM を使っているため、容量の追加についての心配をしたことがありませんでした。

ところが、Jetson Nano 用の Ubuntu では(LVM は使用せず)スワップ領域が無い、あるいは 2GB しか設定されておらず、メモリ不足になる場合があるとのことです。買った入門書では、スワップ領域をファイルで追加していました。目から鱗です。いや、まあ、確かにできるよなあ、などと強がりを言っても試すしかありません。

ということで、自分の環境でスワップ領域を増やしたので備忘録にしました。使用環境は以下のとおりです。

Jetson Nano Developer Kit SD Card Image, JP 4.4 DP, 2020/04/21
Ubuntu 18.04 LTS GNU/Linux 4.9.140-tegra aarch64

スワップ領域の追加

スワップ領域の現状は次のようになっています。

(venv) bitwalk@jetson-pc:~$ free
              total        used        free      shared  buff/cache   available
Mem:        4051216     1013848     1729228       20568     1308140     3226852
Swap:       2025600           0     2025600
(venv) bitwalk@jetson-pc:~$ /sbin/swapon -s
ファイル名    タイプ  サイズ 使用済み 優先順位
/dev/zram0                              partition 506400 0 5
/dev/zram1                              partition 506400 0 5
/dev/zram2                              partition 506400 0 5
/dev/zram3                              partition 506400 0 5

zram で 500MB ずつが 4 つ(ARMコア数分)、計 2GB がスワップ領域として確保されています。この領域はメモリ上にあります。

さらにスワップ領域をストレージ上に作りますが、とりあえず zram 分と同じ 2GB を /var/swapfile 作成して様子を見ることにします。

(venv) bitwalk@jetson-pc:~$ sudo dd if=/dev/zero of=/var/swapfile bs=1G count=2
[sudo] bitwalk のパスワード: 
2+0 レコード入力
2+0 レコード出力
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 28.1978 s, 76.2 MB/s
(venv) bitwalk@jetson-pc:~$ sudo mkswap /var/swapfile
mkswap: /var/swapfile: パーミッション 0644 は安全な値ではありません。 0600 をお勧めします。
スワップ空間バージョン 1 を設定します。サイズ = 2 GiB (2147479552 バイト)
ラベルはありません, UUID=739207c1-88c1-4c2c-98d4-e35abb36cd49
(venv) bitwalk@jetson-pc:~$ sudo chmod 600 /var/swapfile

/etc/fstab を編集して、作成した /var/swapfile をマウントするようにします。

(venv) bitwalk@jetson-pc:~$ sudo vi /etc/fstab

下記の、黄色にマーキングした行を追加して保存します。

# /etc/fstab: static file system information.
#
# These are the filesystems that are always mounted on boot, you can
# override any of these by copying the appropriate line from this file into
# /etc/fstab and tweaking it as you see fit.  See fstab(5).
#
#                                     
/dev/root            /                     ext4           defaults                 0 1
/var/swapfile        none                  swap           swap                     0 0

swapon コマンドで /var/swapfile をスワップに追加します。

(venv) bitwalk@jetson-pc:~$ sudo swapon /var/swapfile

あらためてスワップ領域を確認しました。

(venv) bitwalk@jetson-pc:~$ free
              total        used        free      shared  buff/cache   available
Mem:        4051216      720708     1225392       19964     2105116     3211648
Swap:       4122748         232     4122516
(venv) bitwalk@jetson-pc:~$ /sbin/swapon -s
ファイル名    タイプ  サイズ 使用済み 優先順位
/dev/zram0                              partition 506400 60 5
/dev/zram1                              partition 506400 60 5
/dev/zram2                              partition 506400 56 5
/dev/zram3                              partition 506400 56 5
/var/swapfile                           file     2097148 0 -1
(venv) bitwalk@jetson-pc:~$ 

まとめ

インターネットから情報を得られるとは言え、調べかたが悪いと情報が偏る場合があります。ケチらずに必要な情報を効率的に集めるために、専門家のノウハウが詰まった書籍を買うことも重要です。今回、書籍の良さをあらためて認識しました。書籍といっても Kindle で欲しいときにすぐ読めます。😁

参考サイト

  1. Jetson Download Center | NVIDIA Developer

ブログランキング・にほんブログ村へ
にほんブログ村

0 件のコメント: