シングルボードコンピュータの動作が不安定な場合のswapfile作成手順

先日、Tinker Board 2SにUSBチューナーを接続しました。

Tinker Board 2SでUSB-TVチューナーを使用するには
以前、Raspberry Pi OSで地デジ視聴環境を構築しましたが。 Raspberry Pi 4でUSB TVチューナが使...

Tinker Board 2Sは、メモリー容量2GBのモデルですが、EPGStationのビルドでフリーズしてしまいます。

これはどうも、メモリーが足りない状況のようです。

しかし、swapfileを作成することで、メモリー不足が解消されて、ビルドが進みました。

swapfileの作成手順を記録しておこうと思います。


swapfile作成手順

次の流れになります。

  1. 空のファイルを作成する。サイズはメインメモリー容量の2倍程度。
  2. swapファイルシステム作成。
  3. swapに登録。
  4. 再起動後も自動登録されるように、/etc/fstabに追記。

# 空のファイル作成
sudo truncate -s 4G /var/swapfile
sudo dd if=/dev/zero of=/var/swapfile bs=1M count=4k status=progress
# ファイルシステム作成
sudo chmod 0600 /var/swapfile
sudo mkswap -f /var/swapfile
# swap追加
sudo swapon -a /var/swapfile
# 確認
sudo swapon -s
# fstabへ追記
cat << EOF | sudo tee -a /etc/fstab
/var/swapfile swap swap defaults 0 0
EOF
cat /etc/fstab

最初、truncateで空のファイルを作成した後に、mkswapでファイルシステムを作成しましたが、この場合swapとして有効にできませんでした。

理由は、truncateで作成した空のファイルは、実際のファイルサイズが指定した容量と異なる(見かけ上の容量)ためのようです。

このため、ddコマンドでファイルを埋めて、実際の使用量とファイルサイズが同じになるようにする必要があります。

この場合は、swapとして正常に有効にできました。


Tinker Board 2SのeMMC容量は16GBです。

メモリー容量2GBモデルの場合、4GBのswapを必ず作成したほうが良いように思えます。

その場合、空き容量は3.5GBほどになるようです。Tinker Board 2Sは電源容量に余裕があり、USB端子にHDDやSSDを接続しても問題なく動作します。

上図では、/dev/sda1として容量1TBのHDDを使用していますが、より電源容量の大きなType-C端子に接続することで、安定して動作するようです。

メモリー容量が少なめ(4GB以下)のシングルボードコンピュータを使用している場合は、swapを作成してみてください。

ちなみにkubernetesのようなクラスタは、swap作成はNGのため。メモリー容量の大きなマシンを使用する必要があるようです。ご注意下さい。

スポンサーリンク

フォローする

スポンサーリンク