Raspberry Pi の 最適化

Raspberry Pi セットアップ
Webサーバーの為の 最適化
 
Raspberry Pi を、Webサーバーとして運用するために、
①.不要な機能をそぎ落とし、軽量化。
②.24時間365日稼働するので、マイクロSDカードの負荷軽減。
を、徹底的に施した。
 
軽量化やSDカードの延命対策
Raspberry Pi の 最適化
 
以下に、Raspberry Pi の最適化事項を記載。
 

 

スポンサー リンク

 

 
 
 
 
スポンサー リンク
 
 
 
 
スポンサー リンク
 
 
 
1. Chkconfig のインストールと不要デーモンの無効化
 
sudo apt-get install chkconfig
– – – – –
$ 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
#
 
再起動。
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/*
 
 
 
5. cron により一日に一回システムをリブート
 
RAMをクリアするために、システムを自動でリブートする設定を行う。
sudo crontab -e
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)
 

 

スポンサー リンク

 

             

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください