首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >时间自适应压缩工具

时间自适应压缩工具
EN

Unix & Linux用户
提问于 2019-06-07 08:25:15
回答 1查看 378关注 0票数 4

我在询问一个将一个大文件复制到远程服务器的场景。

最简单的例子是:

代码语言:javascript
复制
tar c myfile | ssh myserver tar x

如果网络连接速度快,那么一切都很好。

在一个速度较慢的网络上

代码语言:javascript
复制
tar c myfile | bzip2 -1 | ssh myserver tar xj

-以CPU时间为代价,使我的传输速度更快。

当然,我可以使用压缩比,通常尝试猜测正确的压缩比,这样我的CPU就不会太忙,网络也饱和了。

是否有压缩实用程序或压缩标志可以告诉bzip2/xz/.在输出缓冲区繁忙时尽可能压缩吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-06-07 08:53:34

代码语言:javascript
复制
zstd --adapt

zstd压缩效用有一个打开自适应压缩的选项(该选项是在zstd v1.3.6中添加的)。这将调整压缩到“当前感知的I/O条件”。

有关更多信息,请参见zstd手册。

完整的管道可能如下所示:

代码语言:javascript
复制
tar -c -f - source_directory |
zstd --adapt |
ssh user@server 'cd /someplace && { zstd -d | tar -x -f -;}'

代码语言:javascript
复制
tar -c -f - source_directory |
zstd --adapt |
ssh user@server 'zstd -d | tar -x -C /someplace -f -'

如果将-v添加到管道中的第一个zstd中,您将得到一个进度指示符行,其内容如下

代码语言:javascript
复制
(L7) Buffered :  32 MB - Consumed : 192 MB - Compressed :  72 MB => 37.50%

其中,(L7)指示压缩级别。对于任何中等数量的数据,您都会期望它会随着时间的推移而波动,这表明zstd确实适应了I/O条件(大概也适应了数据本身)。

票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/523491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档