![终端服务器 CPU 使用率达到 100%](https://linux22.com/image/802451/%E7%BB%88%E7%AB%AF%E6%9C%8D%E5%8A%A1%E5%99%A8%20CPU%20%E4%BD%BF%E7%94%A8%E7%8E%87%E8%BE%BE%E5%88%B0%20100%25.png)
我正在运行一个大约有 50-60 个用户的终端服务器,服务器的使用率时常会从 40% 以上上升到 100%。我仔细观察了一下,似乎每次发生这种情况时,都会有一两个不同的用户陷入循环,最终使用率低于 30%,而其他用户最多只使用 5%。
我们使用的软件背后的公司声称这是由于服务器硬件不足(这是一个在双核 - 四核设置上运行的 VM 系统)造成的,在我看来这听起来很荒谬!
我对这个级别的 IT 还很陌生,所以如果我说错了,我深表歉意。我无法证明这一点,但我相信增加更多的原始硬件能力不会给我带来任何好处,因为在我看来,这似乎是他们软件中的一个错误,它会消耗尽可能多的(或很少的)CPU。
有问题的虚拟机有 4 个 vCPU 核心和 12 GB 可用 RAM,并且运行的是 64 位 Windows Server 2008
在此先感谢您的帮助!
注意:我在 SO 上发布了同样的问题,但被指向这个方向,所以为了以防万一,这里是帖子的链接https://stackoverflow.com/questions/17276602/termserver-cpu-at-100
答案1
根据您的目标,您可能希望使用线程锁并将导致高 CPU 使用率的程序锁定到第一个核心以外的一个或多个核心。这样至少可以保持一个或两个核心空闲,这样您的机器就不会被锁定,并且该程序中的“错误”或任何正在发生的事情都可以在自己的核心上继续执行它所做的事情。