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ほどある。
1 2 3 4 |
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で確認。スワップがゼロになった。
1 2 3 4 |
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 オフの確認。
1 2 |
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フォルダのマウント状況確認。
1 2 3 4 5 6 7 8 9 10 |
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 がマウントされている。
1 2 3 4 5 6 7 8 9 10 11 12 |
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
青のところだけ残し、他はコメントにする 。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
############### #### 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)