・2017/11/01
Orange Pi Ubuntu Xenialのスワップメモリのサイズ変更、設定方法まとめ、ZRAM Swapを無効にする方法
(オレンジパイのスワップメモリサイズの変更方法、設定方法、ZRAMの圧縮メモリスワップを無効にする方法)
Tags: [Raspberry Pi], [Orange Pi], [電子工作], [海外通販], [通信販売]
● Orange Pi PC 2の Ubuntu 16.04 Xenial版の SWAPメモリの設定方法
このページの内容は下記の Ubuntu Xenialで動作を確認しています。
user@orangepipc2:~$ uname -a
Linux orangepipc2 4.13.11-sunxi64 #116 SMP Sun Nov 5 01:54:42 CET 2017 aarch64 aarch64 aarch64 GNU/Linux
user@orangepipc2:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial
● How to config Swap memory settings on Orange Pi PC 2 with Ubuntu 16.04 Xenial
How to config Swap memory settings on Orange Pi PC 2 with Ubuntu 16.04 Xenial
Orange Pi PC2の Ubuntu 16.04 Xenialでのスワップメモリの設定方法
● Orange Pi PC2のデフォルトのスワップメモリ設定は ZRAMで 497MB
ZRAMは圧縮機能付きの RAMディスク
497MBの内訳は CPU 1コア当たり 124MBづつ割り当てで 124 * 4 ≒ 497
デフォルトの Swap領域は zram 497MBとなっている
user@orangepipc2:~$ free -h
total used free shared buff/cache available
Mem: 994M 37M 875M 2.5M 81M 876M
Swap: 497M 0B 497M
user@orangepipc2:~$ grep -i --color swap /proc/meminfo
SwapCached: 0 kB
SwapTotal: 509280 kB
SwapFree: 509280 kB
user@orangepipc2:~$ swapon
NAME TYPE SIZE USED PRIO
/dev/zram0 partition 124.3M 0B 5
/dev/zram1 partition 124.3M 0B 5
/dev/zram2 partition 124.3M 0B 5
/dev/zram3 partition 124.3M 0B 5
ZRAMのスワップメモリ設定は起動時に下記で実行される
メインメモリの半分を CPUコアで割り算して割り当てている
root@orangepipc2:~# cat /usr/bin/init-zram-swapping
#!/bin/sh
# load dependency modules
NRDEVICES=$(grep -c ^processor /proc/cpuinfo | sed 's/^0$/1/')
if modinfo zram | grep -q ' zram_num_devices:' 2>/dev/null; then
MODPROBE_ARGS="zram_num_devices=${NRDEVICES}"
elif modinfo zram | grep -q ' num_devices:' 2>/dev/null; then
MODPROBE_ARGS="num_devices=${NRDEVICES}"
else
exit 1
fi
modprobe zram $MODPROBE_ARGS
# Calculate memory to use for zram (1/2 of ram)
totalmem=`LC_ALL=C free | grep -e "^Mem:" | sed -e 's/^Mem: *//' -e 's/ *.*//'`
mem=$(((totalmem / 2 / ${NRDEVICES}) * 1024))
# initialize the devices
for i in $(seq ${NRDEVICES}); do
DEVNUMBER=$((i - 1))
echo $mem > /sys/block/zram${DEVNUMBER}/disksize
mkswap /dev/zram${DEVNUMBER}
swapon -p 5 /dev/zram${DEVNUMBER}
done
root@orangepipc2:~# NRDEVICES=$(grep -c ^processor /proc/cpuinfo | sed 's/^0$/1/')
root@orangepipc2:~# echo ${NRDEVICES}
4
root@orangepipc2:~# totalmem=`LC_ALL=C free | grep -e "^Mem:" | sed -e 's/^Mem: *//' -e 's/ *.*//'`
root@orangepipc2:~# mem=$(((totalmem / 2 / ${NRDEVICES}) * 1024))
root@orangepipc2:~# echo $totalmem
1018572
root@orangepipc2:~# echo $mem
130376704
# 130376704 bytes / 1024 / 1024 = 124.3MB
ZRAMスワップが不要な場合は ZRAM機能を削除するか、ZRAMを設定しているスクリプトを書き換える
apt-get remove --purge zram-config
sudo nano /usr/bin/init-zram-swapping
● Orange Pi PC 2にスワップファイルのスワップメモリを割り当てる
まず、既存のスワップメモリを全部停止する。
user@orangepipc2:~$ sudo swapoff -a
[sudo] password for user:
user@orangepipc2:~$ swapon
user@orangepipc2:~$ free -h
total used free shared buff/cache available
Mem: 994M 48M 461M 4.4M 484M 855M
Swap: 0B 0B 0B
スワップ領域の為のスワップファイルを作成して、スワップメモリとして設定する。
# スワップ領域の為のスワップファイルを作成
sudo dd if=/dev/zero of=/var/tmp/swap.img bs=1M count=512
# スワップファイルをスワップ領域として設定する
sudo mkswap /var/tmp/swap.img
# chmodでスワップファイルの属性を変更する
sudo chmod 0600 /var/tmp/swap.img
# スワップファイルをスワップ領域として有効にする
sudo swapon -p 1 /var/tmp/swap.img
# スワップ領域の確認
swapon
# NAME TYPE SIZE USED PRIO
# /var/tmp/swap.img file 512M 0B 1
free -h
# total used free shared buff/cache available
# Mem: 994M 38M 361M 5.7M 594M 867M
# Swap: 511M 0B 511M
# 再起動したら上記の設定は忘れて無効になる
再起動した時にも上記の設定を永続化したい場合は下記の設定が追加で必要
# スワップ領域を /etc/fstabに記述する
sudo nano /etc/fstab
/var/tmp/swap.img none swap defaults 0 0
# nanoエディタで書き換えるのが面倒な場合は下記のコマンドラインで簡単に設定できる
sudo sh -c "echo /var/tmp/swap.img none swap defaults 0 0 >>/etc/fstab"
# /etc/fstabに記述したスワップ領域を有効にする
sudo swapon -a
cat /etc/fstab
# UUID=12345678-1234-1234-1234-123456789012 / ext4 defaults,noatime,nodiratime,commit=600,errors=remount-ro 0 1
# tmpfs /tmp tmpfs defaults,nosuid 0 0
# /var/tmp/swap.img none swap defaults 0 0
● Ubuntuの仮想メモリデーモン kswapd kswapd0が CPU負荷 100%になる疑惑が有るので対策する
KswapD0 use 100% CPU
Ubuntu 16.04
After upgrde from 15.10 to 16.04, I noticed my netbook fan was constantly turning at full throtle. I checked the process mnitoor and noticed KswapD0 used 100% of one core.
The fix has been released for 16.04 and has been confirmed fixed by multiple people. Run apt-get upgrade and restart. - Ryan Lavelle Oct 25 '16 at 22:56
apt-get upgrade
reboot
kswapd0 100% CPU usage
# /proc/sys/vm/drop_cachesを 1に設定する
sudo sh -c "echo 1 > /proc/sys/vm/drop_caches"
# /lib/udev/rules.d/40-vm-hotadd.rulesの 3行目を #でコメント化する
sudo nano /lib/udev/rules.d/40-vm-hotadd.rules
# ATTR{[dmi/id]sys_vendor}=="Xen", GOTO="vm_hotadd_apply"
# /lib/udev/rules.d/40-vm-hotadd.rulesの 3行目を #でコメント化する
# nanoエディタで書き換えるのが面倒な場合は下記のコマンドラインで簡単に設定できる
sudo sed -i -e 's/^ATTR{\[dmi\/id\]sys_vendor}=="Xen"/# ATTR{[dmi\/id]sys_vendor}=="Xen"/' /lib/udev/rules.d/40-vm-hotadd.rules
●その他のメモリ関連のコマンド
user@orangepipc2:~$ top
top - 01:03:39 up 52 min, 2 users, load average: 4.12, 3.59, 2.38
Tasks: 96 total, 5 running, 91 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.1 us, 25.1 sy, 0.0 ni, 74.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1018572 total, 324040 free, 66004 used, 628528 buff/cache
KiB Swap: 524284 total, 524284 free, 0 used. 840260 avail Mem
・topコマンド

