un tar が CPU をあまり使用しないようにする

un tar が CPU をあまり使用しないようにする

私はBeaglebone Greenでun tar ie tar xzvf abc.tar.gzを実行しています。 CPUを使いすぎているようです。解凍操作中は、topコマンドでCPU使用率を確認してください。なぜ2つの異なるプロセスが生成されるのかわかりません。なぜですか? ? ?

 PID  PPID USER     STAT   VSZ %VSZ %CPU COMMAND
  626   625 root     R     1956   1%  64% tar xzvf abc.tar.gz
  625   612 root     S     1960   1%  12% tar xzvf abc.tar.gz

untarプロセスがCPUをあまり使用しないように制限する方法は? CPUを消費せずにuntarが実行されるたびに影響を受ける時間が重要なリアルタイムプロセスがあります。したがって、解凍は、いかなる方法でもCPUの40〜50%以上が使用されないように制限する必要があります。

答え1

 cpulimit -fl 50 -- tar xzvf abc.tar.gz

男性CPU制限:

   cpulimit -- limits the CPU usage of a process

   -l, --limit=N
          percentage of CPU allowed from 1 up. Usually 1 - 100, but can be
          higher on multi-core CPUs. (mandatory)

   -f, --foreground
          run cpulimit in foreground while waiting for launched process to
          finish


   •   cpulimit always sends the SIGSTOP and SIGCONT signals to a process,
       both to verify that it can control it  and  to  limit  the  average
       amount  of  CPU it consumes.  This can result in misleading (annoy‐
       ing) job control messages that  indicate  that  the  job  has  been
       stopped  (when  actually  it was, but immediately restarted).  This
       can also cause issues with interactive shells that detect or other‐
       wise  depend on SIGSTOP/SIGCONT.   For example, you may place a job
       in the foreground, only to see it immediately stopped and restarted
       in the background.

答え2

CPUが高すぎたり、CPUが完全に活用されて問題が発生したり、ジョブを高速に実行したくない場合にのみ、CPU使用率を制限する必要があります。

これを完全に活用しないのは、単に「アイドルタスク」にCPUサイクルを無駄にすることです。

問題が異なるプロセスが最初にそのCPUサイクルを取得したい場合は、解決策はtar/の優先順位を下げることですgzip。つまり、優先順位を上げることです。フレンドリー

たとえば、次のようにします。

nice 20 tar...

そのうち20が最も高い好感度点数だ。これにより、tar他のプロセスに少しのCPUサイクルが必要な場合、CPUサイクルはほとんどありませんが、システムに何もしない場合はまだ100%CPUが使用されます。

他のプロセスがリアルタイム優先順位を使用している場合、スケジューラは通常のプロセスよりもリアルタイムプロセスの優先順位を指定する必要があるため、そうする必要はありません。したがって、CPUは、プロセスが継続して変更するために使用できるリソースではない可能性があります。優先順位やCPU使用率を減らすことはtar役に立ちません。

ionice以下も使用できますtar

nice 20 ionice -c idle tar...

マニュアルioniceページを引用すると、次のようになります。

怠惰 アイドルI / O優先順位で実行されるプログラムは、定義された猶予期間内に他のプログラムがディスクI / Oを要求しない場合にのみ、ディスク時間を取得します。アイドル入出力プロセスは、通常のシステム活動に影響を与えないでください。

関連情報