08 Raspberry Pi パフォーマンス向上設定

HDDへの移行も無事終了したのでRaspberry Piのパフォーマンスを向上させるチューニングを行います。
やることは以下4つ
1.いらないコンソールを無効にする
2.CPUへのメモリ割り当てを増やす
3.selinuxを無効化
4.不要なデーモンをストップする

なお、オバークロックは機器の寿命を縮めることになるのでやりません。

参考URL:
さくらインターネット創業日記
くずのは探偵事務所

スポンサーリンク
レクタングル(大)広告

1.いらないコンソールを無効にする

サーバー用途ではX-windowは使わないので無駄に立ち上がってるコンソールを無効にします。
この辺の詳しい内容はあまりわかってませんのでわかるようになったら追記します。

設定は/etc/inittabを編集します。
sudo vi /etc/inittab

開いたら55行目付近の2~6の頭に#をつけてコメントアウトします。

/etc/inittab
(中略)
# Note that on most Debian systems tty7 is used by the X Window System,
# so if you want to add more getty’s go ahead but skip tty7 if you run X.
#
1:2345:respawn:/sbin/getty –noclear 38400 tty1
#2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6
(中略)

編集したら保存終了

2.CPUへのメモリ割り当てを増やす

参考URL:
Embedded Linux Wiki
coLinux日記

ここはRPi独自項目です。
RPiではGPU(表示制御をするチップ)とCPU(コンピュータの心臓部となるチップ)に割り当てるメモリを変更することができます。
X-windowシステムを使わないのでGPUへのメモリ割り当てを最小限にして、CPUへのメモリ割り当てを増やします。

現時点のRasbianでは/boot/config.txtのgpu_memオプションでGPUへのメモリ割り当てをMB単位で指定します。
以前はstart.elfファイルを別ファイルへ置き換えていたようですがこちらの方法は割愛します。
start.elfの置き換えについては書籍「Paspberry Piユーザーガイド」に詳しい解説がありますので参照してください。

config.txtファイルを開きます。
sudo cp /boot/config.txt /boot/config.txt.org ←バックアップ作成
sudo vi /boot/config.txt

デフォルトでは項目がないので最後に設定を追加します。

#SET GPU MEM SIZE ←頭に#をつけるとコメント行になるので忘れないようにメモ
gpu_mem=16

GPUへのメモリ割り当てサイズとしては以下の範囲で自由に設定できます。
512MBのRAM:16~448MB
256MBのRAM:16~192MB

現時点のメモリ使用量を確認するにはfreeコマンド
free

【設定前】
total used free shared buffers cached
Mem: 448176 77988 370188 0 14304 44888
-/+ buffers/cache: 18796 429380
Swap: 102396 0 102396

ここで設定を有効にする為、一度再起動します。
sudo reboot ←rebootコマンドでも再起動できる

立ち上がったら再度freeコマンドでメモリの使用状況を確認
free

【コンソールとGPUメモリ設定後】
total used free shared buffers cached
Mem: 496944 44412 452532 0 8100 19540
-/+ buffers/cache: 16772 480172
Swap: 102396 0 102396

3.selinuxを無効化

通常のディストリビューションではパフォーマンス向上の常套手段のようですが、
現時点のRasbianでは無効だったのでパス

4.不要なデーモンをストップする

参考URL
レンタルサーバー・自宅サーバーの設定・構築のヒント
PCリンクス

いろいろと不要なサービスが動いているので止めます。

まずいろんなサイトで紹介されているchkconfigツールをインストール
一週間ほどアップグレードしていなかったので一度更新して再起動
sudo apt-get update
sudo apt-get upgrade
sudo reboot

sudo apt-get install chkconfig

さっそくどんなサービスが動いているか調べます。
chkconfig –list

alsa-utils 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on オーディオ関連
bootlogs 0:off 1:on 2:on 3:on 4:on 5:on 6:off 名前から起動ログ関連
bootmisc.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
checkfs.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
checkroot-bootclean.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
checkroot.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
console-setup 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
cron 0:off 1:off 2:on 3:on 4:on 5:on 6:off corn(自動化プログラム)
dbus 0:off 1:off 2:on 3:on 4:on 5:on 6:off dbus(プロセス間通信。Xで使用)
dphys-swapfile 0:off 1:off 2:on 3:on 4:on 5:on 6:off スワップ関連
fake-hwclock 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
hostname.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
hwclock.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ifplugd 0:off 1:off 2:on 3:on 4:on 5:on 6:off ネットワーク接続有無によりI/Fの立ち上げや切断
kbd 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
keyboard-setup 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
killprocs 0:off 1:on 2:off 3:off 4:off 5:off 6:off
kmod 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
lightdm 0:off 1:off 2:off 3:on 4:on 5:on 6:off ログイン画面を表示するディスプレイマネージャ
mathkernel 0:off 1:off 2:off 3:off 4:off 5:off 6:off
motd 0:off 1:on 2:on 3:on 4:on 5:on 6:off ログイン時にコンソールにメッセージを表示する
mountall-bootclean.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
mountall.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
mountdevsubfs.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
mountkernfs.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
mountnfs-bootclean.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
mountnfs.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
mtab.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
networking 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
nfs-common 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ntp 0:off 1:off 2:on 3:on 4:on 5:on 6:off 時間合わせ
plymouth 0:off 1:off 2:on 3:on 4:on 5:on 6:off 起動画面
plymouth-log 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
procps 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
rc.local 0:off 1:off 2:on 3:on 4:on 5:on 6:off 起動関係
rcS 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rmnologin 0:off 1:off 2:on 3:on 4:on 5:on 6:off 重要なシステムのロード時にログオンできないようにする
rpcbind 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rsync 0:off 1:off 2:on 3:on 4:on 5:on 6:off データ転送量を最小化する
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off システムログ関連
sendsigs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ssh 0:off 1:off 2:on 3:on 4:on 5:on 6:off SSH 遠隔ログイン
sudo 0:off 1:off 2:on 3:on 4:on 5:on 6:off sudo ルート権限のコマンドを実行
triggerhappy 0:off 1:off 2:on 3:on 4:on 5:on 6:off キーボードショートカット
udev 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
udev-mtab 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
umountfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
umountnfs.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off
umountroot 0:off 1:off 2:off 3:off 4:off 5:off 6:off
urandom 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
x11-common 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on

