问题标签 [htop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 为什么 top 或 htop 的状态总是“R”(正在运行)?
top
和htop
是常用的监控进程和计算机资源的工具,但为什么top
总是自己的状态R
(在S
列top
)?例如,这里是top
命令的屏幕截图:
从top
( procps/top
) 的源代码中,它从文件 中获取进程状态/proc/<pid>/stat
,而在top
大多数情况下,S
如果使用以下命令连续打印,则状态为(睡眠):
bash - 自动重启 PID 的脚本
我想知道您是否有任何脚本可以获取正在休眠的进程的 PID (S) 并自动重新启动它
我使用脚本通过 PID 重新启动进程,但每次我都需要在脚本中传递 PID。有什么办法可以自动化吗?
linux - Linux 高 cpu 使用率 - htop 显示 90% 到 100% cpu 使用率
我在笔记本电脑上安装了一个新的 Manjaro Linux,它工作正常,但是当我运行 htop 命令时,我注意到 CPU 使用率很高。其中一个核心一直忙于接近 100%,第二个核心在 90% 左右(我有 4 个核心,其余 2 个运行正常)。笔记本电脑可以使用,但我的电池消耗比以前更快。
我已经找到了解决方案并将其发布在这里,希望能帮助像我这样的 Linux 初学者。
homebrew - Htop 立即关闭 Apple Silicon (MacBook Air M1)
我安装了 Homebrew(非 Rosetta),然后安装了 htop。安装过程成功完成,但 htop 不起作用。它只是在开始时被杀死。
~ 酿造配置
尝试运行 htop:
我将不胜感激任何帮助。
python - 如何在 python 中使用多处理而不复制大型只读字典
我有一个查找表LUT
,它是一个非常大的字典(24G)。我有数百万个输入来对其执行查询。
我想将数百万个输入拆分为 32 个作业,并并行运行它们。由于空间限制,我无法运行多个 python 脚本,因为这会导致内存过载。
我想使用该multiprocessing
模块只加载LUT
一次,然后让不同的进程查找它,同时将它作为全局变量共享,而不必复制它。
但是,当我查看 时htop
,似乎每个子进程都在重新创建LUT
? 我提出这个要求是因为在VIRT
, RES
, SHR
. 数字非常高。但与此同时,我没有看到该Mem
行中使用的额外内存,它从 11Gb 增加到 12.3G 并且只是悬停在那里。
所以我很困惑,是它,还是不是LUT
在每个子流程中重新创建?我应该如何继续确保我正在运行并行工作,而不在每个子进程中复制 LUT?代码如下图所示。
python - 当我限制“线程”的数量时,我在设置什么?
我有一个使用库的有点大的代码numpy, scipy, sklearn, matplotlib
。我需要限制 CPU 使用率以阻止它消耗我计算集群中的所有可用处理能力。按照这个答案,我实现了以下代码块,该代码块在脚本运行后立即执行:
我的理解是,这应该将使用的核心数量限制为 4,但显然这并没有发生。这是htop
为我的用户和该脚本显示的内容:
有 16 个进程,其中 4 个显示 CPU 百分比高于 100%。这是以下内容的摘录lscpu
:
我还在multiprocessing
我的代码中使用该库。我使用multiprocessing.Pool(processes=4)
. 如果没有上面显示的代码块,脚本坚持使用尽可能多的内核显然multiprocessing
完全忽略了。
那么我的问题是:当我使用上面的代码时,我有什么限制?我应该如何解释htop
输出?
bash - 用于监控进程的 CPU 利用率并在 Linux 中以某个阈值自动关闭的脚本
我想编写一个 bash 脚本来监视系统(ubuntu 虚拟机)使用 htop、top、ps 等对特定进程的 cpu 利用率,并在该进程空闲或更好地在某个最小阈值后自动关闭一定的持续时间说30秒。
如果我能获得一个比较代码来监控所有系统进程的总 cpu 利用率并在一定时间后以定义的阈值自动关闭,这也将非常有帮助。
请问有人可以帮助指导我完成这个吗?
docker - Docker 在杀死进程后分配了 RAM
我在 Docker 容器上看到我的进程占用了 RAM,但它似乎产生了泄漏。
我做了以下步骤:
- 创建 docker 而不运行任何东西并
docker stats [CONTAINER_ID]
以正确的结果执行:
- 然后我启动了一个等待队列输入的进程(但我不会发送任何输入来检查其在侦听过程中的占用情况)。该进程分配资源是因为它加载了一些模型:
和这些统计数据:
- 然后我停止该过程并以相同的方式重新启动它:
令人难以置信的是 RAM 占用量是以前的两倍!进程被杀死了,但是就像之前进程的模型仍然加载在 Docker 中一样。
- 再次杀死该进程后,无需重新启动它:
有些资源是在没有任何进程运行的情况下分配的。我看到了不同的 RAM使用htop
情况:800MiB,这对于什么都不做来说太多了,并且与docker stats
.
我试图重复这一点,似乎在 2 次启动后,RAM 块在 8GiB 上(在其他尝试中也没有超过),但这种行为是否正常?如何清理 Docker 上的 RAM?
编辑
经过一些实验,我尝试将最大 Docker 内存限制为 7GB,以便killed
在“第一次增加 RAM”之后看到容器。但是有了这个新配置,RAM 稳定在4.628GiB。
再次将限制设置为 13GB,RAM 在第二次运行时恢复为8.451GiB。奇怪的是,在这个增量之后,在接下来的步骤中似乎不再增加了。如果我加载更少的模型,为了分配更少的内存,每次启动脚本时似乎都会增加内存。
所以我的直觉是Docker缓存了一些资源,但是如果达到内存的限制,它就会释放缓存并分配新的资源。free -m
使用我在开头看到的命令:
并在第一次启动后:
见场buff/cache
。我不知道这是否正确