システム運用保守ツール KSysAK - 運用保守を簡単に

システム運用保守ツール KSysAK - 運用保守を簡単に

1.基本情報

1.1 概要

システム異常位置特定分析ツール KSysAK は、Yunluan オペレーティング システムの研究開発担当者と運用保守担当者によって設計および開発され、開発と運用の経験を要約した複数の運用保守ツールの集合です。システムの日常監視、オンライン問題診断、システム障害修復などの一般的な運用および保守シナリオをカバーします。

このツールの全体的な設計は、運用と保守の作業を簡素化するように設計されており、システムの運用および保守担当者がカーネルを深く理解していなくても問題を発見できるようになります。


ここに画像の説明を挿入します

システム運用および保守ツールは、機能に応じて監視モードと診断モードに分類できます。

  • システム監視: さまざまなシステム リソース (CPU、メモリ、ネットワーク、ファイル IO、カーネル管理構造など) に対してより詳細なリソース監視を提供し、ビジネス運営におけるきめ細かい運用および保守のスケジュール設定とリソースの効率的な使用を支援します。

  • システム診断: 一般的な診断問題には、異常な負荷、ネットワーク ジッター、メモリ リーク、IO グリッチ、パフォーマンスのボトルネック、アプリケーションの異常などが含まれます。ユーザーが使いやすく、解釈しやすいように、ツールの専門性を最小限に抑えながら、対象を絞ったツールが提供されます。

上記の機能を実現し、ユーザーにシンプルで使いやすい操作インターフェイスを提供するために、システム運用保守ツールKSysAKは、さまざまなシナリオでの監視データの収集、統計、データ診断に焦点を当てた複数のサブツールを提供します。 。

1.2 環境の詳細説明

IPアドレス:100.2.93.133

アーキテクチャ: x86_64

タイプ: 仮想マシン

オペレーティングシステムバージョン: KOS5.8-sp1

カーネルバージョン: 4.19.91-27.4.7.kos5.x86_64

KSysAK バージョン: 1.3.0

ユーザー名: ルート

パスワード: 123456a?

1.3 ツール

分類 ツール名 述べる
メモリリークメモリリーク test_page_leak.ko ページリークをシミュレートするツール
test_slab_leak.ko スラブ漏れをシミュレーションするためのツール
test_vmalloc_leak.ko vmalloc リークをシミュレートするツール
レイテンシー ジッター ランレイテンシー テスト実行のレイテンシ プロセス実行の遅延をシミュレートする

Linux カーネルのメモリ リーク検出

カーネル メモリ リークとは、コード内のエラーや欠陥により、カーネルに割り当てられたメモリが正しく解放されない Linux システムの問題を指します。これにより、システムのパフォーマンスが低下し、最終的にはシステムの利用可能なメモリが使い果たされたり、システムがクラッシュしたりする可能性があります。以下では、Linux システムでカーネル メモリ リークを検出して解決するいくつかの方法を紹介します。

Linux カーネルのメモリ割り当てには、スラブ、ページ、vmalloc など、いくつかの異なるメカニズムがあります。

ksysak memleak メモリ リーク検出ツールには次の手順が含まれます。

  1. プロジェクトに統合する: ksysak memleak のメモリ リーク検出コードを、検出する必要があるプロジェクトに統合します。これには通常、プロジェクトの適切な場所にインストルメンテーション コードを挿入して、メモリの割り当てと割り当て解除が正確に追跡されるようにすることが含まれます。

  2. プロジェクトをコンパイルして実行する: 適切なコンパイル オプションを使用してプロジェクトをコンパイルし、プロジェクトが正常にコンパイルされることを確認します。次に、プロジェクトを実行し、メモリの適用と解放を含む一連の操作を通常どおり実行させます。

  3. メモリ リーク データの収集: プロジェクトの実行中に、ksysak memleak はメモリの割り当てと解放の詳細を記録します。このデータには、各メモリ割り当てのコール スタック、割り当てサイズ、割り当て位置などが含まれます。このデータは、後続のメモリ リーク分析のために収集されます。

  4. メモリ リーク データの分析: ksysak memleak が提供する分析ツールを使用して、収集されたメモリ リーク データを分析します。これは、メモリ リークの潜在的な原因、メモリ リークのサイズ、およびリークが発生した場所を特定するのに役立ちます。この情報により、開発者は問題を正確に特定し、適切な修正を行うことができます。

  5. メモリ リークを修正する: 分析ツールを通じてメモリ リークの場所と原因が特定されると、開発者はメモリ リークを修正できます。修正には、メモリが正しく解放されるようにコードを変更したり、メモリ管理ロジックのエラーを修正したりすることが含まれる場合があります。修復後、プロジェクトを再実行し、ksysak memleak を使用してメモリ リークの問題が解決されたことを確認できます。

