Raspberry Pi セットアップ
Webサーバーの為の 最適化
Webサーバーの為の 最適化
Raspberry Pi を、Webサーバーとして運用するために、
①.不要な機能をそぎ落とし、軽量化。
②.24時間365日稼働するので、マイクロSDカードの負荷軽減。
を、徹底的に施した。
①.不要な機能をそぎ落とし、軽量化。
②.24時間365日稼働するので、マイクロSDカードの負荷軽減。
を、徹底的に施した。
軽量化やSDカードの延命対策
以下に、Raspberry Pi の最適化事項を記載。
スポンサー リンク
Raspberry Pi WordPress Webサーバー 構築手順
1-3. Raspberry Pi の 最適化
スポンサー リンク
Raspberry Pi の 最適化
1. Chkconfig のインストールと不要デーモンの無効化
2. 不要パッケージの削除
3. swap の無効化
4. tmpフォルダ の RAMディスク化
5. cron により一日に一回システムをリブート
6. ログの最少限化
7. 本番に向けてのその他設定
2. 不要パッケージの削除
3. swap の無効化
4. tmpフォルダ の RAMディスク化
5. cron により一日に一回システムをリブート
6. ログの最少限化
7. 本番に向けてのその他設定
スポンサー リンク
1. Chkconfig のインストールと不要デーモンの無効化
sudo apt-get install chkconfig
- - - - -
$ 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
2. 不要パッケージの削除
Raspbian Buster with desktopの場合。
$ sudo apt-get autoremove -y python-pygame
$ 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
3. swap の無効化
スワップは(マイクロ)SDカードへ負荷をかけるので、これを無効にする。
freeで確認すると、スワップが100MBほどある。
pi@yaopi70:~ $ free
total used free shared buff/cache available
Mem: 949576 31020 555188 6312 363368 851112
Swap: 102396 0 102396
swapを無効化。( --all は - - a l l )
sudo swapoff --all
再度、freeで確認。スワップがゼロになった。
pi@yaopi70:~ $ free
total used free shared buff/cache available
Mem: 949576 31104 555088 6312 363384 851028
Swap: 0 0 0
これだけだと、リブートしたときに復活するので swap が起動しないようにパッケージを削除。
sudo apt-get remove dphys-swapfile
ブート設定でも、自動起動しないように dphys-swapfile をオフにする
sudo chkconfig dphys-swapfile off
dphys-swapfile オフの確認。
pi@yaopi70:~ $ 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
4. tmpフォルダ の RAMディスク化
tmpフォルダのマウント状況確認。
pi@yaopi70:~ $ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 29G 3.4G 25G 13% /
devtmpfs 460M 0 460M 0% /dev
tmpfs 464M 0 464M 0% /dev/shm
tmpfs 464M 6.2M 458M 2% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 464M 0 464M 0% /sys/fs/cgroup
/dev/mmcblk0p1 42M 21M 21M 52% /boot
tmpfs 93M 0 93M 0% /run/user/1
sudo nano /etc/fstab で次の2行を追記。
# tmp files put on RAM disk
tmpfs /tmp tmpfs defaults,size=32m 0 0
tmpfs /var/tmp tmpfs defaults,size=16m 0 0
#
tmpfs /tmp tmpfs defaults,size=32m 0 0
tmpfs /var/tmp tmpfs defaults,size=16m 0 0
#
再起動。
sudo reboot
df -h で tmp がマウントされているか再確認。上記で追加したtmp がマウントされている。
pi@yaopi70:~ $ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 29G 3.4G 25G 13% /
devtmpfs 460M 0 460M 0% /dev
tmpfs 464M 0 464M 0% /dev/shm
tmpfs 464M 6.2M 458M 2% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 464M 0 464M 0% /sys/fs/cgroup
tmpfs 16M 0 16M 0% /var/tmp
tmpfs 32M 0 32M 0% /tmp
/dev/mmcblk0p1 42M 21M 21M 52% /boot
tmpfs 93M 0 93M 0% /run/user/1000
これでRAMディスク化ができたので、SDカード上の tmpファイルを削除する。
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
sudo rm -rf /var/tmp/*
5. cron により一日に一回システムをリブート
RAMをクリアするために、システムを自動でリブートする設定を行う。
sudo crontab -e
2. /bin/nanoでcrontabファイルの編集ができる。
最後の行に下記を追加する。ここでは午前3時5分に再起動がかかるようにした。
5 3 * * * /sbin/reboot
2. /bin/nanoでcrontabファイルの編集ができる。
最後の行に下記を追加する。ここでは午前3時5分に再起動がかかるようにした。
5 3 * * * /sbin/reboot
6. ログの最少限化
rsyslog.confを編集し、必要最少限のログ(auth , syslogとmessages)のみを記録させるようにして、ディスクへの書き込みを減らす。
sudo nano /etc/rsyslog.conf
最低限必要なところだけを残し、他はコメントアウトする 。
###############
#### 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
#
# 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:*
7. 本番に向けてのその他設定
cron で MyDNSにIPアドレスを自動通知:
マイクロSDカードのバックアップ運用:
次のステップ:
以上。
(2019.05.11)
(2019.05.11)
スポンサー リンク