# メモリとCPU使用率（クラシック）

{% hint style="info" %}
適用対象プラットフォーム | Windows |
{% endhint %}

組織内の各デバイスのハードウェアリソースの使用を測定することは、デバイスの効率性とリソース消費が従業員のエクスペリエンスに与える影響を評価するための鍵です。 デバイスが遅いと感じるユーザーは、通常、主メモリとCPU処理能力という二つの基本的なシステムリソースの不足または誤用に苦しんでいます。

この記事では、Nexthinkでのメモリと処理能力の使用を測定するためのフィールドと集約値について学びます。 これらの数値に基づいて、特定のデバイスに与えられたリソースの量を評価し、どのアプリケーションが最もリソースを消費しているかを見つけ出します。

### メモリ使用量 <a href="#memoryandcpuusage-classic-memoryusage" id="memoryandcpuusage-classic-memoryusage"></a>

Collectorは、30秒間隔で実行中の各プロセスが使用するメモリの量をサンプリングします。 Collectorはこれらのサンプルの平均値を5分間隔で計算し、最終的にEngineへ送信します。 プロセスが非常に迅速にメモリを割り当てて解放する場合、Collectorが30秒ごとにサンプリングする際に、メモリ消費のピークを見逃すことがあるので注意してください。 したがって、Collectorの提供する値には常にいくらかの不確実性がありますが、通常、アプリケーションが正しく動作していれば無視できる程度です。 さらに、メモリの問題は通常、短期的な割り当てのためではなく、持続的な高消費のために発生します。

収集したデータに基づいて、Nexthinkはメモリ使用量を測定するための以下のフィールドと集約を利用可能にしています：

| 名前               | タイプ   | 適用先                                                                            | 説明                                  |
| ---------------- | ----- | ------------------------------------------------------------------------------ | ----------------------------------- |
| 平均メモリ使用量         | フィールド | 実行                                                                             | 集約される前の実行の平均メモリ使用量                  |
| 実行ごとの平均メモリ使用量    | 集約    | <ul><li>ユーザー</li><li>デバイス</li><li>アプリケーション</li><li>実行可能</li><li>バイナリ</li></ul> | すべての基礎となる実行の平均メモリ使用量をその基数で割った値      |
| 使用不可となった平均メモリ使用量 | フィールド | バイナリ                                                                           | 5分ごとのサンプリングレートを用いた、基礎となる実行の平均メモリ使用量 |

Nexthinkは、一つの実行に統合される可能性がある前に、各プロセスごとにメモリ使用量を計算することに注意してください。 単一のバイナリがメモリ内で複数の同一プロセスを生成することがあり、総メモリ消費が個々のプロセスのそれを上回ることがあります。

例えば、よく知られた2つのウェブブラウザ、ChromeとFirefoxの動作を見てみましょう。 Chromeはブラウザが開くたびに新しいプロセスを作成する一方で、Firefoxはすべてのタブに対して単一のプロセスを使用します。 そのため、複数のタブを開いている場合、同様の使用ケースではFirefoxは通常、Chromeよりも高い平均メモリ使用量を報告します。 これは、ChromeがプロセスがEngineに統合される前に、プロセスごとのメモリ使用量を報告するためです。

### CPU使用量 <a href="#memoryandcpuusage-classic-cpuusage" id="memoryandcpuusage-classic-cpuusage"></a>

CPU使用量については、Collectorがすべての実行中のプロセスのCPU負荷を30秒ごとにサンプリングします。 システムは、デバイスに存在する各論理プロセッサについて、0から100のパーセント値でCPU負荷を測定します。 したがって、複数の論理プロセッサを持つデバイスでは、CPU負荷が100％を超えることがあります。 例えば、12の論理プロセッサを持つデバイスは、最大1200％のCPU負荷容量を持っています。

メモリ使用量のサンプルとは異なり、システムはCPUのサンプルを平均してからEngineに送信しないため、EngineはCPU使用のピークを把握できます。 CPUの最大瞬間負荷は、Collectorがサンプルを取る瞬間と同時に発生するとは限らないことに注意してください。 CollectorはCPUのサンプルを5分ごとにEngineへ送信します。 それぞれのサンプルに対して、Engineは実行中の各プロセスの実効CPU使用量を計算します。 以下のフィールドと集約を使用してそれを取得します：

| 名前               | タイプ   | 適用先                                                                            | 説明                                                                                              |
| ---------------- | ----- | ------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------- |
| 合計CPU時間          | フィールド | 実行                                                                             | 集約された実行中のCPUの実際の使用時間。 平均CPU負荷が100％を超えていた場合、合計CPU時間が実行の総持続時間を超えることがあることに注意してください。                |
| 合計CPU時間          | 集約    | <ul><li>ユーザー</li><li>デバイス</li><li>アプリケーション</li><li>実行可能</li><li>バイナリ</li></ul> | 選択したオブジェクトの範囲内のすべての実行の総CPU時間の合計。                                                                |
| CPU使用率           | 集約    | <ul><li>ユーザー</li><li>デバイス</li><li>アプリケーション</li><li>実行可能</li><li>バイナリ</li></ul> | 選択したオブジェクトの範囲内のすべての実行の総CPU時間をその持続時間で割った値。                                                       |
| 使用不可となった平均CPU使用量 | フィールド | バイナリ                                                                           | バイナリが初めて認識されてからすべての実行を考慮に入れた、すべての論理プロセッサにおけるバイナリの平均CPU負荷。 したがって、この値は選択された時間枠には依存しないことに注意してください。 |

これらの数値は、実行中のプロセスから直接取得されたサンプルに基づいていることに留意してください。 コレクターは、デバイスによって報告された総CPU負荷のサンプルも取得します（プロセス別に分類されていません）が、これらはデバイス内の[高CPU状態](https://docs.nexthink.com/platform/ja/references/references-classic/search-and-information-display-classic/errors-and-warnings-for-devices-and-executions-with-finder-classic)を示すためにのみ使用されます。