ksysak memleak はマクロ呼び出しに基づくメモリ リーク検出ツールであり、プロジェクトのパフォーマンスに一定の影響を与える可能性があることに注意してください。したがって、メモリ リークの検出に ksysak memleak を使用する場合は、開発フェーズとデバッグ フェーズ中にのみ使用し、メモリ リークの修復が完了したらプロジェクトから削除することをお勧めします、プロジェクトのパフォーマンスと安定性に影響が及ばないようにします。

2.1 ページメモリリークの検出

ksysak memleak -t page -i 80 を実行して、ページ メモリ リーク検出プログラムを開始し、80 秒間実行します (検出プログラムの実行が遅すぎる場合は、時間を延長できます)

ここに画像の説明を挿入します

ここに画像の説明を挿入します

ここに画像の説明を挿入します

2.2 スラブメモリリークの検出

slabtop コマンドを実行して、現在のシステムのスラブ使用状況を表示します。

cat /proc/slabinfo コマンドを実行して、より詳細なスラブ キャッシュ情報を取得します。

perf ツールを使用して、カーネルでのスラブの割り当てと割り当て解除の操作を追跡する

ksysak memleak -t slab -i 80 を実行して、スラブ メモリ リーク検出プログラムを検出して開始し、80 秒間実行します (検出プログラムの実行が遅すぎる場合は、時間を延長できます)

ここに画像の説明を挿入します

ここに画像の説明を挿入します

ここに画像の説明を挿入します

OS異常解析

OS 例外解析は、プログラムの実行中に発生する異常な状況に対処するために使用される、オペレーティング システムの重要なテクノロジです。プログラムの実行中に処理できないエラーや特殊な状況が発生した場合、オペレーティング システムは例外処理メカニズムを通じて応答し、システムの安定性とセキュリティを保護します。

3.1 システム検査

#ksysak ossre_client -d を実行してログ ファイルをスキャンし、システム動作中のすべての異常情報を表示します。

ここに画像の説明を挿入します

例外情報を待つ

システム内のレイテンシージッターの検出

サーバー オペレーティング システムの動作中、アプリケーションの動作に対する多くの干渉源が存在する可能性がありますが、その干渉が必ずしもビジネスに影響を与えるとは限りません。そのため、少なくともこれらの干渉源の頻度と実行時間を考慮して、それらの干渉源が影響を受けるかどうかを評価する必要があります。が重要な要素です。

少なくとも次の干渉源の統計を含める必要があります。

  • デバイスのハードウェア割り込み ビジネス操作中に、特定の種類の割り込みの頻度が高すぎるか、特定の CPU に集中しているか、または 1 つの操作が長すぎる場合、影響を受ける可能性があります。ビジネスのパフォーマンスを確認するには、中断や分割のバインドなどの操作を実行して、その効果を観察します。

  • システムのスケジュールされた割り込み システム タイマーが多すぎると、ビジネスの起動に遅れが生じる可能性があります。通常は、ビジネス プロセスが多数の高精度タイマーを使用しているかどうかを分析できます。

  • ソフト割り込み ネットワーク トラフィックの急激な増加などが原因である可能性があります。

