Saya memiliki sekitar 200 GB data log yang dihasilkan setiap hari, didistribusikan di antara sekitar 150 file log yang berbeda.
Saya memiliki skrip yang memindahkan file ke lokasi sementara dan melakukan tar-bz2 pada direktori sementara.
Saya mendapatkan hasil yang baik karena 200 GB log dikompresi menjadi sekitar 12-15 GB.
Masalahnya adalah perlu waktu lama untuk mengompres file. The cron pekerjaan berjalan di 2:30 setiap hari dan terus berjalan sampai 5: 00-6: 00.
Apakah ada cara untuk meningkatkan kecepatan kompresi dan menyelesaikan pekerjaan lebih cepat? Ada ide?
Jangan khawatir tentang proses lain dan semua, lokasi di mana kompresi terjadi adalah pada NAS , dan saya dapat menjalankan mount NAS pada VM khusus dan menjalankan skrip kompresi dari sana.
Berikut ini adalah output dari atas untuk referensi:
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
file yang sama ?
top
Output Anda menunjukkan bahwa bzip2
proses single-threaded Anda memaksimalkan satu inti, tetapi Anda menjalankannya pada sistem quad-core (Satu proses menggunakan 100% CPU -> 25.1%
waktu ruang-pengguna CPU, 74% menganggur). Jadi dengan perubahan kecil, Anda bisa menjadi 4x lebih cepat, kecuali ada hal lain yang menjadi hambatan. Baca jawaban Gilles dengan hati-hati. Pertimbangkan untuk menggunakan CPU dalam kotak yang sama dengan disk yang menyimpan data untuk melakukan kompresi. (Anda bahkan dapat memampatkan beberapa file Anda di satu kotak, yang lain di yang lain, dan mengarsipkan setelahnya, sehingga kedua CPU digunakan.)