「絵で見てわかるシステムパフォーマンスの仕組み」の読書メモ

1.この記事で達成したいこと 以下の本を読んだので感想や学びを書き残す 「絵で見てわかるシステムパフォーマンスの仕組み | 小田 圭二, 榑松 谷仁, 平山 毅, 岡田 憲昌」 また、そのような感想を抱くことになった自分の担当業務内容や役割も書いたほうが改めて本書を手に取る際にて助けになるだろうと思い、書いていく 2.本書を読んだ当時の担当業務や役割 主な担当業務はtoBのWebサービスの運用兼開発と問い合わせ対応 そのなかで「xxx機能がうまくできないんだけど〜」というお問い合わせを受けてログを追うことがある ここで肝となるのが、問い合わせの背後に見え隠れする「見るべきログのアタリ」をどれだけ早く見つけることが出来るか?また、そこから何を読み取り、次の一手を決めるか? (回答する?さらなる調査をする?機能改修?etc…) ※ いわゆる「パフォーマンスチューニング」はやっていないが、興味はある(技術検証の一環で見様見真似でパフォーマンス測定なるものはやったことはあるけど。。) アルゴリズムやネットワーク、データベースといった大学の学部レベルでのコンピュータ・サイエンスを勉強する社会人学生でもある 本書はいわゆるパフォーマンス測定でご飯を食べるインフラエンジニアだけではなく、僕のような学生やWebアプリケーション開発エンジニアも学びがある一冊だと思う 名著とされる「詳解 システム・パフォーマンス | Brendan Gregg, 西脇 靖紘, 長尾 高弘」は読み進めることが難しく感じた 一方で、本書は文字どおり多くの図やイラストを用いて、システムパフォーマンスについて解説されていると感じた。 3.感想や学び 本書は、「情報科学を学ぶことの大事さ」 というコラムを設けて情報科学を学ぶことの重要性について説いており、大学での勉強をがんばろうと思えた パフォーマンス測定の基本について、"はさみうち" という言葉で表現していたことが印象的 そもそも"はさみうち"とは はさみうちの原理 - Wikipedia パフォーマンス測定について端的に表していると感じたが、大学の極限の授業で"はさみうち"について学んでいたという点も印象に残った理由かなと e.g. サーバーAのログの該当箇所のタイムスタンプとサーバーBの該当箇所のタイムスタンプだけずいぶん開きがあるようにみえるな、、、。 <クライアントPC> <--> <サーバーA> <- ??? -> <サーバーB> <--> <サーバーC> パフォーマンスを取得するコマンドが出力する情報にはいくつか種類がある サマリ形式 一定期間の情報を合計もしくは平均で表示 「調査の最初に概況を押さえたい」ときに効果的 e.g. sarやvmstat イベント形式 個々のイベントを表示 「いつ、どこで何が起きたか?詳細に知りたい」ときに効果的 e.g. パケットキャプチャやシステムコール ※ データが莫大になり、負荷も大きいため、本番環境で常に取得するようなツールではない。サマリ形式のコマンドでアタリを付けた後、使うのがよさそう。 スナップショット形式 その瞬間瞬間の状況を記録する。 e.g. psやtop 4....

September 12, 2021 · 1 min · gkzz