Runlatency は、システム運用および保守ツール KSysAK のサブツールとして、アプリケーションの実行遅延ジッターや出力遅延要因に影響を与える可能性のあるシステム内の場所を診断するために使用されます。そのカーネルは、プロセスのスケジューリングに影響を与える遅延要因 (割り込みの無効化、長時間のスケジューリングの停止、および長時間の実行キュー) を監視します。システム全体または単一プロセスの割り込みおよびスケジューリング情報を監視できます。監視されるデータには次のものが含まれます。

プロセス/スレッドのスケジューリング遅延 (実行中のキューの圧迫、長いキュー時間、優先度の高いアプリケーションのプリエンプション、または不当なスケジューリング ポリシー設定など)。

割り込みやソフト割り込みへの応答がタイムリーでない場合、ネットワークパケットの送受信やIOの読み書きなど、業務処理プロセスが割り込みやソフト割り込みの実行プロセスに依存することになります。したがって、割り込みオフ期間を分析して割り込み応答時間を決定できます。

カーネル状態の実行が長すぎます。これには、システム自体のボトルネックやカーネル内の他のリソースの競合が含まれます。

4.1 システム内の遅延ジッターの検出

システム レイテンシー ジッター シミュレーション プログラム testrunlatency.python を実行します (/root 内)

ここに画像の説明を挿入します

ksysak runlatency -e を実行して、レイテンシ ジッターの監視を開始します。

ここに画像の説明を挿入します

ksysak runlatency -r ./out を実行し、監視データを out ディレクトリに出力します。

ここに画像の説明を挿入します

ksysak runlatency -d を実行して監視をオフにします

ここに画像の説明を挿入します

次のように、out ディレクトリ内の出力結果を表示します。

ここに画像の説明を挿入します

Nosch、ハード、ソフトタイプの遅延情報、CPU、プロセスID、遅延時間、コマンドライン、スタック情報など。

Web アプリケーションの応答と時間をテストするには、curl を使用します。通常、遅延が小さいほど、システムまたはサービスがユーザーのリクエストにより速く応答できることを意味します。

ここに画像の説明を挿入します

製品概要

KSysAK は、複数の運用および保守ツールの集合の「結晶」です。運用および保守担当者の作業効率を大幅に向上させることができます。その主な機能は、毎日の監視です。システムとオンライン監視 問題の診断とシステム障害の修復、システムの検出は非常に詳細です この製品の主な特徴は、広いカバー範囲と無制限の使用であり、これはユーザーのニーズを大きく反映しています製品の実用性と広範さにより、運用保守作業が簡素化され、システム運用保守担当者がカーネルを深く理解しなくても問題を発見できるようになり、非常に便利です。

全体として、このツールは個人ユーザーと現場のスタッフの両方にとって十分に価値がありますが、次のようないくつかの点で最適化することができます。

  • カスタマイズを強化できる: ツールでは、ユーザーがシミュレートされた漏洩シナリオをよりきめ細かくカスタマイズできるようにする必要があります。たとえば、ユーザーは漏れのサイズ、速度、場所を指定できる必要があります。

  • 詳細なレポート: ツールは、ユーザーがメモリ リークを特定して解決できるように、詳細でわかりやすいレポートを生成する必要があります。レポートには、漏れのサイズ、場所、考えられる解決策を含める必要があります。

  • リアルタイムの検出とアラート: ツールはメモリ リークをリアルタイムで検出し、潜在的な問題が発見されたときにユーザーに警告できる必要があります。これにより、問題が深刻になる前に解決できます。 。

ビジュアル インターフェイスを作成することもできます。多くのユーザーにとって、コマンド ラインは見た目に似ていない、または少し複雑かもしれません。直感的なユーザー インターフェイスは、ユーザーがこれらのツールをより便利に使用するのに役立ちます。

最後に、これらのツールの有効性と正確性を確保するために、定期的な品質テストと検証を行うことをお勧めします。これにより、さまざまなシナリオや構成でも確実に動作することが保証されます。

おすすめ

転載: blog.csdn.net/qq_53847859/article/details/134802621