HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
English Translate 中文翻訳
LINK
BACK
 

2017/11/01

Orange Pi Ubuntu Xenialのスワップメモリのサイズ変更、設定方法まとめ、ZRAM Swapを無効にする方法 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コマンド
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
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



Tags: [Raspberry Pi], [Orange Pi], [電子工作], [海外通販], [通信販売]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

ラズパイを意識した別物製品 Orange Pi Zeroを買ってみた、Allwinner H2+ Cortex-A7 4core
ラズパイを意識した別物製品 Orange Pi Zeroを買ってみた、Allwinner H2+ Cortex-A7 4core

  オレンジパイはラズパイよりもコスパは良いが情報が無いので利用者側に一定のスキルが必要

Orange Pi PC 2を買ってみた、Allwinner H5 Cortex-A53 4core ARM64
Orange Pi PC 2を買ってみた、Allwinner H5 Cortex-A53 4core ARM64

  ラズパイを意識した別物製品、オレンジパイはラズパイよりもコスパが良い、でも情報が無い

Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入出来る通販ショップ一覧まとめ
Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入出来る通販ショップ一覧まとめ

  ラズパイゼロW ワイヤレスモデルを海外通販でサクッと簡単に個人輸入で入手。技適通過でも国内販売は常に品切れ

Raspberry Pi 3で安定して使える相性の無い最適な microSDカードの種類のまとめ
Raspberry Pi 3で安定して使える相性の無い最適な microSDカードの種類のまとめ

  ラズパイ3で安定して使える microSDカードを購入する Teamと SanDiskは絶対に買わない

Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ
Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ

  ラズパイの Raspbian OSのコマンドラインで使用する便利コマンド、負荷試験や CPUシリアル番号の確認方法等も

大人気の CPUボード、Raspberry Pi 3 Model Bで作ってみよう
大人気の CPUボード、Raspberry Pi 3 Model Bで作ってみよう

  Raspberry Piの開発環境の構築やタッチパネル付き液晶ディスプレイや各種センサーの使い方まとめ

Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板
Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板

  Espressif ESP8266 ESP-12-E NodeMCU V1 ESP12 CP2102

BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)
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/