HOME → 1 Raspberry Pi → 01 セットアップ → 

Raspberry Pi の 最適化

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

 

スポンサー リンク

 

 
 
 
 
systemctl コマンド
 
「systemctl」は【systemd】を操作するコマンドで、サービスの起動や停止、状態確認などを行うことが出来る。
サービスの停止
# systemctl stop {ユニット名}
サービス自動起動を無効にする
# systemctl disable {ユニット名}
 
【systemd】とは。
Linuxの「起動処理」や「システム管理」を行う仕組み。
定義ファイルの場所
 /etc/systemd/system
 
 
 
1. Bluetoothを無効にする
 
Webサーバーに Bluetooth は不要なので、停止する。
 
bluetooth関連サービスの停止。
sudo systemctl stop hciuart.service
sudo systemctl stop bluealsa.service
sudo systemctl stop bluetooth.service
 
bluetooth関連サービスの自動起動を無効にする。
sudo systemctl disable hciuart.service
sudo systemctl disable bluealsa.service
sudo systemctl disable bluetooth.service
 
bluetooth関連サービスの停止と自動起動の無効化結果。
bluetooth関連サービスの停止と自動起動の無効化結果
 
【bluealsa】はインストールされていない。
 
 
「/boot/config.txt」を編集することでも、停止できる。
sudo nano /boot/config.txt で、次の行を追記する
dtoverlay=disable-bt 
 
「/boot/config.txt」の編集結果。
「/boot/config.txt」の編集結果
 
「dtoverlay=disable-wifi」は、#WiFiを無効にする記述。
 
 
 
2. WiFiを無効にする
 
Webサーバーは、有線LANで稼働させているので「WiFi」は不要。
 
上記と同じく「/boot/config.txt」を編集することでも、停止できる。
 
WiFiの有効/無効を切り替えるコマンド。
・WiFi無効化
 sudo iwconfig wlan0 txpower off
・WiFi有効化
 sudo iwconfig wlan0 txpower auto
 
 
 
3. 仮想メモリの SWAP領域を 2GBに広げる
 
Raspberry Piのメモリ容量が気になる場合,仮想メモリであるSwapファイルの設定容量を変更する。
 
メモリの使用量を確認するコマンド。
free -h
 
確認すると、 SWAP領域が「99mi」になっている。
 
仮想メモリの SWAP領域を 2GBに広げる。
sudo sed -i -e "s/^CONF_SWAPSIZE=.*/CONF_SWAPSIZE=2048/g" /etc/dphys-swapfile
cat /etc/dphys-swapfile | grep CONF_SWAPSIZE
sudo service dphys-swapfile restart
 
SWAP領域を 2GBに広げた結果。
SWAP領域を 2GBに広げた結果
 
 
仮想メモリは、「dphys-swapfile」というサービスで管理されており、この設定ファイルを編集することでも、サイズを変更することが出来る。
sudo service dphys-swapfile stop
sudo nano /etc/dphys-swapfile
 → このファイル内の CONF_SWAPSIZE の値を変更する
sudo service dphys-swapfile start
 
「dphys-swapfile」の編集結果。
仮想メモリは、「dphys-swapfile」というサービスで管理されており、この設定ファイルを編集することでも、サイズを変更することが出来る
 
仮想メモリの量を確認するコマンド。
swapon -s
 
確認すると「 2GB」になっている。
仮想メモリの量を確認するコマンド
 
 
 
4. 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
 
 
 
5. ログの最少限化
 
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:*
 
 
 
6. 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/*
 
 
 
7. cron により一日に一回システムをリブート
 
RAMをクリアするために、システムを自動でリブートする設定を行う。
sudo crontab -e
2. /bin/nanoでcrontabファイルの編集ができる。
最後の行に下記を追加する。ここでは午前3時5分に再起動がかかるようにした。
5 3 * * * /sbin/reboot
 
 
 
8. Chkconfig のインストールと不要デーモンの無効化
 
sudo apt-get install chkconfig
- - - - -
$ sudo chkconfig triggerhappy off
$ sudo chkconfig alsa-utils off
$ sudo chkconfig lightdm off
$ sudo chkconfig plymouth off
 
 
 
9. 不要パッケージの削除
 
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

 
 
 
10. 本番に向けてのその他設定
 
cron で MyDNSにIPアドレスを自動通知:
 
マイクロSDカードのバックアップ運用:
 
次のステップ:
 
 
 
以上。
(2019.05.11)
 

 

スポンサー リンク

 

             

 

 

 

コメントを残す

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

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