詳解システムパフォーマンス
最近読書会をしている
ハイパフォーマンスコンピューティング研究者や、巨大動画サービスのインフラ見てる人が読みながら解説・議論してくれるので大変ためになる会
俺はだいたい
Scrapboxでノート取ってる
適当に書いておくとリアルタイムに修正してもらえる
へーって言う
昔マイコンいじってた頃の知識を元に低レイヤの説明で少し貢献する
double-pumpedとかリングバッファとか
この本で精神の安定を得られた
最初にまず
USEメソッド等、システムのパフォーマンス分析の手法がたくさん挙げられている
メソッド(良い分析方法)
アンチメソッド(悪い分析方法)
他人のせいにする、ランダムに値を変える等
そういうのが23個並んでいる
本でも、だいたいこんな感じの汎用的なやり方がまず解説されている
次に、各章毎にCPU・メモリ・ファイルシステム等の内部構造が解説される
そして前出の色々なパフォーマンス分析の方法に当てはめて考えたり、解説したりされていく
精神の安定
Cosenseの運用にあたって、サーバーやアプリケーションから色々な指標が見れる
herokuのmetrics dashboardはなかなか出来が良い
けど、何がなんだかわからなかった
精神が不安定になる
USEメソッドを実行するぞ
まずエラーを減らす必要があった
そこからそれぞれの指標について
どうなった時に何を増やすと効果が有る・無い、がわかった
CPUの飽和率
メモリの使用率
Heroku Routerのエラーから分ける
HTTPリクエストのエラー数
Socket.IO系のエラー数
など
どこに負荷がかかったら、何をするか?という方針が明確になった
そもそも負荷がかかっているという事をどの指標で見れば良いのかがわかった
増減する各指標について、変な動きがある
特にメモリが直感と違う動きをしている
あのへんが原因かな、という仮説ができた
何がわからないのかがわかった
わかった気にはなっているが、実際に本番でやってみないと本当に正しいのか自信ない
詳しい事はしばらく後に書くと思う
何がわからないのかよくわからない状態で心配だけをしている、という状態を脱せたので精神が安定した。
なおこの本は著者が
dTrace推しまくりで、各章の後半にとてつもない
ワンライナーみたいなのがいっぱい書いてあるんだけどそこはよくわからない。
でも低レイヤーの解説→各パフォーマンス分析メソッドの適用は普遍性があって良い。
実際精神が安定した。