“積読”を動画で崩す!システム・パフォーマンス読書シリーズと名門大学の無料講義のトップ画像

“積読”を動画で崩す!システム・パフォーマンス読書シリーズと名門大学の無料講義

投稿日時:
maguroのアイコン

Deno Land Inc. / ソフトウェアエンジニア

maguro

Xアカウントリンク
「あの人も読んでる」略して「も読」。さまざまな寄稿者が最近気になった情報や話題をシェアする企画です。他のテックな人たちがどんな情報を追っているのか、ちょっと覗いてみませんか?

みなさんこんにちは。

「あの人も読んでる」、第20回目の投稿です。maguro(X @yusuktan)がお届けします。

今回は、システムパフォーマンスについての名著『詳解 システム・パフォーマンス 第2版』に関する動画コンテンツと、「無料で覗ける名門大学の講義」のご紹介をしようと思います。また、最後に少しおまけとして、英語の学習リソースにアクセスするために必要な英語力を身につけるためのおすすめの方法も共有します。

Ben Dickenさんによる「Systems Performance 2nd Edition」読書シリーズ

まず1つ目、Ben Dickenさんが始めた新しい動画シリーズです。第1回の動画はMake computers FAST (Systems Performance chapter 1) というタイトルで公開されています。

ちなみに、第16回の「も読」でもBenさんのYouTubeチャンネルを取り上げました。そのときは『データ指向アプリケーションデザイン』や『詳説 データベース』についての配信があることをご紹介しました。

改めてになりますが、Benさんは現在PlanetScaleでdeveloper educationを担当しており、以前は大学のCS学部で教鞭を取っていたほか、データベース系のスタートアップでresearch software engineerとして働いていた経歴の持ち主です。データベースや分散システム、パフォーマンスチューニングなどの少し取っつきにくい低レイヤーよりのトピックが、明瞭で論理だった語りと、図も多用した説明によって、分かりやすく解説されています。発音もはっきりしているので、英語のリスニングの勉強にもおすすめできます。

そんなBenさんが、新たにBrendan Greggさんによる名著Systems Performance 2nd Edition(邦題『詳解システム・パフォーマンス 第2版』)を読み進めていくシリーズを開始しました。

この本は、CPU・メモリ・ディスクI/O・ネットワークといったOSレベルのリソースをどう観測し、どうボトルネックを特定し、どう改善するかを体系立てて扱った一冊です。

分厚い本なので通読するのはなかなか腰が重いです。僕自身、仕事でこの本に関する領域のことを担当することもある関係でずっと読みたいと思っていたのですが、永遠の積読になってしまっていました。個人的に、動画という媒体で学習するのが好きということもあり、章ごとに区切って解説してもらえると取っ掛かりがぐっと楽になるのを実感しています。

第1回の動画では「現代のソフトウェアの階層構造(アプリケーション、システムライブラリ、カーネル、ハードウェア)」や「パフォーマンスの可視化(フレームグラフ)」といった導入部分が扱われています。自分がシステムの性能問題に向き合うとき、勘や経験則に頼ってしまって、体系立てた方法論を意識できていないことがまだまだあるなと自覚しているので、このシリーズを追いながら自分の性能デバッグの引き出しを整理し直したいと思っています。

具体例を1つ挙げると、以前OSSに送ったパフォーマンス改善のパッチは、まさにこのフレームグラフのおかげで生まれたものでした。仕事でDenoの fetch が特定の状況で妙に遅い、という問題を追っていたときのことです。原因がなかなか掴めなかったのですが、フレームグラフをとってグッと睨みつけたところ、fetch が内部で使っているtower-httpというRustのライブラリのgzip展開処理が、レスポンスを処理するたびに小さなバッファを新規確保していて、そのメモリアロケーションが大量に積み重なっていることが判明しました。バッファを使い回すように直すパッチを送ったところ、スループットが10倍改善しました(実際のPR)。フレームグラフの威力を実感した出来事でした。

この記事のつづきを読もう
新規登録/ログインしたらできること
  • すべての記事を制限なく閲覧可能
  • 限定イベントに参加できます
  • GitHub連携でスキルを可視化
ログイン
アカウントをお持ちでない方はこちらから新規登録