我有一台运行自定义 Wordpress+bbPress 组合的 LAMP 服务器(基于 CentOS 的 MediaTemple (DV) Extreme,具有 2GB RAM)。
每天大约有 30k 的浏览量,服务器开始抱怨。今天早些时候,当车流涌入时,它绊倒了大约 5 分钟。即使在正常情况下,我也可以看到虚拟服务器有时处于 90% 以上的 CPU 负载。使用 Top 我经常可以看到 5-7 个 httpd 进程,每个进程都使用 15-30%(有时甚至 50%)的 CPU。
在我们进行大的优化之前(我们使用 MySQL 可能是罪魁祸首),我很想找到主要违规的页面并首先处理它们。有什么方法可以找出哪些特定请求对 CPU 消耗最大的 httpd 进程负责?我发现了很多关于优化的一般信息,但没有找到关于这个特定问题的信息。
其次,我知道有一百万个变量,但是如果您对我们是否应该使用具有这种规模的站点的单个专用虚拟服务器处于性能边界有任何见解,那么我很想听听您的意见。我们应该考虑迁移到更强大的服务器,还是应该专注于优化当前服务器?
performance lamp performance-monitoring performance-tuning top
我有一个 debian 系统。它有8GB内存。当我执行 top 时,它显示使用了 7.9 GB 内存并且空闲。我把从顶部运行的所有程序的内存使用量加起来,它们加起来几乎不超过 50 MB。那么,剩余的内存在哪里使用?我可以更详细地了解内存使用情况吗?检查内存使用情况的更好方法是什么?
有没有办法让apache显示它在top和ps中处理的url?这将帮助我们更快地确定性能问题。
谢谢。
我的系统是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) 我们正处于将我们的基础设施从 co-lo 情况转移到 Amazon EC2 的项目中,我们注意到我们设置中的进程有一些奇怪的内存特征。在没有详细介绍我们的进程的细节的情况下,我们注意到在我们的 EC2 实例上,“顶部”将显示使用大量交换空间的进程——事实上,远远大于可用交换空间或(如果你把它加起来)超过可用磁盘。
这是一个示例顶部输出:
Mem: 7136868k total, 5272300k used, 1864568k free, 256876k buffers
Swap: 1048572k total, 0k used, 1048572k free, 2526504k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ SWAP COMMAND
4121 jboss 20 0 5913m 603m 14m S 0.7 8.7 3:59.90 5.2g java
22730 root 20 0 2394m 4012 1976 S 2.0 0.1 4:20.57 2.3g PassengerHelper
20564 rails 20 0 2539m 220m 9828 S 0.3 3.2 0:23.58 2.3g …Run Code Online (Sandbox Code Playgroud) 我正在测试 MongoDB 的档案数据。我们有一个包含 160M 行的集合。MongoDB 实例在 12 Gb 物理内存盒上占用 76.2 Gb 虚拟内存;-) 交换为 null。
我读到虚拟内存 = 物理 + 交换。
我的情况有什么问题?这是 mongoDB 本身的问题吗?
谢谢
我正在尝试计算 LAMP 堆栈计算机中 AMP 使用的内存量。
top -bn1 | grep -E '(mysql|httpd|php)' | awk '{mem += $(NF-2)} END {print mem}'
但是使用上述命令生成的总和大于 100%,但我期望低于 100%,因为各个进程的内存使用情况已经以 % by 表示top。
请帮我理解是否top不能使用这种方式报告的内存来计算内存使用情况?
我今天早上重新启动了我们的服务器,但有无数进程似乎已经运行了 600 多天?
有人可以解释一下吗?
机器的日期时间是正确的:
[root@abc youdev]# hwclock
Wed 23 Jul 2014 15:50:35 BST -0.828434 seconds
[root@abc youdev]# date
Wed Jul 23 15:50:35 BST 2014
[root@abc youdev]#
Run Code Online (Sandbox Code Playgroud)
这是'top'和'uptime'的输出
[youdev@abc ~]$ top
top - 15:13:40 up 6:52, 4 users, load average: 22.18, 21.86, 21.23
Tasks: 452 total, 11 running, 441 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 32829408k total, 4504280k used, 28325128k free, 317572k buffers
Swap: 16482296k total, 0k used, 16482296k free, 574688k cached …Run Code Online (Sandbox Code Playgroud) 在过去的 2 天里,我的服务器开始出现问题,该服务器上有几个用户。服务器是 OpenVZ VPS。通常当我遇到高 CPU 使用率时,我总是使用top命令来找出原因。但是对于这个服务器,我没有从top命令中收到任何有用的信息。以下是我遇到的问题的示例屏幕截图

从屏幕截图中可以看出,%CPU对于所有进程,该列几乎总是为零,实际上我看到的大部分时间都是零,但 CPU 使用率高达 10 个内核!
我完全迷失了,不知道该怎么做才能找出原因。所以我想问一下是否有人对我面临的可能原因有任何想法?可能是因为服务器问题?
感谢您的任何建议!
编辑:
请注意,此屏幕截图仅在发生高负载时拍摄。它每隔几个小时发生一次,持续约 20 分钟。正常使用只有0.0-0.2核左右。下面是一个正常使用的例子。
进一步更新
刚才又发生了,这里是建议命令的截图
很抱歉,我对这些不了解,但如果我理解正确,磁盘使用率没有任何问题,io 使用率非常低。
最后更新
我已经使用使用建议的方法试过vmstat,ps在答案和注释中给出的,也没有找到有用的信息。当峰值发生时,我什至停止了 apache、mysql 但它没有帮助。我终于联系了VPS提供商并要求更改为另一个节点。他告诉我,他知道节点的问题,最近被恶意客户严重滥用,他正在努力解决这些问题。所以我想我现在不需要做任何事情了。尽管如此,我还是要感谢所有提出建议的成员,让这个问答对以后的参考有用!
我在裸机上运行 Debian 10(内核 4.19.0-18-amd64),最近我注意到奇怪的 CPU 使用情况。
正如您所看到的,所有核心的 CPU 使用率均报告为 100%,但每个单独进程的报告使用率似乎并不能证明这一点。
我看过iotop
我还能去哪里寻找这个资源霸主呢?
谢谢。
top ×10
linux ×6
lamp ×2
memory ×2
amazon-ec2 ×1
apache-2.2 ×1
cpu-usage ×1
debian ×1
high-load ×1
htop ×1
memory-usage ×1
mongodb ×1
monitoring ×1
performance ×1
ps ×1
swap ×1