縦に表示されえているのが各サービス。横のon/offは0~6、Sのどのランレベルでそのサービスが起動しているかを表しています。
サービスがなにをしているかは概要を追記してあります。(とりあえずonになっているものプラスα)

ランレベルとはOSの動作状態はDebianではそれぞれ以下のようになっています。
(ランレベル1~5の定義はディストリビューションで異なる)
0:停止
1:シングルユーザーモード
2:マルチユーザーモードで、Xディスプレイマネージャも起動
3:2と同じ
4:2と同じ
5:2と同じ
6:再起動
S:シングルユーザーモード
(1とSの違いは分かったら追記)

Rasbianではデフォルトのランレベルは2。
ランレベルを3に変更するとグラフィカルログインできるようになるとの記載もあるが実施してないので詳細は不明。

それでは使用しない以下サービスを止めてしまいます。
dbus
plymouth
lightdm
triggerhappy

sudo chkconfig dbus off
sudo chkconfig plymouth off
sudo chkconfig lightdm off
sudo chkconfig triggerhappy off

insserv: warning: script ‘mathkernel’ missing LSB tags and overrides
実行すると上記ワーニングが出ますがとりあえず無視。
参考URL:
Raspberry Piフォーラム
Raspberry Pi beta
Praparat Blog

ntpは後で別で時間合わせを設定するときに止めます。

一度システムを再起動して設定が再起動時にも反映されているか確認します。
sudo reboot
再度アクセスして
chkconfig –list

結果
alsa-utils 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
bootlogs 0:off 1:on 2:on 3:on 4:on 5:on 6:off
bootmisc.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
checkfs.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
checkroot-bootclean.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
checkroot.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
console-setup 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
cron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
dbus 0:off 1:off 2:off 3:off 4:off 5:off 6:off
dphys-swapfile 0:off 1:off 2:on 3:on 4:on 5:on 6:off
fake-hwclock 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
hostname.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
hwclock.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ifplugd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
kbd 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
keyboard-setup 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
killprocs 0:off 1:on 2:off 3:off 4:off 5:off 6:off
kmod 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
lightdm 0:off 1:off 2:off 3:off 4:off 5:off 6:off
mathkernel 0:off 1:off 2:off 3:off 4:off 5:off 6:off
motd 0:off 1:on 2:on 3:on 4:on 5:on 6:off
mountall-bootclean.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
mountall.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
mountdevsubfs.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
mountkernfs.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
mountnfs-bootclean.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
mountnfs.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
mtab.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
networking 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
nfs-common 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ntp 0:off 1:off 2:on 3:on 4:on 5:on 6:off
plymouth 0:off 1:off 2:off 3:off 4:off 5:off 6:off
plymouth-log 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
procps 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
rc.local 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rcS 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rmnologin 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rpcbind 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rsync 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sendsigs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ssh 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sudo 0:off 1:off 2:on 3:on 4:on 5:on 6:off
triggerhappy 0:off 1:off 2:off 3:off 4:off 5:off 6:off
udev 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
udev-mtab 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
umountfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
umountnfs.sh 0:off 1:off 2:off 3:off 4:off 5:off 6:off
umountroot 0:off 1:off 2:off 3:off 4:off 5:off 6:off
urandom 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on
x11-common 0:off 1:off 2:off 3:off 4:off 5:off 6:off S:on

ちゃんと止まっています。
メモリの状態も確認
free

total used free shared buffers cached
Mem: 496944 45000 451944 0 8032 20232
-/+ buffers/cache: 16736 480208
Swap: 102396 0 102396

う、微妙に増えてる。なぜ?
CPUの使用率は減ってるはずなのでとりあえずペンディングします。
時間があったら調べてみますが原因を切り分けられない気がします。

最後が少し気持ち悪いですが今回はここまで。
次回は時間合わせの設定を実施します。

2014年4月12日作成
2014年5月5日草稿公開

スポンサーリンク
レクタングル(大)広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レクタングル(大)広告