请帮助完善我们商店中正在进行的讨论。
考虑以下场景。有一个运行多个应用程序和服务的 Microsoft VPC(Windows 2003 服务器)。服务器有两个或三个关键角色。每隔一段时间,CPU 利用率就会持续达到 100%。罪魁祸首之一是遗留应用程序,此时唯一真正的解决方案是重新启动服务。此后,CPU 利用率恢复到合理水平(平均为 60-80%)。然而,较少情况下,当服务器处于 100% CPU 时,另一项服务似乎正在使用最大份额,即解析日志的安全应用程序。我们的运营团队的冲动是在 CPU 挂起时重新启动它。我们的安全团队指出这是毫无意义的,因为此服务以低于正常的优先级运行,因此有效地不会剥夺任何其他进程的 CPU。安全性认为,在这些情况下 100% 的 CPU 使用率实际上不应被视为临界条件。如果一个BelowNormal 优先级进程使用了大部分CPU,那么实际上根本没有CPU 不足。另一方面,运营部门怀疑 100% 的 CPU 利用率是否真的可以成为没有不利后果的条件,并且不想忽视它。谁是对的?安全是没有什么可担心的,或者我们应该做些什么?谁是对的?安全是没有什么可担心的,或者我们应该做些什么?谁是对的?安全是没有什么可担心的,或者我们应该做些什么?
windows-server-2003 virtual-machines process-priority cpu-usage
我们有一台运行 SQL Server 2008 的 Windows 2008 R2 服务器。突然之间,SQLServer 进程拒绝超过 20% 的 CPU 使用率。截至上周,当对数据库运行大量查询时,它的使用率将上升到我预期的 100%。我们已经拥有这台服务器一段时间了,它突然有了这个限制似乎很奇怪。这个限制导致我们的查询比平时花费的时间更长。没有人(至少在知情的情况下)对服务器配置进行过任何更改。
经过一番调查,我发现了 sys.dm_os_sys_memory 视图。这显示“可用物理内存很高”,同时可用物理内存为 339552kb,其中总数为 4193848kb。值得注意的是,这是一个运行在 vmware 上的虚拟服务器。
SQL Server 中是否有设置最大 CPU 使用率的设置?我在资源调控器中找到了设置,尽管目前它一直处于关闭状态。
我们最近开始使用 Quest Software 的 Spotlight for SQL Server。它的播放数据库今天早上在这台服务器上有很短的时间,我第一次注意到这个问题,虽然在此之前我没有做任何查询,所以我不知道这是否是问题所在开始,但是数据库在周五下午按预期工作。Windows 日志显示以下设置在创建时应用于 SpotlightPlaybackDatabase。
来自 StackOverflow 的 X-Post:
我们有一个包含 3 个网络服务器的网络集群,每个服务器有 24 个内核和 24GB 内存。
我们的应用程序是最新修补的 ASP.NET 4.0,带有 MVC3,在 IIS 7.5 上 - 在它自己的应用程序池中。
非常间歇性地,(可能每 2/3 天一次)其中一个网络服务器将停止服务请求,并且所有 24 个内核将显示 100% CPU(内存和磁盘看起来正常)。
有几次 IIS 管理器没有完全冻结,主动运行的请求似乎没有提供任何有用的信息,而是随机分布在大量站点区域/请求中。
一旦服务器死机,我们就可以将它从负载中取出 - 在可能 5 分钟不再提供服务请求后,CPU 活动将回落到正常状态 - 让我们认为这不是一个无限循环。
工作进程的内存转储(大约 4GB 的大小!)似乎没有在任何托管堆栈跟踪中的任何地方显示我们的任何代码/命名空间 - 但只是 .Net begin 请求内容(我可能正在使用 WinDbg错误 - 并且没有正确加载我们的符号 - 但堆栈跟踪没有显示任何丢失/未命名的方法调用 - 所以我很困惑)
我们的服务器通常很高兴地处理 1000 个请求/秒,所以这一切都很奇怪。
我们在 Perfmon 中注意到的一件奇怪的事情是争用率 / 秒接近 800。我们的应用程序中没有任何花哨的多线程代码,我们拥有的唯一锁是我们的缓存代码(没有时代变了)。
任何有关如何进一步诊断此问题的建议/技巧将不胜感激。
干杯。
我正在 AWS ec2 上运行一个 ubuntu gpu 实例。我不确定我的应用程序是否使用 GPU 加速。那么如何检查 aws gpu 实例上的 gpu 使用情况?
我正在运行一个 memcached 服务器,它为两个前端服务器提供服务。它们使用标准 PECL 库从 Apache2/PHP 连接到 memcached 服务器。
由于某种原因,服务器上的 memcached 消耗越来越多的 CPU,直到达到 100%。
我使用以下参数运行 memcached:
/usr/bin/memcached -d -m 128 -p 11211 -u memcache -l 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
我发现的另一个有趣的事情是前端服务器和 memcached 服务器之间有很多开放连接(200)
netstat -n
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 30 10.2.10.69:11211 10.2.10.193:49393 ESTABLISHED
tcp 0 30 10.2.10.69:11211 10.2.10.172:52918 ESTABLISHED
tcp 0 30 10.2.10.69:11211 10.2.10.193:39677 ESTABLISHED
tcp 0 30 10.2.10.69:11211 10.2.10.193:46480 ESTABLISHED
tcp 0 30 10.2.10.69:11211 10.2.10.172:58869 ESTABLISHED
tcp 0 30 10.2.10.69:11211 10.2.10.193:38498 ESTABLISHED …Run Code Online (Sandbox Code Playgroud) 我有一台服务器,我想确保它始终以最大速度运行,从不处于节能模式。我尝试了一些策略(除了重新启动和更改 bios 中的设置,我必须为几百台服务器执行此操作)但是我从cpufreq-info. 例如:
root@host:~# cpufreq-info -c 0
cpufrequtils 007:cpufreq-info (C) Dominik Brodowski 2004-2009
请向 cpufreq@vger.kernel.org 报告错误和错误。
分析 CPU 0:
驱动程序:acpi-cpufreq
以相同硬件频率运行的 CPU:0
需要通过软件协调其频率的 CPU:0
最大转换延迟:10.0 us。
硬件限制:1.20 GHz - 2.20 GHz
可用频率步长:2.20 GHz、2.20 GHz、2.10 GHz、2.00 GHz、1.90 GHz、1.80 GHz、1.70 GHz、1.60 GHz、1.50 GHz、1.40 GHz、1.30 GHz、1.20 GHz
可用的 cpufreq 调控器:conservative、ondemand、userspace、powersave、performance
当前政策:频率应在 2.00 GHz 和 2.20 GHz 之间。
调控器“性能”可以决定使用哪种速度
在这个范围内。
当前 CPU 频率为 1.20 GHz(通过调用硬件断言)。
cpufreq 统计信息:2.20 GHz:6.50%、2.20 GHz:0.24%、2.10 GHz:0.34%、2.00 GHz:0.05%、1.90 GHz:0.04%、1.80 GHz:0.03%、1.06GHz%3.060GHz , 1.50 GHz:0.03%, 1.40 GHz:0.03%, 1.30 GHz:0.03%, 1.20 … 我正在监控一个 Cpanel (centos) 服务器,它有一个 2 核 CPU(4 个虚拟 CPU 核),它似乎过载了,因为我使用top以下方法获得了这个值:
load average: 11.80, 13.30, 13.02
Cpu(s): 42.2%us, 11.7%sy, 0.0%ni, 35.6%id, 10.1%wa, 0.1%hi, 0.3%si, 0.0%st
Run Code Online (Sandbox Code Playgroud)
但是,如果我查看过程列表(使用 top 或 ps),则没有过程使用超过 1%
此外,进程 CPU 使用率 (%) 的总和等于 4,如果我什至假设 0% 值是四舍五入的数字,并将其更改为 0.04(使用 1 个十进制数字四舍五入为 0),则总和为 11(仍然小于100%)。
我如何正确解释这些数据?是否有一些隐藏的过程使我的 CPU 过载。
我被要求调查今天早上发生的高 CPU 使用率警报。我使用sar -p并看到当时出现的高CPU使用率
接下来我曾经ps -eo pcpu,pid,user,args | sort -r -k1 | less列出了这个时间前 10 名的内存猪
现在我如何找出早上那个特定时间导致瓶颈的进程。我是一名 Java 开发人员,而不是 Linux 专家。
甚至有可能吗?
我们有一个运行 R-Studio Server 的 Ubuntu Server (16.04),我们在其中进行统计模拟。这些模拟有时对 RAM 和 CPU 影响很大,所以我想知道内核如何分配内存和 RAM,例如,如果两个用户登录并且他们每个人都运行一个单独的 R 会话,在那里他们“竞争”内存和 CPU。
由于我们都不是服务器管理员,因此我们并不真的想应用手动更改,但是我们感兴趣的是 RAM 和 CPU 分配是否更不等于所有用户。
注意:R-Studio Server Pro 版本允许以非常简单的方式为单个用户分配给定数量的内存,但由于我们没有 Pro 版本,我们无法更改这些设置。
ubuntu memory central-processing-unit cpu-usage memory-usage
我们有一个长时间运行的高性能操作,运行时间为 6 小时。当它最后一次运行时,发生了 5 分钟的事情,在半夜它的性能急剧下降并导致了几次超时。我怀疑还有其他一些进程启动并破坏了 CPU 或类似程序。
本站搜索的建议是使用ProcessMonitor来监控CPU。然而,它似乎只在运行时捕获流量,而且它是一个桌面应用程序。我的windows server 实例闲置10 分钟后踢你,受组策略控制,我无法更改它,所以我不能使用桌面应用程序进行监控。
我需要监控 24 小时内的 CPU 使用率。我只对进程名称和 cpu 使用率 (%) 感兴趣,因此我可以找出是什么(如果有的话)正在启动并破坏事物。
因为你被踢了,所以我真的需要一些可以作为 Windows 服务运行的东西。
有什么方法可以做到这一点(使用 ProcessMonitor 或类似的工具 - 当然 Windows Server 有内置的东西?)作为一项服务,所以我不需要登录到远程桌面,或者我将不得不找到某种鼠标移动脚本并让我的电脑整夜开着?
编辑:
性能监视器看起来很有希望。很难找到如何配置它来给我想要的东西。
我做了一个自定义数据收集器 cpu 和进程 ID:
我想要做的是能够在特定时间查看每个进程的 CPU 使用率,就像您可以在任务管理器中做的那样,除了图表和在监视期间的任何点查看快照的能力。
所以我可以看到一个 24 小时的图表,看到出现峰值的点,点击它,看看是哪个过程导致了它。
我什至不相信我上面的配置如果我让它工作也会告诉我进程名称,它说进程 ID,如果结果是一个 guid 或类似的,这可能也没有帮助,特别是如果进程开始和停止当我去调查时,它已经不在运行了。
cpu-usage ×10
linux ×3
amazon-ec2 ×1
asp.net ×1
asp.net-mvc ×1
centos ×1
iis-7.5 ×1
load-average ×1
memcached ×1
memory ×1
memory-usage ×1
monitoring ×1
mvc ×1
performance ×1
process ×1
sar ×1
sql-server ×1
ubuntu ×1