実行するとシステムに大きな負荷がかかります
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 - 22 MB/秒、2 分で 14 - 22 MB/秒、3 分で 5 - 7 MB/秒、4 分で 5 - 22 MB/秒、5 分で 15 - 17 MB/秒、6 分で 8 - 24 MB/秒、7 分で 16 - 20 MB/秒
- 19分、18~21 MB/秒でファンが少し/安定して作動し、音が聞こえる
システム: Ubuntu 16.04 64 ビット
ハードウェア: Macbook Air 2013-mid
答え1
まず、バックアップ プロセスを人為的に遅くした場合、全体的な電力消費は同じかそれ以上になる可能性があります。これは、操作の合計数が同じで、プロセスにかかる時間が長くなると、CPU が消費するピーク電力は少なくなりますが、消費時間は長くなります。たとえば、プロセスがピーク電力 200W で 10 秒間実行される場合、消費される電力は 10 秒 * 200W = 2000J になります。プロセスが 30W で 100 秒間実行される場合、消費される電力は 100 秒 * 30W = 3000J になります。
プロセス中のコンピュータの応答性の向上を主な目的とする場合は、プロセスの nice 値を上げることを検討してください (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 圧縮/解凍
例えば:
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 を 0 以外の量使用していますが、基本的には gzip のせいで CPU に縛られています。負荷平均は約 2 で、2 つのコアとそれぞれ 2 つのスレッドがあるため、システムに過負荷はかかりません。
しかし、CPU の最大使用率を下げることが目標である場合 (ファンが最大限に稼働しているため)、これを実現する簡単な方法の 1 つは、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 使用率が得られるまで、レート制限を高くまたは低く調整してみてください。