小编Yan*_*Zhu的帖子

正确的 xargs 并行使用

我正在使用xargs一个 python 脚本来处理大约 3000 万个小文件。我希望用来xargs并行化这个过程。我使用的命令是:

find ./data -name "*.json" -print0 |
  xargs -0 -I{} -P 40 python Convert.py {} > log.txt
Run Code Online (Sandbox Code Playgroud)

基本上,Convert.py会读入一个小的json文件(4kb),做一些处理并写入另一个 4kb 文件。我在具有 40 个 CPU 内核的服务器上运行。并且此服务器上没有运行其他 CPU 密集型进程。

通过监控 htop(顺便说一句,有没有其他好的方法来监控 CPU 性能?),我发现它-P 40没有预期的那么快。有时所有内核会冻结并在 3-4 秒内几乎降至零,然后恢复到 60-70%。然后我尝试将并行进程的数量减少到-P 20-30,但它仍然不是很快。理想的行为应该是线性加速。对 xargs 的并行使用有什么建议吗?

xargs parallelism

10
推荐指数
2
解决办法
9681
查看次数

如何为一个巨大的文件夹创建多 tar 档案

我有一个包含 30M 小文件的大文件夹。我希望将文件夹备份成 30 个档案,每个 tar.gz 文件将有 1M 个文件。拆分成多个档案的原因是解压一个大档案需要一个月的时间。要拆分的管道 tar 也不起作用,因为在解压文件时,我必须将所有档案一起分类。

另外,我希望不要将每个文件 mv 到一个新目录,因为对于这个巨大的文件夹,即使是 ls 也是非常痛苦的。

linux filesystems tar large-files

7
推荐指数
1
解决办法
5960
查看次数

标签 统计

filesystems ×1

large-files ×1

linux ×1

parallelism ×1

tar ×1

xargs ×1