LIVESENSE ENGINEER BLOG

リブセンスエンジニアの活動や注目していることを発信しています

待望の日本語版発売!『詳解システムパフォーマンス 第2版』Linuxが深く学べる名著を全力で推したい

こんにちは、かたいなかです。

『詳解システムパフォーマンス 第2版』の日本語版が2023/01/24についに発売されました!

www.oreilly.co.jp

私個人は原著で読んだのですが、他の人に強くおすすめしたくなるような内容でした。そこで、日本語版の発売に合わせてどのあたりが良かったのかなど、内容をご紹介します。

TL;DR

『詳解システムパフォーマンス 第2版』は、Linuxを深く学んで仕事に活かしたい人全員におすすめできる書籍です。

パフォーマンス改善タスクの課題感

コンテナやアプリケーションフレームワークからOSのファイルシステムまで、開発・運用を行う際には様々なツールが提供する便利な抽象化の恩恵を受けています。

抽象化のおかげで普段意識しなくてもよいレイヤで問題が発生した時、「どうやって問題を調査すればよいのか」や「どのような対応策が考えられるか」が全くわからず、困ってしまったという経験がある方も多いのではないでしょうか?結果的に、Google検索でヒットした関係がありそうな設定値を当てずっぽうに変更することを繰り返したという経験がある方もいるのではないでしょうか?

私を含めそういった経験を持っている方に、抽象化の向こう側を覗くための深い知識を与えてくれるのが、詳解システムパフォーマンス第2版です。

どんな本?

『詳解システムパフォーマンス』は、Linux上でのシステムパフォーマンスに関連した事項が、CPU、メモリ、ファイルシステム、ディスクといった各観点から詳しく解説されている書籍です。

www.oreilly.co.jp

ただLinuxの仕組みを解説しているだけではなく、パフォーマンスの悪化の原因を特定するために使えるツールに関して豊富に記述されています。topvmstat といった一般的なツールから、perfBPFを使った深い分析まで網羅的に解説されています。

第2版では、LinuxにフォーカスするためSolarisの記述が削除され、新しくクラウドコンピューティングに関する章が追加されました。これにより、一般的な環境での業務で特定のミドルウェアに依存しないパフォーマンスチューニングを行うのに必要な知識がちょうど網羅されています。

この本のどこがいい?

Linuxの仕組みを広く深く学べる

比較的陳腐化しにくいと考えられるLinuxの知識を広く深く身につけられる書籍です。

プロセスがどのようにカーネルに管理されているかやファイルシステムの仕組みなど、普段はあまり意識しない部分について知見を深めるのにおすすめです。コンテナ技術やクラウドプロバイダで採用されている仮想化についての記述もあるのも、おすすめポイントです。

パフォーマンスの観点での情報が豊富

「詳解システムパフォーマンス」というタイトルからもわかるようにパフォーマンスの観点からの情報が豊富です。

Linuxの仕組みの一般的な解説だけではなく、どのようなコマンドでパフォーマンス問題を調査すればよいか、どのような改善方法が考えられるかが詳細に解説されています。

実際に問題が発生したときに、このような情報がまとまった本があるだけで、かなり作戦を立てやすくなりそうです。

どんなひとにおすすめできるか?

Linuxを深く学びたい人全てにおすすめできる書籍です。

特に以下のような人には深い学びが得られるのではないかと思います。

  • クラウドやコンテナが当たり前になってからSREになった人
  • Linuxの知識をアップデートしたいエンジニア

クラウドやコンテナが当たり前になってからSREになった人

パブリッククラウドやコンテナ技術の利用が当たり前になってからSREになった方も多いのではないでしょうか?

コンテナ技術などの便利な技術により、Linuxの細部の仕組みなどの詳細が抽象化され、業務の中で深い仕組みを理解する機会が比較的少なくなっているように思います。

パフォーマンスの観点を中心にLinuxの仕組みを深く解説されています。ファイルシステムやLinuxがメモリをどう利用しているかなど普段意識することが少ないレイヤを学ぶのに良い機会になること間違いなしです!

Linuxの知識をアップデートしたいエンジニア

最近のLinuxでは可観測性関連の機能に関する開発がすすんでいます。

第2版では、perf, Ftrace, BPFといったツールをはじめとする最近のLinuxで利用可能になったツールの説明や、コンテナやクラウドコンピューティング関連の記述が充実しています。

Linuxについての知識を復習しながら、新しい知識を取り入れてさらなるスキルアップにつなげたい方におすすめです。

最後まで読み切るには?

ここまでおすすめしてきましたが、第1版にトライしたけど結局途中まで読んで積んでしまっているという方も多くいるようです。

この厚く濃密な本を読んでいくにあたっては作戦が必要だと感じます。以下自分がどのように読んでいるかを紹介します。

あせらずゆっくり読んでいく

この本は物理本で940ページもあり、非常に長いです。そのため、時間を書けてじっくり読み進めていくのがおすすめです。

一時の勢いで一気に読んでしまおうとすると、心が折れてしまうこと請け合いです。また、記述量も多く深い内容まで解説されているため、すべてを一気に読んでもすぐに忘れてしまうのではないかと思います。

紹介されているコマンドを手になじませたりしながら、時間を書けてゆっくり読み進めていくのが良いかと思います。

Linuxの前提知識を仕入れてから読む

Linuxに関する大量の知識が濃密に記述されているため、事前知識なしに読もうとすると、書いていることを理解していくのにかなり負荷がかかります。

以下のような、Linuxの仕組みが比較的平易に説明されている書籍でイメージを掴んで後、この本に取り掛かることで、読み進める負荷が軽減できます。

gihyo.jp

終わりに

『詳解システムパフォーマンス』は「本気でインフラエンジニア・サーバサイドエンジニアとしての道を極めたい」と思っている方には、全力でおすすめできる本だと感じています。

普段は意識しない抽象化の壁の向こうでも、必要とあらばすぐに手を突っ込めるようなエンジニアをこの本を読んで目指してみませんか?