日期:2014-05-16  浏览次数:20761 次

请教gzip压缩大量文件的性能问题
请教gzip压缩大量文件的性能问题。
-------------------
我现在每天有400G左右的数据(2000个文本文件),
准备采用gzip --fast来压缩。
不准备做文件打包,就还是压缩为2000个。
我机器的内存大约有50个G可用。
一个一个的压缩大约需要2个多小时。
我想直接执行: gzip --fast -c * 

我想请教一下:
是否会产生对机器的不利影响?
是否会在压缩过程发生数据错位或丢失的情况?

或者还用什么更好的GZ格式的压缩办法,跪请各位大侠指点指点。

------解决方案--------------------
是否会产生对机器的不利影响?
A: CPU负载会很高,不知道你的计算机硬件配置。如果很多人使用的服务器上使用,要特别注意,尽量选择晚上用户很少的时候执行压缩动作。

是否会在压缩过程发生数据错位或丢失的情况?
A:不会,除非gzip有bug.

或者还用什么更好的GZ格式的压缩办法,跪请各位大侠指点指点。
A: tar -jcvf file-name.tar.bz2 original-file,bz2的压缩比似乎更好。如果想节省磁盘空间,建议用这个。


------解决方案--------------------
lzo是一个单独的算法,压缩率略小于gzip,速度却很高

服务器硬盘再快,除非是那种巨型的计算集群,一般中小型服务器I/O性能也不过就是PC的5-10倍吧(比如企业级硬盘+Raid5)

我的意思是说400G文件2个小时处理完不算慢了

至于瓶颈在哪里,得具体分析,看服务器的配置,一般一个gzip进程满速运算会占满一个CPU内核,所以总进程数别超过CPU内核数,至于硬盘么如果硬盘并发性能好,多个进程同时读写性能不降,那就尽量多呗,否则还不如少几个进程

可以在top里,看CPU的used和wait值,wait值过高说明I/O是瓶颈