htop 中有很多红色——这是否意味着我的任务相互冲突?

htop 中有很多红色——这是否意味着我的任务相互冲突?

在此输入图像描述

我读到红色表示“内核进程”。这是否意味着小守护进程正在调节哪个任务可以使用 CPU?进而推而广之,超额认购系统中的交易成本?

我正在运行一些大型地理处理作业,并且有两个脚本同时并行运行。

第一个脚本在所有 96 个内核上进行实际处理。它负责几乎所有的内存使用。

第二个脚本用于curl下载数据以供第一个进程使用,并且它是并行执行的。我写它只是为了下载,直到有n_cores * 3文件下载为止。如果不满足该约束,它将等待一分钟左右,然后再次检查。因此,大多数时候它没有运行——或者更确切地说,它正在Sys.sleep()执行R.

我尝试过在下载过程中使用更少的内核。当我这样做时,它无法跟上处理脚本(我从 S3 DLing)。

TL;DR:如果我可以减少htop红色,我的流程会运行得更快吗?它们是红色的,因为进程多于核心吗?

答案1

红色代表在内核中花费的时间,通常代表进程处理系统调用。这包括花费在 I/O 上的时间。尝试这样做是没有意义的减少它只是为了减少它,因为这不是浪费的时间 - 这是内核花在做有用的事情上的时间(只要你不颠簸,所以看看上下文切换的数量等)。

我尝试过在下载过程中使用更少的内核。当我这样做时,它无法跟上处理脚本(我从 S3 DLing)。

表明您当前的设置在提供处理所需的 I/O 和处理本身之间是均匀平衡的,这是一个相当不错的结果。如果您怀疑运行的进程太多,并且那是造成浪费(通过抖动),那么您可以尝试减少地理处理作业的数量,以查看总体吞吐量是否增加。通常的基准测试技巧适用:确定要调整的内容,确定可能发生的结果变化及其含义,一次只调整一件事,然后测量所有内容。

相关内容