我正在使用具有 128GB 内存和 24 个内核的 linux 服务器。我使用 top 来查看它使用了多少。它的输出粘贴在帖子的末尾。这里有两个问题:
(1) 我看到每个正在运行的进程占用的内存百分比非常小(%MEM 不超过 0.2%,大多数只有 0.0%),但是如何使用总内存几乎就像第四行输出( “内存:总共 130766620k,已使用 130161072k,605548k 空闲,919300k 缓冲区”)?所有进程的内存使用百分比总和似乎不太可能达到几乎 100%,不是吗?
(2)如何理解第一行的平均负载(“平均负载:14.04、14.02、14.00”)?
感谢致敬!
编辑:
谢谢!
我也很喜欢听一些基于已用内存百分比的粗略数字来确定服务器是否负载过重,因为我曾经成为一个在不了解当前负载的情况下塞满服务器的人。
交换被认为与内存几乎相同吗?比如当内存和swap大小差不多的时候,如果内存快用完了,但是swap还是大体空闲的,我是不是可以只看内存+swap的使用比例还不高,运行其他新的流程?
您如何同时考虑 CPU 或内存(或内存 + 交换)的使用情况?如果它们中的任何一个或两者都达到太高,您会担心吗?
顶部的输出?
$顶
top - 12:45:33 up 19 days, 23:11, 18 users, load average: 14.04, 14.02, 14.00 任务:总共 484 个,运行 12 个,睡眠 472 个,停止 0 个,僵尸 0 个 Cpu(s):36.7%us、19.7%sy、0.0%ni、43.6%id、0.0%wa、0.0%hi、0.0%si、0.0%st 内存:总共 130766620k,已使用 130161072k,605548k 空闲,919300k 缓冲区 交换:总共 63111312k,已使用 500556k,空闲 62610756k,缓存 124437752k PID 用户 PR NI VIRT RES SHR S %CPU %MEM TIME+ …
我们遇到了一个奇怪的行为,我们看到 CPU 利用率很高,但平均负载很低。
我们监控系统的以下图表可以最好地说明这种行为。

在大约 11:57,CPU 利用率从 25% 上升到 75%。平均负载没有显着变化。
我们运行的服务器有 12 个内核,每个内核有 2 个超线程。操作系统将其视为 24 个 CPU。
CPU 利用率数据是通过/usr/bin/mpstat 60 1每分钟运行一次来收集的。all行和%usr列的数据显示在上面的图表中。我确信这确实显示了每个 CPU 数据的平均值,而不是“堆叠”利用率。虽然我们在图表中看到 75% 的利用率,但我们看到一个进程显示在top.
平均负载数字取自/proc/loadavg每分钟。
uname -a 给出:
Linux ab04 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
Linux 发行版是 Red Hat Enterprise Linux Server release 6.3 (Santiago)
我们在机器上以相当高的负载运行几个 Java Web 应用程序,每台机器每秒 100 个请求。
如果我正确解释了 CPU 利用率数据,当我们有 75% 的 CPU 利用率时,这意味着我们的 …
我的服务器变慢了,我不知道为什么。
从顶部打印:
top - 14:32:50 up 639 days, 6:30, 1 user, load average: 67.93, 70.63, 79.85
Tasks: 245 total, 1 running, 244 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.9% us, 0.5% sy, 0.0% ni, 94.5% id, 1.0% wa, 0.0% hi, 0.0% si
Mem: 1034784k total, 1021256k used, 13528k free, 4360k buffers
Swap: 1023960k total, 635752k used, 388208k free, 36632k cached
Run Code Online (Sandbox Code Playgroud)
vmstat 10 6
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in …Run Code Online (Sandbox Code Playgroud) 我正在使用 Ubuntu 服务器 12.04,无法找到负载原因,我看到服务器响应时间从上周开始发生变化
CPU 和 RAM 似乎没有问题,并且
通过使用我得到以下输出的命令,此负载可能与I/O 绑定负载有关top

在这里97.6%wa,RAM 是免费的,没有使用交换。
以下是命令的输出,iostat它表明存在89% iowait
ubuntu@ip-my-sys-ubuntu:~$ iostat
Linux 3.2.0-58-virtual (ip-172-31-6-203) 02/19/2015 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
3.05 0.01 3.64 89.50 3.76 0.03
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
xvdap1 69.91 3.81 964.37 978925 247942876
Run Code Online (Sandbox Code Playgroud)
我还使用了iotop哪个固定间隔显示 99%I/O,磁盘写入我观察者为1266 KB/s

和