user@orangepipc2:~$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
4 0 0 324240 41104 587424 0 0 30 40 156 120 17 5 76 1 0
# topコマンドの拡張版 htop
user@orangepipc2:~$ htop
・topコマンドの拡張版 htop

・topコマンドの拡張版 htop

● topコマンドの拡張版 htopの更新頻度の指定方法
-d --delay=DELAY Set the delay between updates, in tenths of seconds
で指定しますが、"in tenths of seconds"の意味は何でしょうか?
10分の 1秒の意味なので、
1を指定すると 0.1秒毎に 1回更新(100ms間隔で更新)。
10を指定すると 1秒毎に 1回更新(1秒間隔で更新)。
100を指定すると 10秒毎に 1回更新(10秒間隔で更新)。
htop -d20
htop 2.0.1 - (C) 2004-2016 Hisham Muhammad
Released under the GNU GPL.
-C --no-color Use a monochrome color scheme
-d --delay=DELAY Set the delay between updates, in tenths of seconds
-h --help Print this help screen
-s --sort-key=COLUMN Sort by COLUMN (try --sort-key=help for a list)
-u --user=USERNAME Show only processes of a given user
-p --pid=PID,[,PID,PID...] Show only the given PIDs
-v --version Print version info
Long options may be passed with a single dash.
Press F1 inside htop for online help.
See 'man htop' for more information.
● Orange Pi PC2の swapファイルの設定
user@orangepipc2:~$ free -h
total used free shared buff/cache available
Mem: 994M 37M 875M 2.5M 81M 876M
Swap: 497M 0B 497M
user@orangepipc2:~$ grep -i --color swap /proc/meminfo
SwapCached: 0 kB
SwapTotal: 509280 kB
SwapFree: 509280 kB
user@orangepipc2:~$ swapon
NAME TYPE SIZE USED PRIO
/dev/zram0 partition 124.3M 0B 5
/dev/zram1 partition 124.3M 0B 5
/dev/zram2 partition 124.3M 0B 5
/dev/zram3 partition 124.3M 0B 5
ram上?のスワップメモリをオフにする
sudo swapoff -a
user@orangepipc2:~$ swapon
user@orangepipc2:~$ free -h
total used free shared buff/cache available
Mem: 994M 48M 461M 4.4M 484M 855M
Swap: 0B 0B 0B
SDカード上にスワップメモリのファイルを作成する
# 例としてスワップサイズに 1GBを設定
# dd if=/dev/zero of=/var/tmp/swap.img bs=1M count=1024
# mkswap /var/tmp/swap.img
# /etc/fstabに記述すると永続化します(システムを再起動しても有効)
/var/tmp/swap.img none swap defaults 0 0
# swapon -aで fstabに記述したスワップ領域を全て有効にする
# swapon -a
● Orange Pi Zeroのスワップメモリを永久に無効化する
Orange Pi Zeroでは 128MBが Swap領域になっています。
Welcome to ARMBIAN 5.25 stable Debian GNU/Linux 8 (jessie) 3.4.113-sun8i
user@orangepizero:~$ free
total used free shared buffers cached
Mem: 506820 112336 394484 6392 6848 51076
-/+ buffers/cache: 54412 452408
Swap: 131068 0 131068
user@orangepizero:~$ cat /proc/swaps
Filename Type Size Used Priority
/var/swap file 131068 0 -1
user@orangepizero:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 1.9G 0 disk
└─mmcblk0p1 179:1 0 1.7G 0 part /
user@orangepizero:~$ sudo swapoff -a
[sudo] password for user:
user@orangepizero:~$ free -h
total used free shared buffers cached
Mem: 494M 110M 384M 6.2M 6.7M 50M
-/+ buffers/cache: 53M 441M
Swap: 0B 0B 0B
user@orangepizero:~$ cat /etc/fstab | grep swap
/var/swap none swap sw 0 0
user@orangepizero:~$ sudo nano /etc/fstab
# /var/swap none swap sw 0 0
user@orangepizero:~$ cat /etc/fstab | grep swap
# /var/swap none swap sw 0 0
user@orangepizero:~$ sudo reboot
再起動
user@orangepizero:~$ free -h
total used free shared buffers cached
Mem: 494M 109M 385M 6.3M 6.7M 49M
-/+ buffers/cache: 52M 442M
Swap: 0B 0B 0B
user@orangepizero:~$ cat /proc/swaps
Filename Type Size Used Priority
(swap領域が何も無い)
Tags: [Raspberry Pi], [Orange Pi], [電子工作], [海外通販], [通信販売]
●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)
ラズパイを意識した別物製品 Orange Pi Zeroを買ってみた、Allwinner H2+ Cortex-A7 4core
オレンジパイはラズパイよりもコスパは良いが情報が無いので利用者側に一定のスキルが必要
Orange Pi PC 2を買ってみた、Allwinner H5 Cortex-A53 4core ARM64
ラズパイを意識した別物製品、オレンジパイはラズパイよりもコスパが良い、でも情報が無い
Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入できる通販ショップ一覧まとめ
ラズパイゼロW ワイヤレスモデルを海外通販でサクッと簡単に個人輸入で入手。技適通過でも国内販売は常に品切れ
Raspberry Pi 3で安定して使える相性の無い最適な microSDカードの種類のまとめ
ラズパイ3で安定して使える microSDカードを購入する Teamと SanDiskは絶対に買わない
Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ
ラズパイの Raspbian OSのコマンドラインで使用する便利コマンド、負荷試験や CPUシリアル番号の確認方法等も
大人気の CPUボード、Raspberry Pi 3 Model Bで作ってみよう
Raspberry Piの開発環境の構築やタッチパネル付き液晶ディスプレイや各種センサーの使い方まとめ
Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板
Espressif ESP8266 ESP-12-E NodeMCU V1 ESP12 CP2102
BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)
レーザー彫刻機、カラー液晶の DIYオシロ、Arduinoや Raspberry Pi用の小型カラー液晶
[HOME]
|
[BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c)
2017 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator
http://www.neko.ne.jp/~freewing/raspberry_pi/orange_pi_pc2_ubuntu_config_swap_memory_size/