開発者とオペレーターが注目すべき Linux デバッグ ツール [推奨]

開発者とオペレーターが注目すべき Linux デバッグ ツール [推奨]

システム パフォーマンスの専門家である Brendan D. Gregg 氏は、LinuxCon NA 2014 カンファレンスで、Linux パフォーマンスに関する有名な講演 (Linux パフォーマンス ツール) とスライドを更新しました。日常の Linux 開発で使用されるツールを、監視、テスト、最適化、構成の観点からまとめています。以下に主な写真と情報を記載しますので、ご参考になれば幸いです。

パフォーマンス ツール (Linux パフォーマンス ツール - フル)

この画像は、監視、テスト、およびチューニングのプロセスの高解像度バージョンです。後ほどカテゴリごとに別々に表示されます。

Linux パフォーマンス ベンチマーク ツール

ベンチマークは、データセット、ワークロード、測定指標の 3 つの部分で構成される評価方法です。コンピュータ分野全体にわたって長期的な応用が可能です。

コンピュータ分野におけるベンチマークの最も成功した応用はパフォーマンス テストであり、主に負荷の実行時間、伝送速度、スループット、リソース使用率などをテストします。

Linux パフォーマンス観測ツール

監視内容の違いに応じて、ツールは基本、中級、上級の 3 つのレベルに分けられます。それぞれ以下の3つの章に対応

基本的な Linux 監視ツール

パフォーマンスツール

perf-tools: は、Brendan Gregg によって作成されたツールセットです。その目標は、最小限の依存関係で最大限の機能を実現し、簡単にインストールして使用できるようにすることです。

一つのことをしっかりやり遂げなさい。 ——ブレンダン・グレッグ

サル

sar (System Activity Reporter) は、Linux で最も包括的なシステム パフォーマンス分析ツールの 1 つです。ファイルの読み取りと書き込み、システム コールの使用状況、ディスク I/O、CPU 効率、メモリ使用量、プロセス アクティビティ、IPC 関連アクティビティなど、さまざまな側面からシステム アクティビティをレポートできます。

Linux パフォーマンス チューニング ツール

ほとんどのシステムでは、負荷の増加に対してある程度のパフォーマンス低下を伴います。システムがより高い負荷を受け入れる能力はスケーラビリティと呼ばれ、より高い負荷を処理できるようにシステムを変更することがパフォーマンス チューニング ツールの目的です。

トレース ツール (Linux bcc/BPF ツール)

Linux では、システム管理者や開発者にパフォーマンス分析やトラブルシューティングのための多数の新しいツールやダッシュボードを提供する新しいテクノロジーが登場しています。これはBPF(Berkeley Packet Filter)と呼ばれます。

eBPF は BPF の拡張バージョンであり、Linux 4.x シリーズ カーネルに追加されています。パケットをフィルタリングするだけでなく、Linux の動的トレース、静的トレース、分析イベントでカスタム アナライザーを実行できます。

静的情報 (Linux 静的パフォーマンス ツール)

これらは Linux 実践者には非常によく知られていると思います。

仕事をうまくやり遂げたいなら、まず道具を研がなければなりません。優れたツールを使用すると、問題をすばやく特定し、デバッグ サイクルを短縮できます。 Linux プラットフォームには非常に多くのツールがあるため、どれが最適かを判断するのは困難です。最も試行錯誤されたシンプルなツールはすべて上記の記事に記載されています。あなたはそれらをすべて知っていますか?

要約する

以上が、開発や運用・保守に欠かせないLinuxデバッグツールの紹介です。お役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、すぐに返信させていただきます。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • パフォーマンステストにPython標準ライブラリを使用する方法
  • Python でパフォーマンス テスト ツールを作成する (パート 1)
  • パフォーマンステスト監視ネットワークスループットプロセスの詳細な説明

<<:  JavaScript における正規表現の実際的な応用の詳細な説明

>>:  MySQL における count(*)、count(1)、count(col) の違いのまとめ

推薦する

実際のプロジェクトでElementUIを使用する手順の詳細な説明

目次1. テーブル自動ソート2. ページング機能3.el-checkbox-group 複数選択ボッ...

Win10 の組み込み Linux システムを使用して Spring Boot プロジェクトを開始する方法

1. Windows10の組み込みLinuxサブシステムをインストールする1.1. Linuxサブシ...

よく使うLinuxコマンドのまとめ

私は2年間運用保守に携わり、多くのコマンドを使用しました。特定のLinuxコマンドを習得すると、どれ...

MySQL並列レプリケーションの簡単な説明

1. 並列レプリケーションの背景まず、並列レプリケーションの概念はなぜ存在するのでしょうか? 1. ...

React プロジェクトにおける TypeScript の使用の概要

序文この記事では、TS の基本的な概念ではなく、プロジェクトで TypeScript (以下、TS ...

dns-prefetch とは何ですか? フロントエンドの最適化: DNS の事前解決によりページ速度が向上します

目次背景1. dns-prefetch とは何ですか? 2. dns-prefetch を設定するに...

JavaScript のガベージコレクションの仕組みの詳細な説明

目次ガベージコレクション (GC) はなぜ必要なのでしょうか?ガベージコレクションとは廃棄物の発生ガ...

MySQL 最適化: キャッシュ最適化 (続き)

MySQL 内部には至るところにキャッシュがあります。MySQL のソースコードを読むと、キャッシ...

MySQL の NULL と空の文字列

最近、MySQL に触れました。昨日、テーブル構造情報を格納するための新しいテーブルを作成しました。...

Linux プログラムの実行中に動的ライブラリをロードできない場合の解決策

Linux でダイナミック ライブラリをロードできません次のような異常事態が発生した場合./test...

JavaScriptで継承を実装するいくつかの方法

目次構造継承(callで実装)プロトタイプチェーン継承(プロトタイプチェーンの助けを借りて実装)複合...

MySql のグループ化と各グループからランダムに 1 つのデータを取得する

アイデア: 最初にランダムに並べ替えてからグループ化します。 1. テーブルを作成します。 テーブル...

MySQL 5.7.18 でパスワードを変更する方法

MySQL 5.7.18 でパスワードを変更する方法: 1. まずMySQLサーバーをシャットダウン...

MySQLデータベースのbinlogクリーンアップコマンドの詳細な説明

概要今日は主に、MySQL データベースから binlog ログを正しく削除する方法を紹介します。ロ...