我有一个在 Amazon EC2 上运行的 CentOS 5 实例。正常的CPU使用率徘徊在10-20%左右。然而,在过去一周大约有 4 次,CPU 使用率突然飙升至 100%,并且一直保持在 100% 不变,直到重新启动实例。
我确定这是服务器上的错误或配置错误,但是当实例进入此状态时,我无法通过 SSH 登录进行任何调查。不幸的是,Amazon 不提供通过控制台访问实例的方法。
所以,我想我的问题是——有没有一种方法可以配置机器,使得在任何 100% CPU 的情况下,我们优先使用 SSH 来允许 root 登录并进行调查?
或者至少,当发生这种情况时,是否有任何简单的方法可以自动终止任何进程?
顺便说一句,这是亚马逊上的“C1.xlarge”实例,这意味着它有8个核心。
此外,如果有帮助,请将计算机设置为运行 Plesk 的 Web 服务器。并且不要告诉我 Plesk 无法在 EC2 中运行,因为几个月来我一直做得很好......直到最近。该机器已经在运行 PLesk 版本的 monit,所以我不想设置第二个 monit。
我的系统是SUSE 10,我top在使用时观察到它占用了57%的CPU使用率。

我没有太多进程:
ps -eLf | wc -l
106
Run Code Online (Sandbox Code Playgroud)
以下是top的统计数据:
cat /proc/2913/stat
2913 (top) R 2879 2913 2879 34819 2913 8396800 411 0 0 0 60648 199580 0 0 17 0 1 516504552 4811013274 2383872 285 4294967295 134512640 134596384 3215474448 3215470376 3085449998 0 0 0 138047495 0 0 0 17 3 0 0 0
cat /proc/2913/status
Name: top
State: R (running)
SleepAVG: 79%
Tgid: 2913
Pid: 2913
PPid: 2879
TracerPid: 0
Uid: 0 0 0 0 …Run Code Online (Sandbox Code Playgroud) 单核Linux系统上CPU使用率是如何计算的?
Cpu(s): 28.1%us, 6.5%sy, 0.0%ni, 43.0%id, 21.6%wa, 0.0%hi, 0.5%si, 0.2%st
Run Code Online (Sandbox Code Playgroud)
请解释一下us、sy、ni、id、wa、hi和si值st是如何获得的。
我有一台运行 Ubuntu Server 12.04 LTS 的服务器(2x Hexa-Core Xeon E5649 2.53GHz w/HT with 32GB RAM and 20000 GB Bandwidth)。服务器运行 LAMP,仅服务于一个网站,同时估计用户数约为 15,000。
目前我有大约 2000 个在线用户,他们每个人从会话开始到结束运行 50 个 MySQL 查询(小值主要是选择和插入)。服务器 CPU 负载在此连接数下很高,而 RAM 使用量几乎是 32GB 中的 1GB,值得一提的是,服务器运行速度非常快,完全没有问题,但我担心平均负载。http://s12.postimage.org/z7hi6mz3h/photo.png
top - 03:02:43 up 9 min, 2 users, load average: 50.83, 30.14, 12.83
Tasks: 432 total, 1 running, 430 sleeping, 0 stopped, 1 zombie
Cpu(s): 0.1%us, 0.2%sy, 0.0%ni, 66.5%id, 33.1%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 32939992k total, 3111604k used, 29828388k free, 84108k buffers
Swap: 2048280k total, …Run Code Online (Sandbox Code Playgroud) I am having some troubles with CPU loading an memory with Apache Web Server.
We are running a Ubuntu Server 12.04 LTS on a Virtual Machine. Our server have the following specs:
We configured the server to run a Drupal (7.23) based website. So, we installed Apache, PHP, MySQL... The versions are below:
我们拥有相当合理规模的 vSphere“资产”,我们 80% 的 Windows/Linux 服务器已虚拟化,运行在六个数据中心。我面临的挑战之一是中长期容量规划,确保我在年度资本支出预测中获得足够的资金,以确保为主机升级(通常是内存)、更多主机(硬件和 ESX 许可证)或最坏情况下的 SAN 扩展提供资金。
不管怎样,直到最近,我还是很乐意接受 vCenter 的性能统计数据作为真正代表正在发生的事情。在查看统计信息时,我通常在集群级别工作,因为每个集群中的主机都具有相同的规格、升级等。
然而,我最近注意到一些让我感到不安的事情。我的一个集群有 200GHz 的 CPU“带宽”可用,其组成如下:
5 hosts x 2 sockets-per-host x 6 cores-per-socket x 3.33GHz per-core = 199.8GHz
Run Code Online (Sandbox Code Playgroud)
这很好,vCenter 正确报告了这个值。但是,当您在 vCenter 中查看集群的 CPU 利用率或使用 PowerCLI 的Get-Stat cmdlet提取统计信息时,CPU 利用率有时会超过 300GHz。这会打乱我的计算,因为利用率达到 150% (!)。现在,我已经很长时间没有做 A-level 数学了,但我看不到 CPU 是如何被 150% 使用的...
因此,我记录了与 VMware 支持的电话。而且,可笑的是,他们说我需要购买 vCenter Operations Manager (vCOPS) 才能完成我想做的事情。好吧,不,谢谢,如果我有一些准确的统计数据,我可以做我自己的决策支持(对不起,咆哮了)。
所以,我提出了一个解释,支持人员说 vCenter 中的数据基于使用平均值总和的“通用”计算。嗯,平均数据样本是很正常的,也可以接受,但我仍然无法理解你怎么能超过 100%。
所以,我一直在尝试自己解决这个问题,我想知道 Xeon 的超线程或“turbo”功能是否会影响结果。然而,“turbo”提升仅从 3.33GHz 到 3.6GHz,即:8%。
有什么线索吗?
performance central-processing-unit vmware-esx utilization vmware-vcenter
我正在配置一些 VMware 和 Virtualbox VM,包括 32 位和 64 位,并且我所有的引导命令都以/install/vmlinuz noapic.
在网络上搜索有关 APIC 等的信息并没有给我一个明确的答案何时使用 APIC。
Does it depend on the amount of CPU cores the machine has installed?
Should APIC be disabled when used on virtual machines?
Does it depend on special features supported by the CPU?
Does it matter if it's a 32 or 64 bit OS/machine?
Is APIC generally a bad thing, because still unstable?
Does it matter setting noapic in the boot command or will the …
hardware virtualization virtual-machines central-processing-unit
我们有一个在 Xen 上运行 Ubuntu 的 VPS。问题是,大约每天一次,大约 20-50 分钟,随机时间,服务器对外界完全没有响应。在这段时间之后,它再次变得响应,好像什么也没发生过一样,它不会失去正常运行时间,也不会重新启动。它只是再次开始响应,就好像它一直处于假死状态一样。
这些中断发生在非异常内存和 cpu 的条件下,例如 70% mem、5% cpu。我已经停止了所有非必要的服务,所以使用非常均匀。这些中断不会特别发生在内存/cpu 增加时(在日常任务期间),它们有时会在 cpu 使用率非常低 (<2%) 时发生,但在过去也发生在交换期间。
这些停电在 Ubuntu 12.04 LTS 和 Ubuntu 14.04 LTS 下都发生过——根本没有变化(我专门升级了 Ubuntu,看看它是否有助于解决这个问题)。
可以登录我们的虚拟主机站点,并使用他们的管理控制台查看这段时间内的错误消息。据推测,这些消息来自 Xen 虚拟化,主要消息如下:
BUG: soft lockp - CPU#0 stuck for 22s! [ksoftireqd/0:3] (repeats many times)
SysRq : Emergency Sync (Sometimes this is the only message in the console)
Run Code Online (Sandbox Code Playgroud)
之前在不同负载情况下看到的其他情况包括:
BUG: soft lockup - CPU#0 stuck for 22s! [swapper/0:0]
Run Code Online (Sandbox Code Playgroud)
(重复多次)或:
INFO: rcu_sched detected stall on CPU 0 (t=15000 jiffies)
Run Code Online (Sandbox Code Playgroud)
(随着 t 变大重复多次) …
假设我有 2 个四核处理器(8x 2,13Ghz)。服务器运行多个程序,只能同时使用 1 个内核 + Nginx 和 Apache worker。
问题是,Linux 是否有效地将单线程程序分配给每个内核,以便每个程序都可以利用 1 个内核的全部能力,并且不会干扰 Apache 和 Nginx 的负载。所以基本上确保所有内核都被使用而不是堆,所以程序可能最终会滞后?
我有一个使用 Dell R715 AMD 机器的现有 3 服务器 hyperv 集群。
现在我正在计划如果我们的服务器机房在灾难中受损该怎么办。计划是让一个相当强大的服务器在另一个位置等待恢复。这些位置通过 50mbit 连接进行连接。
如果我们有一些警告,我想在不同位置之间迁移虚拟机。如果没有,我们将从异地备份中恢复。
问题在于:戴尔的所有新服务器都没有配备 AMD 处理器。混合使用 AMD 和 Intel 处理器并不理想,但放弃 AMD 服务器不在我的预算范围内 - 而且由于 AMD 服务器似乎正在逐步淘汰,我不想被困在购买旧服务器上。
我知道你不能在 AMD 和 Intel 处理器之间进行实时迁移。但是你能在虚拟机关机的情况下做吗?
有几种情况我不知道我是否会遇到问题:
linux ×2
performance ×2
ubuntu ×2
amazon-ec2 ×1
apache-2.2 ×1
hardware ×1
hyper-v ×1
memory ×1
mysql ×1
php5 ×1
ssh ×1
top ×1
utilization ×1
vmware-esx ×1
vps ×1
xen ×1