我有一个在 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 12.04 上使用 WordPress,在我的 VPS 上使用 Nginx + php-fpm。有2个CPU核心+4096Mb内存。
我已将 mysql 数据库移至另一台服务器并设置远程访问。同时大约有 300 个在线访问者,php-fpm 使用的 CPU 确实很多:
我还对 WordPress 使用 APC-cache 和 batcache。
php-fpm 配置:
listen = /var/run/fpm-macradar.sock
;listen.backlog = -1
pm = ondemand
pm.max_children = 30
pm.start_servers = 15
pm.min_spare_servers = 10
pm.max_spare_servers = 20
;pm.process_idle_timeout = 10s;
pm.max_requests = 500
pm.status_path = /status
chdir = /
request_slowlog_timeout = 60s
slowlog = /var/log/$pool.log.slow
request_terminate_timeout = 120s
rlimit_files = 131072
rlimit_core = unlimited
catch_workers_output = yes
;php_flag[display_errors] = off …Run Code Online (Sandbox Code Playgroud) 我知道可以将特定进程的 numa 模式设置为“交错”(请参见下面的注释)numactrl --interleave,但我想知道是否可以将其设为系统范围的默认值(又名更改“系统策略”) ”)。例如,是否有一个内核启动标志来实现这一点?
注意:这里我谈论的是跨 NUMA 节点交错分配的页面的内核行为,而不是 BIOS 级别的内存控制器行为设置,该行为设置跨 NUMA 节点交错缓存行
假设我有 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 处理器之间进行实时迁移。但是你能在虚拟机关机的情况下做吗?
有几种情况我不知道我是否会遇到问题:
最近我一直在研究一些 SPARC 设备及其功能。但是当我寻找两者之间的差异时,我看到很多人使用法拉利与巴士的比喻
如果您的目标是尽快让 2 个人从 A 点到达 B 点,那么选择英特尔。如果您的目标是尽快让 100 人从 A 点到达 B 点,请选择 SPARC。
虽然现在很多基准测试表明 x86 在大多数情况下都优于 SPARC,但很多使用 SPARC 的人(我在互联网上看到的)仍然认为这是真的,基准测试并不能反映现实。
而且 Oracle 仍在生产更新的 SPARC 处理器:T4、T5,并且与典型的 x86 服务器相比,它们的售价更高。我想知道人们可以从 2015 年在 x86 上使用 SPARC 获得什么样的好处,这个比喻是否仍然正确。
我想问一下如何获得每个核心的最佳(最大)php-fpm线程数?如何对其进行基准测试(在 linux/debian 上)?以及如何识别这个计数已经太多了?谢谢你。
在大多数基准测试中,四核并不总是领先且经常落后(tomshardware CPU Charts 等)
但是测试用例主要面向桌面/游戏装备。
作为数据库驱动网站的专用服务器。我应该考虑更多的内核而不是速度吗?