我有一个运行大量 cronjobs 的系统。似乎这些 cron 之一有时会消耗过多的 CPU 和内存。
有没有一种简单的方法来审计 cron 作业的 CPU 和内存使用情况?
即使没有用户进程在运行,内核进程是否也不会使 CPU 保持足够活跃,以防止它进入更深的 C 状态,如 C1 或 C2 ?
当我们运行 top 时,我们偶尔会看到一个正在使用 %CPU 的休眠进程“S”;我希望所有睡眠进程都使用 0% CPU,因为它们不活动。我希望只有运行“R”的进程在顶部积极消耗 %CPU。例如,查看这些休眠的 Oracle 进程
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11975 oracle 15 0 16.8g 2.6g 2.6g S 8.9 5.5 56:28.38 oracle
5837 oracle 15 0 16.8g 1.8g 1.7g S 6.6 3.7 10:04.11 oracle
12248 oracle 15 0 16.8g 1.6g 1.6g S 5.9 3.4 12:02.33 oracle
21253 oracle 15 0 16.8g 1.6g 1.6g S 4.3 3.4 12:33.83 oracle
Run Code Online (Sandbox Code Playgroud)
我的想法是,在这种情况下,对于 Oracle,CPU 活动由许多低于 Top 的 1 秒时间粒度的短脉冲组成。这意味着使用计数器已更新但 Top 没有看到“R”状态,因为它太短了。
有什么想法吗?
我最近开始使用使用嵌入式 Linux 和 BusyBox 的设备。它非常精简,没有iostat或sar。它也没有用于包管理的dpkg或apt 。该系统是一个保密协议下的开发黑盒,操作系统版本信息是:
Linux localhost 2.6.34 #1 SMP Fri Sep 14 10:12:23 EDT 2012 armv7l GNU/Linux
Run Code Online (Sandbox Code Playgroud)
我想监视系统资源,特别是 CPU 和内存使用情况,并且想知道如何执行此操作。看来 BusyBox 唯一可用的命令是top,我想要其他替代方法。
我想我可以在我的 Windows 开发系统上交叉编译sar并以某种方式将其复制过来,但我从未这样做过......但是,如果这是我的最佳选择,我愿意尝试一下,所以该领域的提示将受到赞赏。
编辑:在阅读了SAR 的 Linux 实现之后,看来我不会简单地交叉编译sar,而是包含sar和其他相关命令的sysstat实用程序套件。
我有一个 Synology DS213j,我使用 Windows 资源管理器通过内置 VPN 服务器(我使用 OpenVPN)通过 VPN 访问它。
将文件复制到我的本地硬盘驱动器非常慢,只有 ~170 KB/s 的范围。这似乎受到 100% 的 Synologys CPU 的限制。查看 DSM 中的资源监视器,它显示 smbd 进程占用了 >90% 的 CPU。
NAS 运行 DSM 版本 5.2-5592。规格说它有一个 1.2 GHz 的 CPU。这不应该比这更多吗?
我读过 DSM 5.2 版本有这种问题,它们对于较旧的 NASes 来说是重量级的。版本 6 的性能更好吗?我应该降级到4吗?或者这不是操作系统中的问题,可以通过其他方式解决吗?如何?
我使用的是 Service Pack 2。我的 CPU 使用 svchost.exe 或 services.exe 以 100% 的速度运行。我知道这在 XP、服务器 2000 等中很常见。但现在我似乎只找到适用于 Vista 的帖子。是什么原因?
我有一个具有以下规格的专用服务器:
问题是,即使有这样的规格,MySQL 仍然需要很高的 CPU 使用率。它几乎一直保持在 150% 以上,大部分时间都在 300% 以上。我在运行“top”命令后才知道这一点。现在,只要我运行“watch mysqladmin pr”来查看发生了什么,我就看不到任何问题。虽然有查询在运行,但它们不像一些非常繁重的查询,除了可能是一两个。
我运行了“mysqltunner.pl”,它显示了以下内容:
-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 362M (Tables: 255)
[--] Data in InnoDB tables: 880K (Tables: 55)
[!!] Total fragmented tables: 2
-------- Performance Metrics -------------------------------------------------
[--] Up for: 3h 26m 51s (1M q [138.122 qps], 43K conn, TX: 3B, …Run Code Online (Sandbox Code Playgroud) 我负责编写我们的 web 和数据库应用程序以及 web 服务器的流畅运行,它在 Windows Server 2003 下运行 IIS6。这台机器是旧服务器,2003 年老式。
出于某种原因,任务管理器中的性能选项卡显示服务器的 CPU 使用率飙升至 100% 并在那里停留 5 秒左右,然后下降到几乎为零,然后再次飙升。列出的进程都没有消耗任何 CPU。
我如何找出哪个进程像这样占用 CPU?
我对 Linux 平均负载的粗略理解是,对于每个整数,CPU 内核一直在工作。例如,1 表示在 4 核系统上,1 核正在满负荷工作。超线程如何影响这个?它甚至被考虑在平均负载中吗?
我一直在寻找在 KVM 来宾之间划分 CPU 的方法,而不仅仅是设置 vCPU 访问限制。我理解 cpu_shares 的概念,它可以用 设置/显示virsh schedinfo,但我也发现vcpu_period并vcpu_quota列出了这个命令,如下所示:

查看手册页,我知道可接受的输入值是什么,但是有人可以简单解释一下这两个参数的实际作用吗?