apt-getが100%(CPU、ディスク、またはネットワーク)を使用しないのはなぜですか?

apt-getが100%(CPU、ディスク、またはネットワーク)を使用しないのはなぜですか?

なぜapt-get いいえCPU、ディスク、またはネットワークを100%使用していますか?それとも100%に近いですか?低速システム(Raspberry Pi 2+)でも、CPU負荷は最大30%に過ぎません。人為的に制限するのか、それとも最大化すべきか考えています。作業中...または実際よりも早く作業を実行できる必要があります。

編集:今すぐパネルのCPU/ディスク/ネットワークモニタとUbuntu MATEのシステムモニタアプリを使っておおよその測定を行いました。

なぜ私が間違っているのか説明してください。 :-)

apt-getアップデート:アップデートが必要であること(アップストリーム/プロバイダの帯域幅によって制限される可能性があります)を理解してください。ただし、「圧縮解除」などの作業を行った場合、CPU使用量は最小限優秀(最も大きくない場合)。 SSDをメインドライブとして使用し、RAMディスクを/ tmpとして使用するかなりまともな家庭用ワークステーションではそうではありません。

それとも、もう少し詳しく調べる必要があるようです。

答え1

アプリケーションが次の条件を満たしている場合にのみ、CPUが最大化されます。CPU制限。アプリケーションは次のとおりです。CPU制限すべてのデータをすばやく取得できる場合は、プロセッサがデータを処理するだけです。

apt-get、一方IOバインディング。つまり、データをかなり高速に処理できますが、ディスクまたはネットワークからデータをロードするのに時間がかかります。この間、プロセッサは他のタスクを実行したり、他のプロセスに必要でない場合はアイドル状態になることがあります。

通常、すべてのIO要求(ディスク、ネットワーク)は遅く、アプリケーションスレッドが要求するたびに、カーネルはデータがカーネルにロードされるまでプロセッサからそれを削除します(=これらのIO要求を呼び出す)ブロック要求)。

答え2

低速システム(Raspberry Pi 2+)でも、CPU負荷は最大30%に過ぎません。

Raspberry Pi 2+には4つのコアがあります。一部の監視ツールでは、100%の使用率は100%で使用されているすべてのコアに対応しています。 4コードプロセッサに1つのコアしか使用されていない場合、CPU負荷は25%です。前述の30%CPU負荷は、あるプロセスが他のコアで実行されている間に1つのコアが100%使用されることに関連しています。

(100% on one core out of 4 = 100 / 4 = 25%) + some processes ≃ 30%

apt-getマルチスレッドではないため、CPU リソース全体の 25% に相当するプロセッサを複数使用しません。


次は8コア(4コア、ハイパースレッディング)Ubuntuを実行しているマシンでcat /dev/zero > /dev/null1つのコアを完全に活用する無限プロセスを作成するには、このコマンドを使用してスレッドを起動します。

さて、グラフを見るとhtopAvg、平均負荷(bar)は12.7%100%のコア使用率に対応し、これはCPUリソース全体の1/8でもあることがわかります。

(100% = 100 / 8 = 12.5%) + some background processes ≃ 12.7%.

トップ

また、コマンドはすべてのコアではなく1つのコアに基づいているため、100%その列に値があります。CPU%

答え3

実際にIO%を測定していないようです。まだLinux IO%ウィジェットを見ていません。 (私はWindows 10のタスクマネージャがうらやましい:)。コマンドを使用して確認するiotopと、100%IOが表示されます。

top100%をALに記載されているコア数で割った値について、user++全体で100%を表示する必要があります。 100%役に立つsystemとは言えませんが、非常に便利な万能学習ツールになることができます。iowaittop

スループット「ランダムIO」とも呼ばれる多くの小さなファイルを解凍するため、最大値よりも低くなります。一部のディスク同期/キャッシュフラッシュもありますが、2010年以降、Linuxにインストールされた各パッケージはほんのわずかです。 (以前はファイルごとに1つでした。)。

答え4

実際、IO/ネットワーク要求はCPU操作に比べて本当に遅いです。これは、ネットワークカードがデータを取得している間、またはディスクがそのデータを書き込んでいる間、CPUは(とにかくこのプロセスのために)何もしないことを意味します。

ハードドライブがネットワーク接続より速い場合(おそらく本当である)、受信するよりも多くの書き込みはありません。

最後に、ネットワーク比率は可能な最大のネットワークに対応する。カード接続せずに使用してください。したがって、1Gb/s ネットワーク アダプタがある可能性がありますが、実際にはその帯域幅でインターネットに接続する可能性はほとんどありません。

関連情報