[Apache] Apache Bench 入門

Apache Benchを使う必要があったので入門。

インストール

httpdに同梱されているので、httpdをインストールすれば一緒に入る。

使い方

キーになるオプションは以下の2つ。

  • -n <数字> 総リクエスト数
  • -c <数字> 同時リクエスト数

例えば100ユーザが同時に10回リクエストする場合、総リクエスト数は100×10=1000になるので以下のようになる。その他のオプションは参考サイトを見るべし。

Basic認証が掛かっているサイトの場合は -A オプションを指定する。

  • -A ユーザ名:パスワード

結果の見方

リクエストは正常に処理されたのか?

  • Complete requests (正常に処理されたリクエスト数)
  • Failed requests (処理に失敗したリクエスト数)

パフォーマンスを評価する

  • Requests per second (1秒間にさばけるリクエスト数)
  • Time per request(mean, across all concurrent requests) (1リクエストあたりの処理時間)
  • ちなみに Time per request(mean) は全リクエストの処理時間

サーバーの限界点を探す

  • -n と-c の値を徐々に増やす
  • Failed requestsが0で無くなったところがWebサーバーの負荷の限界

参考サイト

【初心者向け】ApacheBench入門 | DevelopersIO
https://dev.classmethod.jp/tool/ab-tutorial/

Apache Benchでサクッと性能テスト – Qiita
https://qiita.com/flexfirm/items/ac5a2f53cfa933a37192

Apache Bench(ab)を使って初めての負荷検証を行う – Simple IT Life
https://simple-it-life.com/2016/08/28/apache-bench/

[Apache] 参考記事 PHPのモジュール版とCGI版&FastCGI

解説

PHPのモジュール版とCGI版の違い – Qiita
https://qiita.com/SuguruOoki/items/269389f242bd1cd3facb
2018-07-25

CGI
– CGIを動かすユーザはWebサーバー本体を動かすユーザと異なる
– 故にセキュリティ面で利がある (他ユーザに干渉してしまう危険が無い)
– サーバー複数台運用の際に依存が少ないことによる移行のしやすさ
– 実行する旅にメモリのロードが必要となるが故に処理速度が遅くなる →FastCGIで解決

モジュール
– PHPがWebサーバーを動かすユーザで動作する
– 故に共用サーバー等ではセキュリティ面で不安がある →セーフモードで解決
– Webサーバーのプロセスで実行されるためCGI版と比べて処理速度が高速

ベンチマーク

FastCGI vs suPHP vs Apache Module Performance PHP Comparison
https://www.webhostinghero.com/blog/benchmark-fastcgi-vs-suphp-vs-apache-module-php-performance-comparison/
Mar 17, 2018

簡単なスクリプト(単純ループ処理)を使ったPHP実行ベンチマーク結果。
– FastCGI: 4.8233秒
– Apacheモジュール: 5.0862秒
– suPHP: 6.5283秒

PHP-FPM Cuts Web App Loading Times by 300%
https://www.cloudways.com/blog/php-fpm-on-cloud/
August 23, 2016

DigitalOcean 4GBサーバーでWordPressを使ったベンチマーク結果。詳細不明。

mod_PHP
– 295.0秒間に38,046ヒット
– データ転送 IN:7,399.11KB/OUT:206,219.42KB
– 平均ヒットレート 128.0/秒 (1日換算1,1059,200ヒット)

PHP-FPM
– 295.0秒間に85,829ヒット
– データ転送 IN:16,465.18KB/OUT:465,728.74KB
– 平均ヒットレート 290.0/秒 (1日換算25,056,000ヒット)

[Apache] アクセス制限時にデフォルトページが表示される場合の対処

バーチャルホストで.htaccessを配置し、以下のように特定IPでアクセス制限を設定した。

すると、そのIPからアクセスするとApacheのデフォルトページが表示された。デフォルトページを表示せずにブラウザが403を表示するようにしたいんだけど。

403のハンドリングを設定している箇所を調べたら以下にあった。

/etc/httpd/conf.d/welcome.conf

冒頭のコメントにWelcomeページを無効化したければ、以下の全てのラインをコメントアウトしろとある。それに従ってコメントアウトしてApacheを再起動したらブラウザに403 Forbiddenが表示されるようになった。

[ソフト] Poedit – POTファイルのローカライズツール

POTファイルとは

