April 2023
Intermediate to advanced
248 pages
3h 50m
Japanese
カーネルからユーザに接する部分まで、ソフトウェアスタック全体で何が起こっているのかを可視化する必要があります。そのためには、それぞれの箇所に適した可視化ツールを知ることが重要です。
この章では、Linuxとそのアプリケーションが生成するシグナル(イベント、通知)を収集し、利用することで、事実に基づいた判断をできるようにするのが目的です。例えば、以下のようなことができます。
認識を合わせるために、まず、システムログやアプリケーションログ、メトリクス、プロセストレースなど、誰もが遭遇するであろうシグナルの種類を確認します。また、トラブルシューティングとパフォーマンス測定の方法についても見ていきます。次にログについて、さまざまな選択肢と内容を確認します。また、CPU、メモリ、I/Oトラフィックなど、リソースの監視について説明します。利用できるツールを検討し、採用するときの手順を紹介します。
オブザーバビリティは、たいていは事後(対症的)になります。つまり、何かがクラッシュしたり、動作が遅くなったりした後に、プロセスとそのCPUやメモリの使用量を見たり、ログを調べたりします。しかし、オブザーバビリティがより調査的になる場合もあります。例えば、あるアルゴリズムにどれくらい時間がかかるかを測定するときです。また、重要なこととして、(対症的ではなく)予測のための監視もあります。例えば、現在の動作から将来の状態を推測して、それに到達したときにアラートを上げます(負荷に対するディスク使用量を推定するなど)。
オブザーバビリティについて有名で優れた図は、パフォーマンスの第一人者であるBrendan ...