2-12. Raspberry Pi の最適化・軽量化
軽量化やSDカードの延命対策 一覧
1. ext4ファイルシステムのジャーナルを廃止
2. 不要デーモンの無効化
3. 不要パッケージの削除
4. chkconfig : システムサービスの切替ツールのインストール
5. swapの無効化
6. tmpフォルダのRAMディスク化
7. cron による一日・一回 システムのリブート
8. 最小限のログのみを記録するように変更
9. /var/log のRAMディスク化
1. ext4ファイルシステムのジャーナルを廃止
2. 不要デーモンの無効化
3. 不要パッケージの削除
4. chkconfig : システムサービスの切替ツールのインストール
5. swapの無効化
6. tmpフォルダのRAMディスク化
7. cron による一日・一回 システムのリブート
8. 最小限のログのみを記録するように変更
9. /var/log のRAMディスク化
1. ext4ファイルシステムのジャーナルを廃止
SDカードの寿命を伸ばしたい関連
$ su
# umount /dev/mmcblk0p2
# tune2fs -O ^has_journal /dev/mmcblk0p2
tune2fs 1.42.5 (29-Jul-2012)
#
# umount /dev/mmcblk0p2
# tune2fs -O ^has_journal /dev/mmcblk0p2
tune2fs 1.42.5 (29-Jul-2012)
#
うまくいったかどうか確認するには
# tune2fs -l /dev/mmcblk0p2 | grep features
Filesystem features: ext_attr resize_inode
dir_index filetype extent flex_bg sparse_super
large_file uninit_bg dir_nlink extra_isize
Filesystem features: ext_attr resize_inode
dir_index filetype extent flex_bg sparse_super
large_file uninit_bg dir_nlink extra_isize
has_journalが含まれていなければOK。
2. 不要デーモンを無効化する
sudo chkconfig motd off
sudo chkconfig triggerhappy off
sudo chkconfig alsa-utils off
sudo chkconfig lightdm off
sudo chkconfig plymouth off
sudo chkconfig triggerhappy off
sudo chkconfig alsa-utils off
sudo chkconfig lightdm off
sudo chkconfig plymouth off
3. 不要パッケージを削除
sudo apt-get autoremove -y wolfram-engine
sudo apt-get autoremove -y scratch
sudo apt-get autoremove -y python-pygame
sudo apt-get autoremove -y pistore
sudo apt-get autoremove -y sonic-pi
sudo apt-get autoremove -y python-minecraftpi
sudo apt-get autoremove -y idle idle3
sudo apt-get autoremove -y netsurf-common dillo
sudo apt-get autoremove -y debian-reference-common
sudo apt-get autoremove -y libraspberrypi-doc
sudo rm -rf /home/pi/python_games/
sudo rmdir /usr/local/games/
sudo rmdir /usr/games/
sudo apt-get autoremove -y man manpages
sudo apt-get autoremove -y git git-man
sudo apt-get autoremove -y galculator
sudo apt-get autoremove -y scratch
sudo apt-get autoremove -y python-pygame
sudo apt-get autoremove -y pistore
sudo apt-get autoremove -y sonic-pi
sudo apt-get autoremove -y python-minecraftpi
sudo apt-get autoremove -y idle idle3
sudo apt-get autoremove -y netsurf-common dillo
sudo apt-get autoremove -y debian-reference-common
sudo apt-get autoremove -y libraspberrypi-doc
sudo rm -rf /home/pi/python_games/
sudo rmdir /usr/local/games/
sudo rmdir /usr/games/
sudo apt-get autoremove -y man manpages
sudo apt-get autoremove -y git git-man
sudo apt-get autoremove -y galculator
4. chkconfig : システムサービスの切替ツールのインストール
sudo apt-get update
sudo apt-get install chkconfig
sudo apt-get install chkconfig
5. swapを無効化
freeで確認
free
total used free shared buffers cached
Mem: 947732 303684 644048 29188 19156 150720
-/+ buffers/cache: 133808 813924
Swap: 102396 0 102396
swapを無効化
sudo swapoff --all free total used free shared buffers cached Mem: 949408 469904 479504 0 30172 263712 -/+ buffers/cache: 176020 773388 Swap: 0 0 0 sudo apt-get remove dphys-swapfile
chkconfigでdphys-swapfileをオフにする
sudo chkconfig dphys-swapfile off
sudo chkconfig dphys-swapfile -list
dphys-swapfile 0:off 1:off 2:off 3:off 4:off 5:off 6:off
swap ファイルの削除
sudo rm /var/swap
6. tmpフォルダをRAMディスクに移す
sudo nano /etc/fstab で次の2行を追記。
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, so no using swapon|off from here on,
use dphys-swapfile swap[on|off] for that
#
# tmp files put on RAM disk
tmpfs /tmp tmpfs defaults,size=32m 0 0
tmpfs /var/tmp tmpfs defaults,size=16m 0 0
#
sudo reboot
df -h でマウントされているか確認。
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
で、ファイルの削除。
7. cron により一日に一回システムをリブート
sudo crontab -e
nanoでcrontabファイルの編集ができる。
最後の行に下記を追加する。ここでは午前4時に再起動がかかるようにした。
0 4 * * * /sbin/reboot
8. 最小限のログのみを記録するように変更
rsyslog.confを編集し、必要最小限のログ(auth , syslogとmessages)のみを
記録させるようにして、ディスクへの書き込みを減らす。
sudo nano /etc/rsyslog.conf
グリーンのところだけ残し、他はコメントにする
# /etc/rsyslog.conf Configuration file for rsyslog. # ~略~ ############### #### RULES #### ############### # # First some standard log files. Log by facility. # auth,authpriv.* /var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog #cron.* /var/log/cron.log #daemon.* -/var/log/daemon.log #kern.* -/var/log/kern.log #lpr.* -/var/log/lpr.log #mail.* -/var/log/mail.log #user.* -/var/log/user.log # # Logging for the mail system. Split it up so that # it is easy to write scripts to parse these files. # #mail.info -/var/log/mail.info #mail.warn -/var/log/mail.warn #mail.err /var/log/mail.err # # Logging for INN news system. # #news.crit /var/log/news/news.crit #news.err /var/log/news/news.err #news.notice -/var/log/news/news.notice # # Some "catch-all" log files. # #*.=debug;\ # auth,authpriv.none;\ # news.none;mail.none -/var/log/debug *.=info;*.=notice;*.=warn;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none -/var/log/messages # # Emergencies are sent to everybody logged in. # *.emerg :omusrmsg:* # # I like to have messages displayed on the console, but only on a virtual # console I usually leave idle. # #daemon,mail.*;\ # news.=crit;news.=err;news.=notice;\ # *.=debug;*.=info;\ # *.=notice;*.=warn /dev/tty8
9. /var/log のRAMディスク化
ログを直接吐き出すアプリでは、/var/log 配下にサブディレクトリが存在しないと
エラーとなるので、起動時に自動的にディレクトリを作成する必要がある。
エラーとなるので、起動時に自動的にディレクトリを作成する必要がある。
従来は、rc.localファイルでディレクトリを作成する方法で、うまく行っていた。
しかし、Raspbian Jessie では /etc/rc.local が自動起動しなくなっている。
・・・ /etc/rc.local を起動するように変更するも、うまく行かず。
しかし、Raspbian Jessie では /etc/rc.local が自動起動しなくなっている。
・・・ /etc/rc.local を起動するように変更するも、うまく行かず。
Raspbian Jessie で /etc/rc.local を起動させる方法。
/etc/init.d/init-ramdisk を新たに作成して試みるも、うまく行かず。
systemd で、再度チャレンジすべきか?
systemd で、再度チャレンジすべきか?
参考:
関連ページ
- 0.Webサーバーの
バージョンアップ - 1.Jessie インストール
- 2.Raspberry Piの最適化
- 3.セキュリティ設定
- 4.SSH接続の公開鍵化
- 5.Webサーバーの構築
- 6.WordPressの設定
- 7.CRONで
MyDNS自動通知 - 8.外部microSDへ
定期・自動BackUp - ------------------------------
- ▶ nginx での
Basic認証設定方法 - ▶ nginx を HTTPS化
SSL通信にする - ------------------------------
- ● 2-1. nginxでの
Webサーバーへ - ● 2-2. ライブカメラへ
- ● 2-3. 監視カメラへ
- ● 電子工作Topページへ
- ------------------------------