【发布时间】:2013-02-17 07:30:31
【问题描述】:
我正在将mysqldump的结果传给gzip,gzip的速度似乎大大落后了
gzip:34.9MiB 0:01:54 [218kiB/s] mysqldump:735MiB 0:01:54 [5.73MiB/s]2 个问题:
1. 如果 gzip 赶不上,这最终会破坏管道吗?管道是否将所有这些数据保存在内存中?
2. 我将如何加速 gzip(已经知道 -9 与 -1 压缩选项)?
【问题讨论】:
我正在将mysqldump的结果传给gzip,gzip的速度似乎大大落后了
gzip:34.9MiB 0:01:54 [218kiB/s] mysqldump:735MiB 0:01:54 [5.73MiB/s]2 个问题:
1. 如果 gzip 赶不上,这最终会破坏管道吗?管道是否将所有这些数据保存在内存中?
2. 我将如何加速 gzip(已经知道 -9 与 -1 压缩选项)?
【问题讨论】:
GZIP 受 CPU 限制。所以你可以像你说的那样降低压缩率,但你不会获得太多的速度。试着戳一下 LZO,速度快很多(压缩率没那么好,但我觉得这是一个很好的权衡)
你可以在这里找到一个好的基准:http://stephane.lesimple.fr/blog/2010-07-20/lzop-vs-compress-vs-gzip-vs-bzip2-vs-lzma-vs-lzma2xz-benchmark-reloaded.html
至于你的第一个问题,操作系统会为你做缓冲,你不必担心。即使您的 RAM 不够大,缓冲也会写入磁盘,但 GZIP 仍然会更慢。
【讨论】:
至于加速gzip,你可以试试pigz,它使用多个处理器/内核。
【讨论】: