LINUX ZIP MAXIMUM COMPRESSION
Assalamu’alaikum ..
Halo pembaca, pada postingan kali ini saya akan berbagi ilmu mengenai ZIP compression di Linux tetapi bisa juga dilakukan di UNIX dan Microsoft Windows, namun saya demokan di Linux. Sebagai informasi, Linux yang saya gunakan adalah Redhat 5.3 x64 (server kantor hehehe). Oke, mari lanjut demo di paragraf berikutnya.
-sh-3.2$ lsb_release -a LSB Version: :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch Distributor ID: RedHatEnterpriseServer Description: Red Hat Enterprise Linux Server release 5.3 (Tikanga) Release: 5.3 Codename: Tikanga -sh-3.2$ |
Target yang akan saya kompres adalah seluruh file yang ada di direktori /export/home/users/oracle/mii/20140625 sebesar 58MB. Berikut ini detilnya
-sh-3.2$ cd /export/home/users/oracle/mii/20140625 && du -sh . && ls -lh 58M . total 18M -rw-r--r-- 1 oracle oinstall 5.4K Jun 25 11:28 addmrpt_1_27672_27673.txt -rw-r--r-- 1 oracle oinstall 17M Jun 25 11:25 alert_mtms.log -rw-r--r-- 1 oracle oinstall 313K Jun 25 11:28 awrrpt_1_27672_27673.html -rw-r--r-- 1 oracle oinstall 10K Jun 25 11:25 CTL_BKP.TRC drwxr-xr-x 7 oracle oinstall 2.0K Apr 22 10:34 orasnap -rw-r--r-- 1 oracle oinstall 54K Jun 25 11:27 PARAMETER.TXT -sh-3.2$ |
Selanjutnya saya akan letakkan file ZIP-nya di /export/home/users/oracle/mii/. Sintak untuk mengkompresnya adalah zip filearchive.zip filetarget, namun saya gunakan adalah maximum compression dengan menambahkan parameter -9. Zip compression ada 10 tipe yaitu dari 0 sampai 9, dimana 0 adalah paling cepat proses kompresnya dan tidak melakukan compression, sedangkan 9 adalah maximum compression yang akan memakan waktu lebih lama. Bila kita melakukan compression dengan ZIP tanpa ada parameter 0 sampai 9, maka default-nya zip tersebut menggunakan tingkan kompresi 6 (dari berbagai sumber web).
Mari kita eksekusi, ZIP dimulai. Sebagai tambahan saya akan menambahkan parameter -r pada sintaks, karena saya akan mengkompres folder orasnap di dalamnya, maka dari itu perlu parameter -r (recursive).
-sh-3.2$ zip -9 -r ../20140625_9.zip * adding: addmrpt_1_27672_27673.txt (deflated 70%) adding: alert_mtms.log (deflated 94%) adding: awrrpt_1_27672_27673.html (deflated 89%) adding: CTL_BKP.TRC (deflated 80%) adding: orasnap/ (stored 0%) adding: orasnap/notes/ (stored 0%) adding: orasnap/notes/usermod.htm (deflated 50%) ... adding: orasnap/snapminirun.sql (stored 0%) adding: PARAMETER.TXT (deflated 94%) -sh-3.2$ -sh-3.2$ -sh-3.2$ du -sh ../20140625_9.zip 2.7M ../20140625_9.zip -sh-3.2$ ls -lh ../20140625_9.zip -rw-r--r-- 1 oracle oinstall 2.7M Aug 21 10:46 ../20140625_9.zip -sh-3.2$ |
Nah, setelah selesai kompres hasilnya hanya 2.7MB, lumayan kan pake maximum compression π π .. Demikian deh tutorial sederhananya, semoga bermanfaat yah, selamat mencoba π
Wassalamu’alaikum ..
Dulu saya pernah melihat ada yang dapat mengkompresi file 2GB menjadi <10MB. Kira-kira faktor apa saja yang dapat mempengaruhi besar file hasil kompresi yang kita lakukan?
Dear renodesper,
Saya belum tau pasti apa faktornya. Namun sepengalaman saya, file-file yang bisa dikompres sampai sangat kecil ukurannya biasanya adalah file-file yang banyak seperti isi dari web yang kita save dari web browser (CMIIW), atau dumpfile database. Saya sendiri sering melakukan maximum compression dari dumpfile database oracle (DMP) menggunakan 7z ultra compression LZMA2 method, dari ukuran puluhan GB dikompres menjadi ratusan MB sampai GB, dan data tidak rusak setelah saya uji. π
Salam,
AzizPW.
Dear a70t,
Untuk metode kompresi itu sendiri apakah anda bisa memberikan saran tentang metode yang menghasilkan hasil kompresi yang sangat kecil? Atau mungkin anda bisa membuat suatu post tersendiri yang menjelaskan metode-metode kompresi tersebut.
Best regards,
Boy Sandy G. A.
Dear renodesper,
Saya belum tahu pasti bagaimana teorinya, mungkin perlu dilakukan compare di teori algoritmanya. Namun dari beberapa kali saya melakukan percobaan dengan 7z, saya lebih sering menggunakan algoritma LZMA2 dibandingkan dengan LZMA, alasannya adalah hasil kompres dari LZMA2 ultra compression lebih kecil daripada LZMA ultra compression tetapi waktu yang dibutuhkan sedikit lebih lama dibandingkan dengan LZMA. Penggunaan 7z ultra juga tergantung pada seberapa besar dictionary size, number of fast bytes for LZMA, dan parameter lainnya.
Salam,
AzizPW.