毎日約200 GBのログデータが生成され、約150の異なるログファイルに分散されています。
ファイルを一時的な場所に移動し、一時ディレクトリでtar-bz2を実行するスクリプトがあります。
200 GBのログは約12〜15 GBに圧縮されているため、良い結果が得られます。
問題は、ファイルの圧縮に永遠に時間がかかることです。cronジョブは、毎日午前2時30分AMに実行され、5まで実行し続けます:00-6:00 PMを。
圧縮の速度を改善し、ジョブをより速く完了する方法はありますか?何か案は?
他のプロセスとすべての心配しないで、圧縮が起こる場所は、上にあるNAS、そして私は、専用のNASマウント実行することができVMをし、そこから圧縮スクリプトを実行します。
参照用のtopの出力は次のとおりです。
top - 15:53:50 up 1093 days, 6:36, 1 user, load average: 1.00, 1.05, 1.07
Tasks: 101 total, 3 running, 98 sleeping, 0 stopped, 0 zombie
Cpu(s): 25.1%us, 0.7%sy, 0.0%ni, 74.1%id, 0.0%wa, 0.0%hi, 0.1%si, 0.1%st
Mem: 8388608k total, 8334844k used, 53764k free, 9800k buffers
Swap: 12550136k total, 488k used, 12549648k free, 4936168k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7086 appmon 18 0 13256 7880 440 R 96.7 0.1 791:16.83 bzip2
7085 appmon 18 0 19452 1148 856 S 0.0 0.0 1:45.41 tar cjvf /nwk_storelogs/compressed_logs/compressed_logs_2016_30_04.tar.bz2 /nwk_storelogs/temp/ASPEN-GC-32459:nkp-aspn-1014.log /nwk_stor
30756 appmon 15 0 85952 1944 1000 S 0.0 0.0 0:00.00 sshd: appmon@pts/0
30757 appmon 15 0 64884 1816 1032 S 0.0 0.0 0:00.01 -tcsh
tar.bz2
ファイルに書き込むことを可能にするでしょうか?
top
あなたのシングルスレッド化という出力が示すbzip2
プロセスが一つのコアを限界いっぱいまでされていますが、クアッドコアシステム( - > 100%のCPUを使用して一つのプロセスでそれを実行していることを25.1%
ユーザースペースCPU時間、74%のアイドル)。したがって、小さな変更を加えると、他の何かがボトルネックにならない限り、4倍の速度で処理できます。Gillesの回答を注意深く読んでください。データを保持するディスクと同じボックスでCPUを使用して圧縮を行うことを検討してください。(ファイルの一部を1つのボックスで圧縮し、他のファイルを他のボックスで圧縮し、その後アーカイブすることもあります。そのため、両方のCPUが使用されます。)