この記事では、Linux のロードアベレージ負荷問題について詳しく説明します。一定の参考値があります。困っている友人は参考にしてください。お役に立てれば幸いです。
ある面接で、面接官が「CPU 使用率は高くないのに、負荷 (平均負荷) が非常に高いです。問題をどのように見つけますか?」という質問をしました。
当時は Load の意味を理解していませんでしたが、面接官は、この指標は中断されない状態にあるプロセスが多いことを反映していると説明しました。私の過去のバックエンド開発の経験に基づいて、私は、システム内でより多くの IO ブロックがある可能性があると答えました。これは主にネットワーク IO の問題で発生します。コマンド netstat -tnp を使用して、TCP 接続に time_wait ステータスが多いかどうかを確認してください。 ..
わかっています 私の答えは非常に一方的だったので、後で見直してメモを取りました。
負荷平均とは
Linux に詳しい人は、top uptime コマンドを使用して負荷平均インジケーターを表示できることを知っています。
Use man uptime to view Load Average 説明:
システム負荷平均は、実行可能または中断不可能な状態にあるプロセスの平均数です。実行可能状態のプロセスは、 CPU、または CPU の使用を待機しています。中断不可能な状態のプロセスは、ディスクの待機など、何らかの I/O アクセスを待機しています。平均は 3 つの時間間隔にわたって取得されます。負荷平均は、システム内の CPU の数に対して正規化されていません。したがって、負荷平均 1 は、単一 CPU システムでは常に負荷がかかっていることを意味しますが、4 CPU システムでは、75% の時間アイドル状態であることを意味します。
重要な点を理解してください。平均負荷とは、次のものを指します。一定期間内に、システム内で実行可能状態および中断不可能な状態にあるプロセスの平均数を、平均アクティブプロセス数と呼びます。 CPU 使用率とは直接関係がないことに注意してください。
この記事で説明されているように、コマンド ps aux を使用してプロセスのステータス stat を表示します:
R ステータス、実行可能ステータス(実行ステータス) / 実行可能)、CPU を使用しているか CPU を待機しているプロセスの D 状態、中断不可能な状態 (無中断スリープ、ディスク スリープとも呼ばれます)、カーネルの重要なプロセスにあるプロセス状態であり、中断されません。
D なぜ状態を中断できないのでしょうか? たとえば、システムはデータの整合性を確保するために、ディスク デバイスがデータを返す前にハードウェア デバイスの I/O 応答を呼び出します。他のプロセスを中断する、または中断される 中断されると、ディスクデータとプロセスデータの間に不整合が発生しやすくなります。したがって、中断不可能 (D) 状態は、プロセスとハードウェア デバイスに対するシステムの保護メカニズムです。
アクティブなプロセスの平均数は、厳密に言えば、アクティブなプロセスの数の指数関数的な減衰平均です (特定の量の減少率はその値に比例します)。通常、単位時間当たりのアクティブなプロセスの数として理解できます。
CPU 使用率と負荷分散
CPU の観点から見ると、負荷平均は単位時間あたりの CPU を占有するプロセスの数のみを反映し、CPU 使用率はプロセスの数に直接関係しません。コマンド top vmstat を使用して CPU 使用率を確認できます。次のインジケーターがあります:
%us: ユーザー空間プログラムの CPU 使用率を示します (nice を通じてスケジュールされていません) %sy: CPU 使用率を示しますシステム空間の主にカーネルプログラム。 %ni: ユーザー空間内のプログラムと、nice によってスケジュールされたプログラムの CPU 使用率を示します。 %id: アイドル状態の CPU %wa: 実行中に CPU が IO を待機している時間 %hi: CPU によって処理されたハード割り込みの数 %si: CPU によって処理されたソフト割り込みの数 %st: 仮想マシンによって盗まれた CPU machine
適切な平均負荷を測定する方法
一般的に、負荷平均が CPU の数よりも低い場合、マシンのパフォーマンスはサービス要件を満たしています。それを超えているかどうかは問題ではありません。負荷平均は CPU 使用率を直接表すものではなく、IO ブロックの増加が原因である可能性があります。負荷平均が CPU 数の 70% を超えると、プロセスの応答が遅くなり、サービスの通常の機能に影響を与える可能性があります。
歴史的変化の観点から
一般的に、最高稼働時間は、1分、5分、15分の3つの時点での負荷平均指標を提供します。これは、システムの最近の状態変化の傾向を反映しています。実際の本番環境では、長期にわたる監視記録を作成する必要があります。平均負荷が CPU の 2 倍になるなど、異常な数値変化がある場合は、問題を分析して調査する必要があります。
2 種類の指標間の違いの包括的な分析
はバランスのとれた負荷と CPU 使用率に基づいており、次の考えられる状況が組み合わされます。
負荷平均は高、CPU 使用率が高い場合は、CPU を大量に使用するプロセス (スレッド) が実行されているか、CPU のスケジュールを待機しているプロセス (スレッド) が多数あります。負荷平均が高く、CPU 使用率が低い場合、IO -集中的なプロセスが実行されています。どちらも比較的低く、通常の負荷平均は低いです。CPU 使用率が高く、これは存在しません
シミュレーション ケースとツール
さまざまな組み合わせでケースを分析するにはどうすればよいですか?これら 2 つの指標、バランスされた負荷と CPU 使用率のうち、指標の変化の原因を見つけますか?
次の環境は Linux Arch 4.19 / 4 CPU / 8G メモリです。
ツール リスト
ストレス システム ストレス テスト ツール
sysstat パフォーマンス分析ツール パッケージ:
mpstat マルチコア CPU 解析パフォーマンス ツール、mp はマルチプロセッサ (マルチプロセッサ) を意味します。 pidstat プロセス パフォーマンス解析ツール、pid はプロセス ID を意味します。これは、プロセスの CPU、メモリ、I/O、およびコンテキスト切り替えインジケーターを表示するために使用されます
シミュレーション シナリオ
ストレスを使用すると、次のシナリオをシミュレートできます
CPU 負荷が高いプロセス
# 模拟一个进程, 对 cpu 使用率 100%,限时 600s stress --cpu 1 --timeout 600
IO 集中型プロセス
stress -i オプション、sync() で回転する N 個のワーカーを生成
# 模拟一个进程不停的执行 sync stress -i 1 --timeout 600多数のプロセスのシナリオ
# 模拟16个进程, 对 cpu 使用率 100%,限时 600s stress --cpu 16 --timeout 600
ツール インジケータ
mpstat -P ALL 5 は、すべての CPU を監視し、5 秒ごとに一連のデータを出力します。インジケーター %usr 使用率と %iowait IO ブロック時間に注意してください。これから、それが次のとおりであるかどうかを判断できます。 CPU 集中型または IO 集中型 pidstat - u 5 1 5 秒間隔の統計、CPU を使用したプロセスのデータ、指標 %usr 使用率、CPU 使用の %wait 待機時間に注意してください。これから判断できます。プロセス (スレッド) が多すぎるかどうか
#
以上がLinuxのロードアベレージ負荷問題の詳しい解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Linux Recoveryモードを入力する手順は次のとおりです。1。システムを再起動し、特定のキーを押してGrubメニューを入力します。 2。[RecoveryMode)でオプションを選択します。 3. FSCKやrootなどの回復モードメニューで操作を選択します。リカバリモードを使用すると、シングルユーザーモードでシステムを開始し、ファイルシステムのチェックと修理を実行し、構成ファイルを編集し、システムの問題を解決するのに役立ちます。