是坏吗?因为响应时间缩短了。这是什么原因造成的?
其他人要求的编辑
顶部 O/P
12.5kb 25.0kb 37.5kb 50.0kb 62.5kb
?????????????????????????????????????????????????????????????????????????????????????????????
ip-12-1-1-111.ap-southeast-1. => 115.231.218.130 0b …Run Code Online (Sandbox Code Playgroud) 我注意到在上周的周二晚上,平均负载急剧上升,并且由于流量小而看起来不正常。通常,这些数字通常平均约为 0.40 或更低,并且我的服务器内容(mysql、php 和 apache)已优化。我注意到 IOWait 异常高,即使进程几乎不使用任何 CPU。
top - 01:44:39 up 1 day, 21:13, 1 user, load average: 1.41, 1.09, 0.86
任务:总共 60 个,运行 1 个,睡眠 59 个,停止 0 个,僵尸 0 个
Cpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1:0.0%us、0.0%sy、0.0%ni、100.0%id、0.0%wa、0.0%hi、0.0%si、0.0%st
Cpu2:0.0%us、0.3%sy、0.0%ni、99.7%id、0.0%wa、0.0%hi、0.0%si、0.0%st
Cpu3:0.0%us、0.0%sy、0.0%ni、100.0%id、0.0%wa、0.0%hi、0.0%si、0.0%st
Cpu4:0.0%us、0.0%sy、0.0%ni、100.0%id、0.0%wa、0.0%hi、0.0%si、0.0%st
Cpu5:0.0%us、0.0%sy、0.0%ni、100.0%id、0.0%wa、0.0%hi、0.0%si、0.0%st
Cpu6:0.0%us、0.0%sy、0.0%ni、100.0%id、0.0%wa、0.0%hi、0.0%si、0.0%st
Cpu7:0.0%us、0.0%sy、0.0%ni、91.5%id、8.5%wa、0.0%hi、0.0%si、0.0%st
内存:总共 1048576k,已使用 331944k,716632k 空闲,0k 缓冲区
交换:总共 0k,已使用 0k,空闲 0k,缓存 0k
PID 用户 PR NI VIRT RES SHR S %CPU %MEM TIME+ 命令
1 根 15 0 2468 1376 1140 S 0 … 我在我的一台服务器上遇到了一个奇怪的问题。这是在具有一个专用 CPU 内核的 KVM VPS 上。
但是,在此期间 CPU 使用率实际上并没有增加,这也排除了 iowait 是原因:

它发生时似乎是周期性的(例如,在此图中,它大约每 20-25 分钟发生一次)。我怀疑有一个 cronjob,但我没有任何每 20 分钟运行一次的 cronjob。我也试过禁用我的 cronjobs 并且负载峰值仍然发生。
当 SSH 进入服务器时,我设法实际看到了这种情况……它的负载为 1.88,但 CPU 空闲率为 94%,iowait 为 0%(这可能是我预期的原因)
发生这种情况时,似乎没有很多磁盘 I/O。
我难住了。有任何想法吗?
我正在监控一个 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 过载。
我有一个管道,可以在 Linux 机器上运行一些计算密集型任务。启动这些的脚本会检查当前的平均负载——如果它高于某个阈值——等待直到负载低于它。这是在 Ubuntu 虚拟机上(运行在 Ubuntu 主机上,如果相关的话),它可以分配不同数量的内核。我们的开发和生产机器都是运行在同一台物理服务器上的虚拟机,我们根据需要手动为每个机器分配内核。
我注意到,即使虚拟机只有 20 个内核,大约 60 的负载也不会使机器瘫痪。我对Linux 平均负载如何工作的理解是,任何超过 CPU 数量的东西都表明存在问题,但显然事情并没有那么明确。
我正在考虑将阈值设置在$(grep -c processor /proc/cpuinfo) x Nwhere 之类的地方N>=1。是否有任何聪明的方法来确定N应该采取的价值,以便最大限度地提高性能并最大限度地减少滞后?
换句话说,在性能开始下降之前,我怎么知道一台机器可以支持的最大平均负载是多少?我天真地认为这是 CPU 的数量(所以,N=1),但这似乎站不住脚。由于内核的数量可能会有所不同,因此测试可能的组合既复杂又耗时,而且由于这是一台供不同人使用的机器,因此不切实际。
那么,如何根据可用内核的数量确定可接受的最大平均负载阈值?
我有一个 VPS 托管一个小型 Web 应用程序(apache、php-fpm、mysql),由于流量非常低,该应用程序目前大部分处于空闲状态。
令人惊讶的是,平均负载总是 >= 3.00:
# uptime
02:20:00 up 69 days, 6:03, 1 user, load average: 3,04, 3,04, 3,05
Run Code Online (Sandbox Code Playgroud)
我已经看到这个数周了,最终将其3.00视为我的0.00. CPU 使用率接近 0%,服务器和我预期的一样快,并且没有其他服务器负载迹象。
但是,这仍然激起了我的好奇心。什么会导致这种永久平均负载?
top 显示空闲服务器:
top - 02:25:56 up 69 days, 6:09, 1 user, load average: 3,07, 3,07, 3,05
Tasks: 218 total, 1 running, 216 sleeping, 0 stopped, 1 zombie
%Cpu(s): 0,0 us, 0,3 sy, 0,0 ni, 99,7 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
KiB Mem : …Run Code Online (Sandbox Code Playgroud) 我有一台装有CentOS 6.4的刀片服务器。
在空闲状态下,它显示的恒定负载平均值大于 1。但是我准备了另一台具有相同硬件和 CentOS 版本的机器,它的负载平均值在空闲时保持在 0 左右。
top的输出如下:
top - 10:23:04 up 156 days, 18:15, 1 user, load average: 1.08, 1.35, 1.31
Tasks: 534 total, 1 running, 533 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: 65959040k total, 10021484k used, 55937556k free, 167092k buffers
Swap: 32767992k total, 13884k used, 32754108k free, 7084024k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
20951 root 20 0 15396 1608 …Run Code Online (Sandbox Code Playgroud) load-average ×10
linux ×6
cpu-usage ×2
amazon-ec2 ×1
centos ×1
debian ×1
io ×1
iowait ×1
memory ×1
performance ×1
top ×1
ubuntu-12.04 ×1