本日の内容
- Raspberry Piのセットアップ~定常運用(馴染むまで)にやったことをご紹介します。
- 既出の情報がほとんどだと思いますが、、
- これから導入する人向けに 馴染むまでに何をやったか を一連の流れでまとめてみます。
- 具体的には
- SDカードに優しい運用とは
- CPUに優しい運用とは
- 人に優しい運用とは
- すでに運用中の方には、退屈な内容 になると思います。
RaspberryPiとは
まずは、買い物とOSインストール
- Amazonで買えます。
- 売れ筋「Raspberry Pi 3 Model B」なら、USB電源は、5V / 3A電源を買いましょう。
- OSはNOOBS(インストールツール)で簡単に入ります。
- SDカードは、意外と相性問題があるので下記で確認して、買いましょう。
(インストールが終わったら、、)ハードに優しい運用を考えましょう
- 具体的には、
- SDカードに優しい運用 (IO対策)
- CPUに優しい運用 (発熱対策)
- 人間に優しい運用 (状態の可視化)
SDカードに優しい運用
- RaspberryPiはHDDの代わりに使うSDカードは、
- IO上限回数(千回~10万回くらい)が決まっているので、
書き込みがカード全体に分散するとは言え、、- 16GB SDカード → 16GB × 仮に1000回だと、 = 16TB でアウト
よって、SDカードに優しい運用のためには、、、
- ログをなるべく出さない。 (★)
- Swapを無効にする
- /var/logとか /tmp を tmpfs(メモリ上)でマウント(★)
- そもそも、SD大きめのSDカードを買う(分散するので)
- (その上で)いざというときのため、SD Card Copierでバックアップ
- ★はちょっと説明します。
ログをなるべく出さない
- インターネットに露出しないサーバであれば、、、
- 程度はあるものの、OSのログ/ミドルウェアのアクセスログ等、利用しないログは抑止。
- ログが出なければ、IOは減るので、SDカードへの負荷も減る。
- ただ、雑に消しすぎると、、
ミドルが起動しなくなる。nginxは、/dev/nullのログ設定では起動しなかった。。。
/var/logとか /tmp を tmpfs(メモリ上)でマウント
- ログを抑止せずとも、出力先をSDカードではなく、tmpfs(メモリファイルシステム)とすればSDに負荷はかからない。
- ただ、、
ログdirは再起動で消える。必要なdir等はOS起動時にスクリプトで作成。
pip等がコンパイルで/tmpし、tmpfsでは領域不足も。必要なものを全部入れてから設定
SDカードに優しい運用のためのワンライナー
- 直近12時間に更新のあったファイル一覧
$ find / -mmin -720 -print 2> /dev/null
| egrep –v "/(proc|dev|run|sys|var/log|var/tmp|var/lib/monitorix/www/imgs/)“
| sort
- ファイルシステムの総書き込みバイト数(ext4なので記録されている)
$ sudo dumpe2fs /dev/mmcblk0p7|grep Life
dumpe2fs 1.42.12 (29-Aug-2014)
Lifetime writes: 14 GB
CPU温度に優しい運用
こんな感じ

理由としては、USBファンの方が
- 接続が簡単
- 細いケーブルがごちゃごちゃしない
- ファンの取り付け位置を気にする必要がない
- 羽が大きいので、冷却効率が高い
- 4に関連し、回転数が低いので高周波が出にくい
- でいて、消費電力もそんなに大きくない。
CPU温度に優しい運用(のためのワンライナー)
- CPU温度取得
$ vcgencmd measure_temp
temp=49.4'C
- USBファンの電源ON (=USBポートに電源供給) このサイト を参考にコマンドをインストールしました。
$ hub-ctrl -b 1 -d 2 -P 2 -p 1
- USBファンの電源OFF (=USBポートに電源カット)
$ hub-ctrl -b 1 -d 2 -P 2 -p 0
人に優しい運用(のためのツール)
楽に(CPU、IO、温度を)監視したい
- Grafana使って、かっけぇダッシュボードを作ろうと思ったが。。
- 設定が面倒そう。。
で、Monitorixが超便利!!(3行実行 + vi1回)
$ sudo apt-get install rrdtool perl libwww-perl libmailtools-perl libmime-lite-perl librrds-perl libdbi-perl
libxml-simple-perl libhttp-server-simple-perl libconfig-general-perl libio-socket-ssl-perl
$ sudo dpkg -i monitorix*.deb
$ sudo apt-get -f install
$ vi /etc/monitorix/monitorix.conf
raspberrypi = y ← Yにするだけ!!
こんな感じに監視できます
まとめ
- Amazonで簡単に買えます。ACアダプタ、SDカードは気を付ける。
- SDカードに優しい運用(IOを抑える)
- CPUに優しい運用(USB扇風機のON・OFF運用がおすすめ)
- 人に優しい運用(Monitorixが簡単)
最後に
- 非常に薄い内容になりましたが、どなたかの役に立てば幸いです。