実行時にシステムに過負荷がかかります。
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
top
1分でやります。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周波数を手動で減らします。
答え2
1つのアプローチは、システムの全てのコアが使用されるように並列圧縮を使用して圧縮時間を短縮することである。システムの負荷は減りませんが、できるだけ短時間でロードされます。
このQ&Aでこれを行う方法の例を見つけることができます。targzip-bzip-compression-decompression のマルチコア活用
たとえば、
tar cf - paths-to-archive | pigz > archive.tar.gz
答え3
注文する
tar czf /media/masi/ntfsDisc/backup_home.tar.gz $HOME/
これと同じ:
tar cf - $HOME/ | gzip > /media/masi/ntfsDisc/backup_home.tar.gz
これを実行すると、top
gzipが1つのCPUスレッドを約100%使用していることがわかります。 NTFS FUSE ソフトウェアもゼロ以外の CPU を使用しますが、デフォルトでは gzip によって CPU が制限されます。負荷平均は約2で、それぞれ2つのスレッドを持つ2つのコアがあるため、システムは過負荷になりません。
しかし、目標が最大CPU使用率を減らすことである場合(ファンが最大速度で実行されるため)、簡単なアプローチはgzipに供給されるデータレートを減らすことです。
あなたはテストを見ました
tar cf - $HOME/ | pv | gzip > /media/masi/ntfsDisc/testbackup.tar.gz
pvはgzipの最大転送速度が20MiB /秒であることを意味します。このオプションをpvに提供して-L 10m
半分にすることをお勧めします。
tar cf - $HOME/ | pv -L 10m | gzip > /media/masi/ntfsDisc/testbackup.tar.gz
必要なCPU使用率が得られるまで、速度制限を高くまたは低く調整してみてください。