raspi:apache bench

apache benchでパーフォーマンス測定してみる。

$ ab -n 10000 -c 300 https://ras.viasv.com/wordpress/
This is ApacheBench, Version 2.3 <$Revision: 1826891 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking ras.viasv.com (be patient)
socket: Too many open files (24)

ファイルを開きすぎ?

$ ab -n 10000 -c 30 https://ras.viasv.com/wordpress/

差がありすぎだけれど、raspi2ではこんなもんでしょう。

FPM/FastCGIを有効にしてabで再計測

https://kusanagi.tokyo/about/ ras.viasv.com
測定方法 ab -n 10000 -c 300 https://kusanagi.tokyo/ ab -n 10000 -c 30 https://kusanagi.tokyo/
Server Software nginx Apache2 Apache2-FPM/FastCGI
Server Hostname kusanagi.tokyo ras.viasv.com
Server Port 80 443
Document Path / /wordpress/
Ducument Length 6952 bytes 23213 bytes 37504 bytes
Concurrency Level 300 30 30
Time taken for tests 9.643 seconds 1300.526 seconds 1380.342 seconds
Complete Requests 10000 10000 10000
Failed requests 0 0
Write errors 0
Total transferred 71680000 bytes 234710000 bytes 378350000 bytes
HTML transferred 69520000 bytes 232130000 bytes 375040000 bytes
Requests per second 1036.97 [#/sec](mean) 7.60 [#/sec] (mean) 7.24[#/sec](mean)
Time per request 289.305[ms](mean) 3901.578 [ms] (mean) 4141.025[ms](mean)
Time per request 0.964[ms](mean.across all concurent requests(*2) 130.053 [ms] (mean, across all concurrent requests) 138.034[ms](mean, across all concurrent requests)
Transfer rate 7258.78[Kbytes/sec] recived 176.24 [Kbytes/sec] received 267.67[Kbytes/sec] received

 

raspi:apache php-fpm(FastCGI Process Manager) と mysqlの設定変更


fpm(FastCGI Process Manager)を入れる前に、mysqlのメモリ設定を変更する。

vi /etc/mysql/my.cnf
#query_cache_limit       = 1M
query_cache_limit       = 12M

#query_cache_size        = 12M
query_cache_size        = 64M

service mysql restart
これ設定すると、エラーになるんだよな。書くファイルが間違ってるのかも。

apache apcに続いて、fpmをインストールする

a2enmod expires

service apache2 restart

vi /etc/apache2/apache2.conf
最終行に追加
# gzip setting
AddOutputFilterByType DEFLATE text/html text/plain text/css
AddOutputFilterByType DEFLATE text/javascript application/x-javascript application/javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# expire setting
ExpiresActive On
ExpiresDefault "access plus 1 year"

service apache2 restart

sudo apt-get install php7.0-fpm php7.0-mbstring

sudo vi +760 /etc/php/7.0/fpm/php.ini 
# 760行目の「;cgi.fix_pathinfo=1」をデフォルトから変更
cgi.fix_pathinfo=0

sudo /etc/init.d/php7.0-fpm restart

mbstringも有効に

a2enmod proxy_fcgi setenvif
a2enconf php7.0-fpm
/etc/php/7.0/fpm/pool.d/www.conf に記述があるか確認。無ければ追記する。
listen = /run/php/php7.0-fpm.sock

最後に、delfault-ssl.conf の VirtualHost内に追記する。

<FilesMatch "\.php$">
#SetHandler "proxy:fcgi://127.0.0.1:9000/"
SetHandler "proxy:unix:/run/php/php7.0-fpm.sock|fcgi://localhost"
</FilesMatch>

service apache2 restart

これで完了

phpinfo()をみて、Server APIがFPM/FastCGI になっているのを確認

計測(https://tools.pingdom.com/)

ras.viasv.com www.club535.com
Server API apache2.0Handler FPM/FastCGI CGI/FastCGI
Performance grade  C77 C78  C77
Page size 395.0KB 395.5B 613.7KB
Load time 1.35s 1.20s 2.58s
Requests 42 41 63

raspi:apache APC(Alternative PHP Cache)を導入

手始めに、raspi-configでGPUメモリ使用量を減らす。X-Windowは使ってないので8MBでも多すぎるとおもうんだが。
ついでに、ほかのconfigも触っておこう

vi /boot/config
#arm_freq=800 3default
arm_freq=960
#i2cを有効にする
dtparam=i2c_arm=on
#gpu mem
gpu_mem=8

変更が終われば、再起動する。

reboot

再起動が終われば、
Alternative PHP Cacheをインストール

apt-get install php5-gd php-apc

これでOKっぽい。

raspi:denyhostsを導入

[code]
apt-get update
apt-get install denyhosts

vi /etc/denyhosts.conf
SYNC_SERVER = http://xmlrpc.denyhosts.net:9911

sudo service denyhosts restart

sudo tail -f /var/log/denyhosts
2018-09-29 11:11:42,383 – denyhosts : INFO Processing log file (/var/log/auth.log) from offset (102619)
2018-09-29 11:11:42,391 – denyhosts : INFO launching DenyHosts daemon (version 2.10)…
2018-09-29 11:11:42,398 – denyhosts : INFO DenyHost daemon is now running, pid: 13773
2018-09-29 11:11:42,401 – denyhosts : INFO send daemon process a TERM signal to terminate cleanly
2018-09-29 11:11:42,403 – denyhosts : INFO eg. kill -TERM 13773
2018-09-29 11:11:42,404 – denyhosts : INFO monitoring log: /var/log/auth.log
2018-09-29 11:11:42,406 – denyhosts : INFO sync_time: 3600
2018-09-29 11:11:42,407 – denyhosts : INFO purging of /etc/hosts.deny is disabled
2018-09-29 11:11:42,408 – denyhosts : INFO sync_time: : 3600
2018-09-29 11:11:42,409 – denyhosts : INFO sync_sleep_ratio: 120
[code]

参考)

【DenyHosts】自動で攻撃者の IP アドレスを拒否リストに登録する設定を試しましたの♪★シンクロナイゼーション・モード★

RasPi2 Zabbix

RasbianOSをインストールしたRasPi2にZabbixをインストールしてみる。
インストールはapt-getで入れる。

# apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-agent
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common dbconfig-common fping
  heirloom-mailx javascript-common libaio1 libapache2-mod-php5 libaprutil1-dbd-sqlite3
  libaprutil1-ldap libdbd-mysql-perl libdbi-perl libhtml-template-perl libjs-prototype
  libjs-scriptaculous libmysqlclient16 libmysqlclient18 libonig2 libopenipmi0 libqdbm14 lsof
  mysql-client-5.5 mysql-common mysql-server mysql-server-5.5 mysql-server-core-5.5 php5 php5-cli
  php5-common php5-gd php5-mysql snmpd ssl-cert wwwconfig-common
提案パッケージ:
  apache2-doc apache2-suexec apache2-suexec-custom virtual-mysql-client mysql-client
  postgresql-client exim4 mail-transport-agent php-pear libipc-sharedcache-perl
  libterm-readkey-perl tinyca openssl-blacklist
推奨パッケージ:
  mailx
以下のパッケージが新たにインストールされます:
  apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common dbconfig-common fping
  heirloom-mailx javascript-common libaio1 libapache2-mod-php5 libaprutil1-dbd-sqlite3
  libaprutil1-ldap libdbd-mysql-perl libdbi-perl libhtml-template-perl libjs-prototype
  libjs-scriptaculous libmysqlclient16 libmysqlclient18 libonig2 libopenipmi0 libqdbm14 lsof
  mysql-client-5.5 mysql-common mysql-server mysql-server-5.5 mysql-server-core-5.5 php5 php5-cli
  php5-common php5-gd php5-mysql snmpd ssl-cert wwwconfig-common zabbix-agent zabbix-frontend-php
  zabbix-server-mysql
アップグレード: 0 個、新規インストール: 40 個、削除: 0 個、保留: 0 個。
23.0 MB のアーカイブを取得する必要があります。
この操作後に追加で 132 MB のディスク容量が消費されます

かなりたくさんのパッケージが入ります。
初期設定を聞かれます。
最初は、mysqlのroot password
raspi-mysql
続いてパスワードの確認が行われます。
raspi-mysql2
続いて、dbconfig-commonで管理できるよう、「はい」を選択しました。
先ほど設定したmysql passwordを入力します。
raspi-zabbix1
つづいて、mysql zabbix DBのパスワードを設定します。空欄で勧めるとランダムでパスワードが設定されるようです。
ここでは、自分でパスワードを設定します。
raspi-zabbix2
zabbix-frontend-phpのパスワードを聞かれます。
raspi-zabbix3
確認でもう一度 パスワードを入力します。
raspi-zabbix4
インストールが完了すると最低限WEB LOGINが可能になるようです。
http://raspi2/zabbix/
初期ID:admin
パスワード:zabbix
無事 zabbixのインストールが完了しました。
ここから設定に移っていきます。

まず、Zabbix本体の設定から。
Localeを日本語に
ProfileからLanguageをJapanese (JP)に変更する。

監視データを見ると、PHPあたりが注意されているので、php.iniを変更します。

/etc/php5/apache2/php.ini

post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Tokyo

php.iniの変更が終われば、apacheを再起動する。

# /etc/init.d/apache2 restart

ダッシュボードのphp関連の注意が無くなりました。

設定-ホストを見てみます。
Zabbixをインストールしたホストが登録されています。
しかし、ステータスが無効になっていますので、有効にします。
無効をクリックすると有効になります。
無効に戻したい場合は、もう一度クリックですね。

細かな設定は後にして、ホストを追加してみます。
追加するホストは、RTX1200です。
テンプレートが転がっていたので、拝借します。
動作するかはわかりませんが・・・
zbx_export_templates_RTX1200.xml  使えなかった

Temp_RTX1200.xml 有り難く頂戴いたしました。
設定-テンプレートからインポートします。
raspi-zabbix5
インポート済 成功
と表示されたので、インポートは問題無いようです。
続いて、RTX1200をホストに追加します。
設定-ホスト-ホストの作成
名前、グループ、新規ホストグループ、DNS名、IPアドレス、接続方法、Zabbixエージェントのポート等 設定します。
テンプレートをRTX1200テンプレートにリンクします。

とりあえず、RTX1200が登録できたので、ダッシュボードに戻り、軽微な障害を直していきます。