node.jsがうまく動かないなという時の鯖障害チェック&捕手用メモ
最近 運用しているnode.jsのプロセスが止まるな・・と思ったら
で容量チェックのコマンドは毎回チェックしているので覚書メモ
デイスク全体の容量
df
フォルダの容量
du -sh ./
ソートして表示
du -sh ./ | sort -nr | more
lsコマンド。スクロールが流れる場合は「 | more」をつける
ls -l
//新しい順
ls -lt
//古い順
ls -ltr
プロセス監視
watch -n 5 "/bin/ps aux | /bin/grep hogeServer | /bin/grep -v grep | /bin/awk '{print $2}'|wc -l"
ああこういう状況が起きるのは
エラーハンドリング雑=>Exceptionバリバリ=>ログ大変
だったりする
これ凄くわかる? RT @鍵: 「優秀なエンジニアを正しく評価し」って優秀の定義なんて人それぞれだから難しいよな。成果を正しく評価し、なら分かるけど。いくら優秀でもそれを生かせる環境でなければ成果はでないし、それでも優秀だからと評価するのは社会損失とも取れる大きな間違い。
この頃よく思うのは、プロトタイプをさっと作る技能力 と 運用に耐える安定化をさせる技能力 は別だよな??(´▽`;)ゞ 人気出てから 安定化やろうずは定番だけど 大概うまくいってない(ソースがドキュメントとかめんどい話に
なのが結論だったり
エラーハンドリングに関する考察)
昨日 ひしだまさんのRTしてて思いだしたんだけど「exceptionを丸める」って表現一般的につかうのかな。「例外を捨てる」は本で読んだことあるけど。あとこの場合のテストって要らん認識でいいん?<今の所は落とすより棄てろ派
http://twitter.com/y_sumida/status/323238266839105536:twitter:detail:right
http://twitter.com/ebc_2in2crc/status/323243510893518848:twitter:detail:right
http://twitter.com/GOTT_eclair/status/323384653652320256:twitter:detail:right
@GOTT_eclair そういうイメージも確かに。でもどちらかというと、省力化の為にFW等を使う => なんかそのFW/ライブラリでエラーでても続行 な感じなのですが、AndだとAd等のカスタムViewだとエラーが回避出来なかったりとか(汗<=つまりAdでアプリが落ちる
@GOTT_eclair 流行のTDDとかBDDとかショートコードとかだと try-catch回避コードを書くことが冗長だったり、テストはExceptionで落とすべき って思想だからでしょうね。でもブラックボックスで渡される方は謎な挙動をした時、落ちたりする時はきつい?
2013-04-15 08:37:25 via Tween to @GOTT_eclair
@GOTT_eclair 運用メインで考えてないからかも。プログラマ的ソフト工学的に美しい のを望まれてるのかも。まあそこら辺は上の人がずれてるのは普通なので(redmineガチガチ看板管理美しいとか、IOSチックは美しいとか、ショートコードは美しいとかと同じ
2013-04-15 09:28:32 via hamoooooon to @GOTT_eclair
@GOTT_eclair でもエラーリカバリ処理入れたりすると「前のほうがレスポンス良かったきがする」「前のほうが安定していた気が」「変なコード追加したせいじゃないの?」とか言われると「じゃあ元に戻しますか?」とかしか言えなくなるのがやな感じです<PerlとかPHPとか特にそう
@GOTT_eclair ただスクリプト言語(perl/php/js ?)ってショートコードのほうが「正常に動いている限り速い」って話はあって難しいですね。安定運用考えるとコンパイルできる言語のほうがいい気がしますが。。そこはお仕事する処次第になってしまうのでしょうし
@GOTT_eclair そのはずなんですけど、どうもコメント1行、改行 入れるとめまぐるしい速度劣化するとか言われたこともありますので難しいかな(汗。もちろん print文とかならわかるんですけど、それも目に見えるほどと言われても。。。(テスト環境では再現できない<汗
@GOTT_eclair nodeに関してはC++チックなコメントです。nodeに関しては確かに遅い話は無いかな と思いましたけど、jquery-minみたいな改行、コメントtrimしたコードも有るので実際は違うかも。顕著な話が出るのがPerlやPHPですね
2013-04-15 20:18:22 via hamoooooon to @GOTT_eclair
@GOTT_eclair なんですよね。試験環境等では体感無でPerlでもDumper辺り使ってもそれ程遅くならない =>運用する物に入れると 凄く遅くなった気する というコメントを貰ったりな状況だったりとか。数千人規模が使っている想定の負荷テストとかってどうやれば良でしょうか?
2013-04-16 08:43:25 via Tween to @GOTT_eclair
@GOTT_eclair PerlやPHPだと瞬間ロックかかるので、処理がゴニョゴニョしていると時間かかって遅延するかも。perlをマルチプロセスで立ち上げたりとかしてるわけではないですし。PHPでも数十アクセス程度で重いとか言われたりするので作りの問題かな。。
教えてもらったコメントに関するURL
シェル)
: << '#COMMENT_OUT'(コメントアウトされる部分)
#COMMENT_OUT