「tar czf」の計算に時間がかかるようにするにはどうすればよいですか?

「tar czf」の計算に時間がかかるようにするにはどうすればよいですか?

実行時にシステムに過負荷がかかります。

sudo tar czf /media/masi/ntfsDisc/backup_home.tar.gz $HOME/

ファンが最大値に達しました。計算と消費電力の間でより良いバランスを見つけたいです。私はこのプロセスをうまく監視できません。このように実行すると、計算中に速度を遅くすることはできません。直観:そこにいくつかの睡眠を追加しますが、それはどうですか?私もxargsこれを「既製」製品と比較する方法がありたいと思います。私の相

  • 休憩top中です。

    top - 09:34:34 up 19:14,  1 user,  load average: 0.52, 0.42, 0.24
    Tasks: 236 total,   1 running, 235 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  1.5 us,  1.1 sy,  0.0 ni, 97.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 s
    KiB Mem :  8115460 total,   257036 free,  3006452 used,  4851972 buff/cache
    KiB Swap:  8326140 total,  8321852 free,     4288 used.  4369448 avail Mem 
    
  • top1分でやります。nice tar czf ...

    top - 09:48:49 up 19:28,  1 user,  load average: 1.63, 0.99, 0.62
    Tasks: 244 total,   2 running, 242 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  1.4 us,  0.9 sy, 24.1 ni, 73.2 id,  0.3 wa,  0.0 hi,  0.1 si,  0.0 s
    KiB Mem :  8115460 total,   127644 free,  3237648 used,  4750168 buff/cache
    KiB Swap:  8326140 total,  8321868 free,     4272 used.  4092404 avail Mem 
    
      PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND   
    28831 root      30  10    4640   1600   1316 R  97.7  0.0   1:43.24 gzip      
     9573 root      20   0   21196   2860   1772 S   2.3  0.0  13:16.29 mount.nt+ 
      842 root      20   0  380136  63780  48568 S   1.7  0.8  23:57.16 Xorg      
    
  • top始めて10分後

    top - 10:00:33 up 19:40,  1 user,  load average: 1.98, 2.13, 1.50
    Tasks: 253 total,   2 running, 251 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  2.6 us,  2.8 sy, 21.4 ni, 73.0 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 s
    KiB Mem :  8115460 total,   130408 free,  4432384 used,  3552668 buff/cache
    KiB Swap:  8326140 total,  8321948 free,     4192 used.  2837616 avail Mem 
    
      PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND   
    28831 root      30  10    4640   1600   1316 R  87.0  0.0  11:49.08 gzip      
     9573 root      20   0   21196   2860   1772 S  13.6  0.0  14:45.84 mount.nt+ 
      842 root      20   0  384936  66304  51092 S   2.0  0.8  24:18.44 Xorg      
    28830 root      30  10   37584   3096   2688 S   1.3  0.0   0:14.50 tar       
     1674
    

私のPVtar cf - $HOME/ | pv | gzip > media/masi/ntfsDisc/testbackup.tar.gz

  • 1分、13 - 22MB/秒、2分、14 - 22MB/秒、4分、5 - 22MB/秒、15 - 17MB/秒 6分、8~24MB/秒、7分、16~20MB/秒
  • 19分、18-21MB/秒、ファンが小さく安定しているので聞くことができる

システム:Ubuntu 16.04 64ビット
ハードウェア:Macbook Air 2013-mid

ベストアンサー1

第1に、人為的にバックアップ処理速度を遅くすると、全体的な消費電力が等しくなるか又は高まる可能性がある。その理由は、単に全体のジョブ数が同じであるため、処理時間が長いと、CPUが消費するピーク電力は少なくなりますが、時間がかかるためです。たとえば、プロセスが10秒間200Wのピーク電力で実行されると、10秒* 200W = 2000Jを消費します。プロセスが100秒間30Wで実行されると、100秒* 30W = 3000Jを消費します。

処理中にコンピュータの応答性を主に向上させたい場合は、プロセスのニースを増やそうとします。 (niceはCPUの優先順位を下げて他のプロセスのCPU性能を確保し、ioniceはディスクの優先順位を下げてディスクの空き容量を確保します。)他のプロセスの場合はi / o):

sudo nice -n19 ionice -c2 -n7 tar czf /media/masi/ntfsDisc/backup_home.tar.gz $HOME/

これにより、コンピュータでの作業中に他のプロセスが遅くならないように、プロセスの優先順位が低くなります。それ以外は、できるだけ早くプロセスを完了しようとし、フォロワーを回転させます。

最大消費電力を本当に減らしたい、または減らす必要がある場合(システムが過熱したりファンが夜に起きたりするため)、次のいずれかを試すことができます。

より複雑な解決策は、すべてを一度に圧縮するのではなく、ディレクトリごとにディレクトリを圧縮することです(このコードをbackup_home.shというファイルに入れて実行可能にしたら、次の手順を実行します。sudo backup_home.sh

#!/bin/bash
OLDIFS=$IFS
IFS='
'
for dir in $(ls -d1 $HOME/*); do
   nice tar rf /media/masi/ntfsDisc/backup_home.tar $HOME/
   sleep 10
done;
gzip /media/masi/ntfsDisc/backup_home.tar
IFS=$OLDIFS

ただし、全体的な消費電力は減少せず、長時間にわたって分散されます(バックアップ中にファイルが変更される可能性が高くなります)。また、すべてのフォルダに同じロードがあるわけではないため、ロードが均等に分散されるわけではありません。 niceを使用し、残りをシステムで実行することをお勧めします。

最後に、本当に詳しく知りたい場合は、次のものを使用できます。CPU周波数スケーリングバックアップ中のCPU周波数を手動で減らします。

おすすめ記事