Linuxのコアコンポーネントには、カーネル、ファイルシステム、シェル、および共通ツールが含まれます。 1.カーネルはハードウェアリソースを管理し、基本的なサービスを提供します。 2。ファイルシステムはデータを整理して保存します。 3.シェルは、ユーザーがシステムと対話するインターフェイスです。 4.一般的なツールは、毎日のタスクを完了するのに役立ちます。

Linuxの基本構造には、カーネル、ファイルシステム、およびシェルが含まれます。 1)カーネル管理ハードウェアリソースとUname-Rを使用してバージョンを表示します。 2)ext4ファイルシステムは、大きなファイルとログをサポートし、mkfs.ext4を使用して作成されます。 3)シェルは、BASHなどのコマンドラインインタラクションを提供し、LS-Lを使用してファイルをリストします。

Linuxシステムの管理とメンテナンスの重要な手順には、次のものがあります。1)ファイルシステム構造やユーザー管理などの基本的な知識をマスターします。 2)システムの監視とリソース管理を実行し、TOP、HTOP、その他のツールを使用します。 3)システムログを使用してトラブルシューティング、JournalCtlおよびその他のツールを使用します。 4)自動化されたスクリプトとタスクのスケジューリングを作成し、Cronツールを使用します。 5)セキュリティ管理と保護を実装し、iPtablesを介してファイアウォールを構成します。 6)パフォーマンスの最適化とベストプラクティスを実行し、カーネルパラメーターを調整し、良い習慣を開発します。