ソフトウェア開発者にとってローカライズは悩みどころだが、昨今ではGetTextというローカライズ用ライブラリを採用したアプリケーションが増えているらしい。有名なところではWordPressにもGetTextを利用したローカライズの仕組みが組み込まれている。

gettext – GNU Project – Free Software Foundation (FSF)
http://www.gnu.org/software/gettext/

POTファイルとは、GetTextで使われる翻訳リソースを定義したファイルである。

GetTextを用いたローカライズ方法 – Conyac
https://conyac.cc/ja/business/columns/localization_guide_po_pot

* POT (Potable Object Template) – ソースファイルから生成される翻訳リソースの基となるファイル
* PO (Portable Object) – POT Fileを基に各言語に翻訳したファイル
* MO (Machine Object) – PO Fileと同じ内容が記されたバイナリ形式のファイル .potファイルや現状の.poファイルを編集し、.poファイルと.moファイルとして出力できます。

Poedit – 翻訳エディタ

POTファイルベースの翻訳作業に便利な翻訳エディタ。ある案件で実際に使ってみたけど、軽く動くし操作も滑らかなので使い勝手が良い。翻訳作業の効率にはツールの使い勝手は重要。

The fastest and most convenient way to translate interfaces — Poedit
https://poedit.net/

[ソフト] PDFファイルを比較するには

2つのPDFファイルの文書を比較したかったので調べてみた。

Adobe Acrobat DC

まずは、そもそもAcrobatにそういう機能が無いのか。

2つのPDFを比較、ファイル比較ツール | Adobe Acrobat DC
https://acrobat.adobe.com/jp/ja/acrobat/how-to/compare-two-pdf-files.html

知らなかったんだけど、Adobe AcrobatにはStandard版とPro版があるとのこと。Pro版にはファイル比較ツールが搭載されているが、僕が持っているのはStandard版なので機能は搭載されていない。

PDF24 Tools

じゃ、無料で使えるツールは無いものかとググると、まずはオンラインのツールがヒットした。

PDFファイルの比較 – 100%無料 – PDF24 Tools
https://tools.pdf24.org/ja/compare-pdf

オンラインで2つのPDFファイルを比較する。アップロードしたPDFファイルをそれぞれテキスト化して比較しているっぽい。自分的にはこれで充分に用は足りるのだけど、見せ方としてオリジナルのPDFファイルの見栄えで違いをハイライトしてくれるとありがたいんだけど。

DiffPDF

こちらはWindows版のアプリ。

DiffPDF — PDF comparison GUI application
http://www.qtrac.eu/diffpdf.html

紹介元はこちら。

PDF比較、差分チェックに便利なツール①「DiffPDF」 | ドラブロ
https://www.doraxdora.com/blog/2017/07/14/post-1627/

試したみたんだけど僕にはNGだった。行単位で比較しているようなので、一方に行が追加されている(あるいは行が削除されている)と比較する行がずれせいで、その行から後ろは全不一致と判断されてしまう。文字単位でしか違いがないような細微な差分を取るような場合なら使えるだろうけど。

WinMerge + xdocdiff

で、同じ紹介元を見てみたら別のアプリもあった。

PDF比較、差分チェックに便利なツール②「WinMerge」 | ドラブロ
https://www.doraxdora.com/blog/2017/07/16/post-1669/

WinMargeは有名な差分ソフトだけど、プラグインを追加することでPDFをテキストに変換して読み込んで比較するというもの、上に記したオンラインツールの PDF24 Toolsと振る舞いは同じっぽい。

WinMerge – You will see the difference…
http://winmerge.org/

xdocdiff WinMerge Plugin -Compare Word, Excel, PowerPoint, pdf-
http://freemind.s57.xrea.com/xdocdiffPlugin/en/index.html

というわけで、常用するならWindowsアプリのWimMarge+xdocdiff、ちょっと使いたいだけならオンラインツールのPDF24 Toolsが使えそうかな。

[Unix] suできないユーザーへsuする

/etc/passwordでログインシェルに/sbin/nologinが指定されているユーザはsuできない。

そういったユーザには-sオプションでシェルを指定したらsuできる。

参考サイト

su できないユーザーへsu する
https://kazmax.zpp.jp/linux/nologin_to_su.html

【 su 】コマンド――スーパーユーザー(rootユーザー)の権限でシェルを実行する:Linux基本コマンドTips(67) – @IT
https://www.atmarkit.co.jp/ait/articles/1611/24/news028.html