如何解决如何测量/节流卷曲内存使用?
当 curl
可执行文件将其输出重定向到 stdout 时,其内存使用量是否与下载内容的总大小成正比?
如果我下载一个带有 curl
的 1GB tgz 并通过管道传输到 tar
-- 如下例所示 -- 使用的内存是否与 1GB 成正比?
curl -sSl https://path/to/1GB_file.tar.gz | tar -xvxf - -C /
如果答案是“是”,那么有没有办法“节流”或限制 curl
使用的最大内存,而不会彻底导致下载本身失败?
有没有一种方法可以测量 curl
在下载给定文件时使用了多少内存(动态或最大值)?
解决方法
我将提供这个作为答案,但它是从新的阅读/发现中拼凑而成的,所以这可能并不理想。
生成 curl
进程后,我在进程仍在运行时快速确定它的 pid
,并在另一个 shell 中运行 grep VmPeak /proc/<pid>/status
。这样做几次,希望在 curl
过程结束时接近,这样您就会得到一个真正全面的峰值。
对于 1.7GB 的文件,curl
似乎使用了 223016 kB 的峰值。
我认为这意味着 curl
并没有严格地使用与目标文件大小成比例的内存(即 >= 目标文件大小)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。