我正在将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-重载.html
至于你的第一个问题,操作系统会为你做缓冲,你不必担心。即使您的 RAM 不够大,缓冲也会写入磁盘,但 GZIP 仍然会更慢。
至于加速 gzip,您可以尝试pigz,它使用多个处理器/内核。