ab(apache bench)コマンドは、apacheに付属している標準ツール。
ベンチマーク対象のホスト(webサイト)の性能測定ができる。
■コマンド例
例:同時接続数 100 リクエスト総数 1000 対象URL http://www.hoge.jp/
# ab -c 100 -n 1000 http://www.hoge.jp/
これは、http://www.hoge.jp/に対して、同時100接続をリクエスト総数1000になるまで(同時接続100を10回)アクセスするということになる。
テストサイトなどでベーシック認証が必要なサイトに対しては、次のような感じになる。
# ab -c 100 -n 1000 -A user:password http://test.hoge.local/
■GET
URLエンコードしたクエリストリングを付けるだけなので、簡単。
http://test.hoge.local/serach.php?keyword=%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a
上は、"あいうえお"をUTF-8でURLエンコードした例。
■POST
ちょっと面倒だができる。
非同期通信オブジェクトを使ってPOSTしたことある方ならわかると思う。
まず、POSTする項目のname属性とvalue値(textareaはタグで囲まれた要素の値)で、GETと同じ要領でクエリストリングを記述し、そいつをファイルとして保存する。
# echo -n "keyword=%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a" > postdata
で、次のようにabコマンドを実行する。
# ab -c 100 -n 1000 -p postdata -T "application/x-www-form-urlencoded" http://test.hoge.local
-p オプションでPOSTデータを保存したファイルを指定し、-T オプションで content-type を指定する。
■セッション
abでアクセスしたときにセッションはどうなるか調べてみた。
http://test.hoge.local/sess.php
<?
session_start();
で
ab -c 10 -n 100 http://test.hoge.local/sess.php
を実行すると、セッションファイルが100個できていた。
ということは、100回すべて別セッションでアクセスしているとわかった。
なんでも屋さんの自称SEさんが、知らなかったことをメモ代わりに書いてます。
たまに関係のないことも書きますが、良かったら参考にどうぞ。
2020/11
なんでも屋さんだったSEさんは、転職しました。今は社内SEさんとして、自社システム開発してます。でも、一人なんだよね・・・
2021/8 もう少し自分で考えてよって人が増えました...いい歳なんだからさー、指示待ちやめてよねー
2023/11 転職してから早3年、仲間が4名になりました!
2024/10 この一年で貯金がかなり減りました・・・
2012-06-02
PHPだからと言って
今ね、先行してリリースしたプロジェクトから資産を引き継いで、よく似たシステム作ってる。
LAMPで。
「さーて、.htaccess置いて、エラーメッセージを画面に表示....」
ってやったらさ、
出るわ出るわ...
Notice: Undefined variable
Notice: Undefined index
Notice: Undefined offset
の嵐。
おいぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃ
「またやってるよ。ほんとに進歩がない」
変数ないんだろ?
配列の範囲超えてるんだろ?
よくそんな状態で「テストしました。リリースします」って言えるよ....
あきれてものも言えない。
変数を宣言してないとか、範囲チェックしていないとか、キーチェックしていないとか、あり得ない。
PHP使ってんだから、それぐらいやれよ。
明らかに、不正な値を使ってるだろ、これじゃ。
というわけで、こんな文句を他の社員から言われないように、
こんな感じの.htaccess を開発環境ディレクトリの直下において開発しましょう。
■PHP 5.3.x で E_STRICT エラーも表示させる場合の .htaccess
PHP 5.3.x 以前の E_ALL には E_STRICT は含まれていない。
そのため、全てのエラーを表示したければ、各バージョンのE_ALL値とE_STRICT値の合計を error_reporting の値とすればいい。
なお、PHP 5.4.x は、E_ALL (32767) に E_STRICT も含まれているので、PHP 5.3.x 用に作った .htaccess はそのまま使える。
LAMPで。
「さーて、.htaccess置いて、エラーメッセージを画面に表示....」
ってやったらさ、
出るわ出るわ...
Notice: Undefined variable
Notice: Undefined index
Notice: Undefined offset
の嵐。
おいぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃぃ
「またやってるよ。ほんとに進歩がない」
変数ないんだろ?
配列の範囲超えてるんだろ?
よくそんな状態で「テストしました。リリースします」って言えるよ....
あきれてものも言えない。
変数を宣言してないとか、範囲チェックしていないとか、キーチェックしていないとか、あり得ない。
PHP使ってんだから、それぐらいやれよ。
明らかに、不正な値を使ってるだろ、これじゃ。
というわけで、こんな文句を他の社員から言われないように、
こんな感じの.htaccess を開発環境ディレクトリの直下において開発しましょう。
■PHP 5.3.x で E_STRICT エラーも表示させる場合の .htaccess
php_flag display_errors On
php_value error_reporting 32767
PHP 5.3.x 以前の E_ALL には E_STRICT は含まれていない。
バージョン | E_ALLの値 | E_STRICTの値 |
---|---|---|
5.3.x | 30719 | 2048 |
5.2.x | 6143 | 2048 |
5.1以前 | 2047 | 2048 |
そのため、全てのエラーを表示したければ、各バージョンのE_ALL値とE_STRICT値の合計を error_reporting の値とすればいい。
なお、PHP 5.4.x は、E_ALL (32767) に E_STRICT も含まれているので、PHP 5.3.x 用に作った .htaccess はそのまま使える。
登録:
投稿 (Atom)
.htaccessで403を404で返す
久しぶりにリライトルールを書いたよ。 ドキュメントルートに.htaccessを置く場合の記述↓ # 403.html は実体がなくてよい。この設定をすることで、あっても使われなくなる。 ErrorDocument 403 /403.html # 独自の404ページをドキュメ...
-
本題に入る前に、まずは、sh/bash系のシェルで標準出力と標準エラー出力をリダイレクトする方法から。 現在使用中のシェルを確認するには、 # echo $SHELL とすれば確認できる。 その他、利用できるシェルを確認するには # cat /etc/shell...
-
Internet Explorer も、気がついてみたらFirefoxまでも、複数タブ・ウィンドウ間で同一セッションになってしまった。確か、Firefox 3.6のときは、ウィンドウが別だったらセッションも別になっていたと思ったのになぁ... で、同一セッションになって困るの...
-
mb_send_mail()を使ってメールを送信する場合は、第5引数に Return-Path を指定する。 さもなければ、Return-Path は apache@hoge.dom (コマンドラインから実行したときは、実行アカウント名@hoge.dom)になる。 第5引...