gen*_*ser 10 kernel curl htop r parallelism
我读过红色表示“内核进程”。这是否意味着小守护进程正在调节哪个任务可以使用 CPU?推而广之,超额认购系统中的交易成本?
我正在运行一些大规模的地理处理作业,并且我有两个同时并行运行的脚本。
第一个脚本在所有 96 个内核上进行实际处理。它负责几乎所有的内存使用。
第二个脚本用于curl
下载数据以提供给第一个进程,并且它是并行执行的。我写它只下载直到有n_cores * 3
文件下载。如果不满足该约束,它会等待一分钟左右,然后再次检查。所以,大部分时间它没有运行-或者更确切地说,它正在执行Sys.sleep()
的命令R
。
我已经尝试在下载过程中使用更少的内核。当我这样做时,它跟不上处理脚本(我正在从 S3 进行 DLing)。
TL;DR:如果我可以htop
减少红色,我的流程会运行得更快吗?它们是不是因为进程数多于核心数而变红?
Ste*_*itt 15
红色代表在内核中花费的时间,通常代表进程处理系统调用。这包括花费在 I/O 上的时间。仅仅为了减少它而试图减少它是没有意义的,因为这不是浪费的时间——它是内核花在做有用事情上的时间(只要你没有颠簸,所以看看上下文的数量开关等)。
我已经尝试在下载过程中使用更少的内核。当我这样做时,它跟不上处理脚本(我正在从 S3 进行 DLing)。
表明您当前的设置在处理处理所需的 I/O 和处理本身之间是平衡的,这是一个相当不错的结果。如果您怀疑运行的进程太多,这会造成浪费(通过颠簸),那么您可以尝试减少地理处理作业的数量,看看您的总体吞吐量是否会增加。通常的基准测试技巧适用:确定您要调整的内容,确定可能发生的结果变化及其含义,一次只调整一件事,并衡量一切。
归档时间: |
|
查看次数: |
8309 次 |
最近记录: |