Linuxメンテナンスモードは、起動時にinit =/bin/bashまたは単一パラメーターを追加することにより入力されます。 1.メンテナンスモードの入力:GRUBメニューを編集し、起動パラメーターを追加します。 2。ファイルシステムを読み取りおよび書き込みモードに再マウントします:Mount-Oremount、RW/。 3。ファイルシステムの修復:FSCK/dev/sda1などのFSCKコマンドを使用します。 4.データをバックアップし、データの損失を避けるために慎重に動作します。

この記事では、DebianシステムのHadoopデータ処理効率を改善する方法について説明します。最適化戦略では、ハードウェアのアップグレード、オペレーティングシステムパラメーターの調整、Hadoop構成の変更、および効率的なアルゴリズムとツールの使用をカバーしています。 1.ハードウェアリソースの強化により、すべてのノードが一貫したハードウェア構成、特にCPU、メモリ、ネットワーク機器のパフォーマンスに注意を払うことが保証されます。高性能ハードウェアコンポーネントを選択することは、全体的な処理速度を改善するために不可欠です。 2。オペレーティングシステムチューニングファイル記述子とネットワーク接続:/etc/security/limits.confファイルを変更して、システムによって同時に開くことができるファイル記述子とネットワーク接続の上限を増やします。 JVMパラメーター調整:Hadoop-env.shファイルで調整します

このガイドでは、Debian SystemsでSyslogの使用方法を学ぶように導きます。 Syslogは、ロギングシステムとアプリケーションログメッセージのLinuxシステムの重要なサービスです。管理者がシステムアクティビティを監視および分析して、問題を迅速に特定および解決するのに役立ちます。 1. syslogの基本的な知識Syslogのコア関数には以下が含まれます。複数のログ出力形式とターゲットの場所(ファイルやネットワークなど)をサポートします。リアルタイムのログ表示およびフィルタリング機能を提供します。 2。syslog(rsyslogを使用)をインストールして構成するDebianシステムは、デフォルトでrsyslogを使用します。次のコマンドでインストールできます:sudoaptupdatesud

Debianシステムに適したHadoopバージョンを選択する場合、次の重要な要因を考慮する必要があります。1。安定性と長期的なサポート:安定性とセキュリティを追求するユーザーにとって、Debian11(Bullseye)などのDebianの安定したバージョンを選択することをお勧めします。このバージョンは完全にテストされており、最大5年のサポートサイクルがあり、システムの安定した動作を確保できます。 2。パッケージの更新速度:最新のHadoop機能と機能を使用する必要がある場合は、DebianのUnstableバージョン(SID)を検討できます。ただし、不安定なバージョンには互換性の問題と安定性のリスクがあることに注意する必要があります。 3。コミュニティのサポートとリソース:Debianには、豊富なドキュメントを提供できるコミュニティサポートが大きくなり、


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール
