ntp確認
[root@hostname ~]# /usr/sbin/ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *【remote-ip】 【refid-ip】 3 u 52 1024 377 0.506 0.044 0.059 +【remote-ip】 【refid-ip】 3 u 862 1024 377 0.968 0.140 0.090 +【remote-ip】 【refid-ip】 3 u 51 1024 377 0.939 0.775 0.066
↑ちゃんと動作している状態
remote
/etc/ntp.confのserverのFQDN
refid
参照されるNTPサーバのFQDN
※FQDN(full qualified domain name)
\*
現在同期中のNTPサーバ
+
予備のNTPサーバ
ちなみに、今、
[root@hostname ~]# /usr/sbin/ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== 【remote-ip】 .INIT. 16 - - 1024 0 0.000 0.000 0.000 【remote-ip】 .INIT. 16 - - 1024 0 0.000 0.000 0.000 【remote-ip】 .INIT. 16 - - 1024 0 0.000 0.000 0.000
こんな状態で困ってる(´-ω-`)
前回もこんな感じだった気がするのだが、
どやって解決したっけか?
→さしより、
ntp再起動でいいっぽい。
vmstat
procs r:実行待ちプロセス数 ->CPUの数より多いようならCPUの処理能力不足 b:割り込み不可プロセス数 ->多くの場合はディスクやネットワークへの入出力 memory swpd:スワップ量(仮想メモリ量) free:空き実メモリ量 buff:バッファに使われている実メモリ量 cache:キャッシュとして使われている実メモリ量 ->free+cacheの合計が、使える実メモリ量 swap si:ディスクからスワップインしているメモリ量 so:ディスクへスワップしているメモリ量 io bi:ブロックデバイスからの読み込みブロック数 bo:ブロックデバイスへの書き込みブロック数 system in:一秒あたりの割り込み回数 cs:一秒あたりのコンテキストスイッチ回数 cpu us:ユーザCPU使用率 sy:システムCPU使用率 id:CPUアイドル率 wa:IO待ちCPU使用率 st:???
このへん、参考にさせてもらいましたヾ(。・ω・。)
http://piro791.blog.so-net.ne.jp/2008-10-02
http://linuxtips.sblo.jp/article/29251461.html
http://php.y-110.net/wiki/index.php?%A5%B5%A1%BC%A5%D0%BF%C7%C3%C7%A1%A7vmstat
負荷試験
最近、久々に負荷試験をやる機会があったので、
備忘録的な感じヾ(。・ω・。)
jemeterで負荷試験。
今回は、webアプリケーションの機能追加のためのやつー。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
1、シナリオを決める。
・・・あんまし、やったことない(´-ω-`)
ユーザの動きを想定して、いろいろ決めた方がよろしいんだけど、
とりあえず省略。
2、想定PVを割り出す。
スループットを出すため。
3、アプリケーションの実装
アプリケーションの負荷試験の場合は、
実際にリリースするアプリ(に近いもの)を使うけど、
メインがアプリでない場合は、
負荷試験の対象外のミドルウェアやAPIを利用すると
迷惑がかかる場合が多いので
単純なのをつくりますヾ(。・ω・。)
4、サーバ、ミドルウェアの準備
jmeter動かすサーバも用意する
5、データの準備
せっせとコピーしたりつくったりφ(.. )
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
で、やっとjmeter。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
6、ローカルにjmeter入れる。
※テスト計画はGUIでやった方が簡単ラクチンなので、
GUIで作ったjmxファイルをサーバにぽいする。
7、jmeterの起動
[nashuaki@hostname ~]$ ${JMETER_HOME}/jmeter
8、テスト計画〜スレッドグループの作成
テスト計画 > 追加 > Threads(Users) > スレッドグループ
「Ramp-Up期間(秒)/スレッド数」ごとに1スレッド作成する。
今回はこの設定。
・スレッド数:100
・Ramp-Up期間(秒):10
・ループ回数:無限
9、テスト計画〜HTTPリクエストの設定をする
スレッドグループ > 追加 > HTTPリクエスト
負荷試験を行うhttpリクエストの穴埋めφ(.. )
リクエストを送るパラメータのとこは、
${__StringFromFile(${JMETER_HOME}/file.txt,,,)}
とかで外部ファイルを指定したり、
${__Random(1,10,)}
とかでランダム値(1~10)を指定できたりする。
他にもいっぱい関数的なのが用意されてるみたい。
http://jakarta.apache.org/jmeter/usermanual/functions.html
10、テスト計画〜タイマーの設定をする
スレッドグループ > 追加 > タイマ >定数スループットタイマ
ここで
「ターゲットスループット(サンプル数/ミリ秒)」
とか書かれてるけど、
正しくは、
「ターゲットスループット(サンプル数/分)」
らしい。
間違うのもどうかと思うけど、分単位って(´-ω-`)
想定リクエストを
100req/seq
とするなら、
100req * 3(ピーク時) * 1.5 / 60(seq)
とかにします、うちは。
1.5は初めて負荷試験やったときに
リリース時には想定をこえてたっていう嫌な思い出があるので(´-ω-`)
「Calculate Throughput based on」は
「all active threads in current thread group」
にしときました。
11、テスト計画〜リスナー
・・・を設定したいとこだけど、
これすると落ちちゃったりするので、
とりあえず見送り(´□`。)
12、jmeterの実行
[root@stress-server ~]$ ${JMETER_HOME}/bin/jmeter -t ${JMETER_HOME}/test.jmx -n
これだと実行ユーザがログアウトしたりすると
終了したりするので、
[root@stress-server ~]$ nohup ${JMETER_HOME}/bin/jmeter -t ${JMETER_HOME}/test.jmx -n &
的な感じで実行ユーザがいなくなっても
継続して実行できるようにする。
13、結果を取得して考察する
負荷をかけるサーバでは
vmstatやuptimeの値を継続して取得できるようにしておく。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
がんばるγ(▽´ )ツヾ( `▽)ゞ
viのvisual mode
普段はemacs派な自分だけど、
viのvisual modeがすてきすぎて、時々vi。
で、
いっっっっっっっつも忘れてしまうのでめもε=(。・д・。)
・ビジュアルモードで編集する
Ctrl-v
短形選択が可能になるの(´∀`●)
・短形挿入
Ctrl-I
入力してEscキーをおすと、、、、
あら不思議(´∀`●)
選択したとこに一括挿入γ(▽´ )ツヾ( `▽)ゞ
・短形コピー
y
・短形ペースト
p
・短形削除
d
・短形置換
r
すてきすぎるγ(▽´ )ツヾ( `▽)ゞ
apachectlいろいろ
インストール済みのモジュールを表示する
[nashuaki@hostname ~]$ $APACHE_HOME/bin/apachectl -l
apacheのバージョンを確認する
[nashuaki@hostname ~]$ $APACHE_HOME/bin/apachectl -v
syntaxをチェックする
[nashuaki@hostname ~]$ $APACHE_HOME/bin/apachectl -t
いい感じで再起動
[nashuaki@hostname ~]$ $APACHE_HOME/bin/apachectl graceful
macの画面共有を便利にする
Mac-Macどうしのリモート操作には
デフォルトで入ってる、画面共有を使ってます。
ちょっとわかりにくい場所にあったりする↓
/System/Library/CoreServices/Screen Sharing.app
で、あまりにも使いづらいのでカスタマイズ。
画面共有のツールバーをカスタマイズする
[nashuaki:/Users/nashuaki]$ defaults write com.apple.ScreenSharing 'NSToolbar Configuration ControlToolbar' -dict-add 'TB Item Identifiers' '(Scale,Control,Share,Curtain,Capture,FullScreen,GetClipboard,SendClipboard,Quality)'
Command+tabを画面共有.app上で無効にする
[nashuaki:/Users/nashuaki]$ defaults write com.apple.ScreenSharing DoNotSendSystemKeys -bool true
(spacesで別view使ってるから、今はfalseにしてます)
ほんとは1度つないだホスト名とかを記憶して
リストで表示してくれるようにしたいんだけど、
いろんなとこで紹介されてる、
[nashuaki:/Users/nashuaki]$ defaults write com.apple.ScreenSharing ShowBonjourBrowser_Debug 1
こんな感じじゃだめだった(´ω`。)グスン
OS 10.6.xじゃできないっぽい??
でも、あまりにも不便なのでなんか見つけてみせるヾ(。`Д´。)ノ
vmstatに時間を表示させる〜その2:バッファリングしない〜
http://d.hatena.ne.jp/nashuaki/20110418/1303133841
これの続き。
[nashuaki@hostname ~]$ vmstat 1 | awk '{print strftime("%H:%M:%S"), $0}'
これでvmstatに時間を付与して出力するのには成功したけど、
バッファリングされちゃって
ファイルにリダイレクトさせるとうまいこといかなかった件。
コメントで、
fflush()
なる関数が存在することを教えていただきましたヾ(。・ω・。)
結果、
[nashuaki@hostname ~]$ vmstat 1 | awk '{print strftime("%H:%M:%S"), $0}{fflush()}'
こんな感じで、
ファイルにリダイレクトさせても、
バッファリングされない!
わーいγ(▽´ )ツヾ( `▽)ゞ
awk.....便利だねー(/ω・\) チロ