我已经写了一些多线程测试,现在我想确保这个测试的最高 CPU 使用率等于100 * CPU_NUMBER当前机器的最高 CPU 使用率。有可能吗?
UPD 0:我说的是 Linux 系统。
我从 0.99 开始运行 GNU/Linux,直到最近几年我才看到kswapd使用任何严重的 CPU 时间。
在过去,交换系统会等待磁盘并且在等待磁盘响应时几乎不使用任何 CPU 时间。
发生了什么变化,以至于kswapd现在可以愉快地吃掉几乎一个完整的核心?
kswapdCPU 这么重是在做什么?
我有几台运行 Ubuntu 16.04 的服务器,它们的accounts-daemon进程突然占用了100% 的 CPU。
第一次出现在3周前,我搬家/var/log/wtmp重新创建,立即解决了问题。
这是我遇到的第一个解决方案,另一个是wtmp在proftpd.conf.
这样做是否有任何风险?它会解决问题吗?
我遇到的情况是,SFTP 传输中的加密过程会占用一个 CPU 核心。然而,我的 IO 带宽(磁盘、总线和网络)还远未达到最大。
话虽这么说,所讨论的系统有多个核心:我想在加密/解密过程中利用它们。
那可能吗?如果是这样,怎么办?
注意:如果可能的话,我想避免修改后的补丁集不足以包含在上游中OpenSSH。
在 Unix 或类 Unix 系统上,如何查看每个进程的 CPU 使用率百分比,分为用户和系统以及其他时间类别?top向我显示整个计算机或每个内核的整体“sy”、“us”、“wa”等,但我在手册中没有看到任何内容显示如何显示每个进程的这些统计信息。
为了说明... top 显示如下内容:
top - 18:11:58 up 9 days, 6:41, 17 users, load average: 2.42, 2.38, 2.47
Tasks: 2642 total, 4 running, 2638 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.9 us, 0.8 sy, 0.0 ni, 96.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 26413387+total, 26355763+used, 576240 free, 233544 buffers
KiB Swap: 8921084 total, 8920140 used, 944 free. 14931166+cached Mem
PID USER PR NI VIRT RES SHR S …Run Code Online (Sandbox Code Playgroud) 我有一个在 Linux (Ubuntu 12.14) 上用 C++ 编写的应用程序,它解码音频并找到峰值。此计算在后台线程上运行。在主 UI 线程中,我多次调用后台线程。当这个后台线程运行时,我看到大约 100% 的 CPU 利用率;也就是说,只有第一个内核的使用率为 100%,其余 3 个内核处于空闲状态(四核处理器)。
那么应用程序使用 100% 的 CPU 是好的行为吗?我读过一些帖子,其中指出:“通常,进程使用 100% 的 CPU 是一件好事。这意味着它会更快完成。”
我读过的另一个声明是,“如果您在满载或有主要应用程序运行时获得 75% 到 100% 的 CPU 使用率还不错;但是,如果这是在空闲时或不在时的读数使用个人电脑/笔记本电脑,这很令人担忧。”
我正在运行一台“信息亭”计算机——一个供房间内任何人通用的计算机——我想知道是否有人真的在使用它。是否有日志告诉我 Firefox、Chrome 或其他程序何时运行?
我不是要求他们在程序中做什么的日志,只是他们是否被使用。
欢迎任何其他想法。
我需要找出我编写的 bash 脚本需要多少资源。我主要对以下内容感兴趣:
内存
峰值磁盘使用量(磁盘空间)
CPU 时间:虽然在这里我不确定这究竟是指整个 CPU(包括物理 + 虚拟内核?)或仅使用的内核的执行时间。例如,我如何知道具有不同内核数的 CPU 需要多少 CPU 时间?
使用的核心数
这样做的原因是,我将向集群提交作业。每个作业都使用稍微更改的参数执行我的脚本。
我的计划如下,我在我的电脑上执行脚本以获取上述资源的峰值,然后确保仅使用具有所需资源量的集群节点。
或者甚至在脚本执行期间我将所需的内容写入某个文件更好。
到目前为止我做了什么:
RAM:在我的脚本中测量被调用程序的峰值 RAM,我猜测它具有最大的 RAM 使用量。(这是一个Mathematica脚本,我在其中使用了MaxMemoryUsed[]我后来从日志文件中提取的命令)
磁盘空间:我基本上使用du -sb. 而且,我还使用了df前后脚本。
CPU 时间:在我设置的脚本开始SECONDS=0和echo ${SECONDS}结束时(因为脚本是我唯一运行的,所以它应该对应于 CPU 时间?!)。我也曾经date得到一个粗略的估计。
我感谢所有的提示、评论和指向工具的指针以及我的问题的可能解决方案。
我也听说过valgrind。有没有人有这方面的经验。是否可以将其用于我的目的?
load average: 20.62, 18.83, 11.31
Run Code Online (Sandbox Code Playgroud)
这是四核处理器上的平均负载。我正在运行的程序不仅占用 CPU,还占用其他资源。
如何仅使用 CPU 显示此类数字?
我正在登录一个节点,我知道该节点的 cpu 使用率接近 100%(20 个单进程作业,每个作业使用几乎 100% cpu)。当我top交互使用时,第一次迭代,它给了我大约 20% 的使用率ni,下一次迭代以及正确使用后的所有迭代都提供了 95% 以上的ni使用率。我想要通过管道传输topvia的输出top -bn1 > outfile,但第一次迭代top -bn1(唯一的迭代)给出了不正确的 CPU 使用率。如果我使用top -bn2,那么第二次迭代会给出正确的用法,但输出太多。
我怎样才能top -bn1正确地给出CPU使用率?我正在编写此脚本用于使用情况统计,因此如果有必要,我可以返回并独立地对进程进行分析以生成我自己的 CPU 使用情况,但如果能够top立即为我提供正确的使用情况,那就太好了。
编辑:mpdstat -P ALL给我相同的、不正确的初始使用统计数据。如果能弄清楚这一点也很好。我可以使用mpstat -P ALL 1 1,但这会产生两次输出。
cpu-usage ×10
cpu ×2
linux ×2
monitoring ×2
top ×2
disk-usage ×1
kernel ×1
kiosk ×1
logs ×1
memory ×1
performance ×1
process ×1
swap ×1
testing ×1
ubuntu ×1