标签: memory-usage

为什么“top”表示内存使用率低,而“free”表示内存使用率高?

为什么“top”表示内存使用率低,而“free”表示内存使用率高?

Mem:    262144k total,   225708k used,    36436k free,    47948k buffers
Swap:   262136k total,       40k used,   262096k free,   110704k cached

 PID  USER      PR   NI VIRT  RES  SHR  S %CPU %MEM  TIME+   COMMAND                         
 1652 root      15   0  79456 14m  1728 S 0.0  5.6   0:00.02 miniserv.pl                  
 3544 root      15   0  87920 3356 2584 R 0.0  1.3   0:00.01 sshd  
 3707 root      16   0  86704 3104 2416 S 0.0  1.2   0:00.00 sshd    
 3708 sshd      15   0  61864 1452 872  S 0.0  0.6   0:00.00 sshd          
 3548 …
Run Code Online (Sandbox Code Playgroud)

vps centos top memory-usage

4
推荐指数
1
解决办法
5723
查看次数

Ubuntu 服务器上同时高交换和未使用的内存

我在云中有一个 Ubuntu 10.04 Web 服务器,有 1 GB 的 RAM。这是 Munin 的内存图表:

在此处输入图片说明

但我很难理解它:一方面,未使用的内存非常高;但是交换内存同时非常高,并且“提交的”内存远远超过实际可用的内存。

只有在没有真正的内存时才应该使用交换吗?这是一个正常的内存使用图,还是这里可能有问题?

linux memory memory-usage

4
推荐指数
1
解决办法
899
查看次数

Windows 2008 R2 Server 使用 100% RAM,找不到有问题的进程

好的,所以我有一个 W2008 R2 服务器运行一个网站,每天有大约 100-200 名访问者,并且它还运行了 MSSQL 2008 用于同一网站。

最近,当服务器启动时,它使用正常数量的 RAM(大约 40-50%),然后缓慢但肯定地攀升,直到达到 100% 并且没有人可以再访问该站点。即使重新启动也需要大约 10 分钟才能完成。

在任务管理器中,我看不到具体的罪魁祸首,我可以查明并说导致上述内存泄漏。

奇怪的是,该网站自 2007 年左右开始运行,有时该网站每天有 2000-4000 名独立访问者,浏览量超过 120 万次,而且从来没有出现过任何问题。

现在,如果它运行 2-3 天而不重新启动,那就是一个奇迹。

任何帮助将不胜感激。

编辑:

好的,所以我将我的 SQL 服务器限制为 1,400 MB 的 RAM,resmon.exe一旦问题再次发生,我将使用它。

然而,我更像是一个编程方面的人,而且在服务器管理方面我是个新手;我应该用 perfmon 监控什么?

memory windows-server-2008-r2 memory-usage

4
推荐指数
1
解决办法
2095
查看次数

为什么空闲服务器上的 RAM 使用率如此之高?

我正在研究用于科学数据分析的服务器。它运行 RHEL 6.4 它有将近 200GB 的 RAM。对于通过 SSH 的用户来说,它的运行速度非常缓慢,经过一番摸索之后,我很快注意到 RAM 使用率非常高。奇怪的是,即使处于空闲状态,它仍然使用大量 RAM:

在此处输入图片说明

我还查看了通过htop,我看不到任何正在运行的进程使用了​​超过 0.1% 的 RAM。所以我想知道发生了什么?现在,唯一运行的用户启动进程是两个 NFS 挂载共享之间的 rsync。

我尝试重新启动服务器,几分钟后它的响应速度更快,但随后内存使用量再次飙升。

有什么办法可以查明为什么内存使用率如此之高?

memory-usage rhel6

4
推荐指数
1
解决办法
2006
查看次数

SNMP 内存值与“free”不匹配

比较这个

#免费-m
             缓存的已用空闲共享缓冲区总数
电话:72363 68035 4328 0 522 66294
-/+ 缓冲区/缓存:1218 71145
交换:12291 0 12291

和这个:

# snmpwalk -c public -v 2c localhost .1.3.6.1.4.1.2021.4
UCD-SNMP-MIB::memIndex.0 = 整数:0
UCD-SNMP-MIB::memErrorName.0 = STRING:交换
UCD-SNMP-MIB::memTotalSwap.0 = 整数:12586888 kB
UCD-SNMP-MIB::memAvailSwap.0 = 整数:12586784 kB
UCD-SNMP-MIB::memTotalReal.0 = 整数:74100516 kB
UCD-SNMP-MIB::memAvailReal.0 = 整数:4429580 kB
UCD-SNMP-MIB::memTotalFree.0 = 整数:17016364 kB
UCD-SNMP-MIB::memMinimumSwap.0 = 整数:16000 kB
UCD-SNMP-MIB::memBuffer.0 = 整数:534804 kB
UCD-SNMP-MIB::memCached.0 = 整数:44238560 kB
UCD-SNMP-MIB::memSwapError.0 = INTEGER: noError(0)
UCD-SNMP-MIB::memSwapErrorMsg.0 = 字符串:

为什么免费为“缓存”显示 66294MB 而snmp 为“memCached”显示大约 44238MB?不应该是一样的吗?

查看 MIB,我看到“memCached”是用于缓存的“物理或虚拟”内存。(不要告诉我它会将磁盘缓存放入交换区)^^

目标是free通过snmp找出真正的空闲物理内存(即此处为 71145,如 …

linux memory-usage net-snmp

4
推荐指数
1
解决办法
6113
查看次数

free 显示使用的内存多于顶级进程总数

更新:

这是由于 nss-softkn 的一个已知问题引起的。见这篇文章:https : //www.splyt.com/blog/2014-05-16-optimizing-aws-nss-softoken


当我从我的 centos 6.5 机器上运行 free -m 时,我看到我只有大约 1400 mb 的可用内存,包括缓存。当我做 top 时,按内存排序并加起来我只看到大约 1600 个正在使用的进程。我应该有更多的空闲内存。这发生在我们的几个盒子上。

[root@db1 ~]# free -m
              total      used       free     shared    buffers     cached
Mem:          7840       7793         47          0        287       1357
-/+ buffers/cache:       6148       1692
Swap:         7983          7       7976
Run Code Online (Sandbox Code Playgroud)

最高输出

在此处输入图片说明

这是可视化进程消耗的内存的更好方法:

在此处输入图片说明

linux memory top memory-usage centos6

4
推荐指数
1
解决办法
2万
查看次数

使用 cgroups 作为用户设置用户创建的 systemd 作用域的 MemoryLimit

相关:限制子进程的总体内存使用量

有没有办法让非特权用户或 root 允许非特权用户创建一个 systemd 作用域(或由 systemd 管理的其他控制组),以便限制该作用域的内存使用量,并且该限制可以由用户?

或者说,为什么这样达不到上面描述的效果:

$ systemd-run --scope --user --unit=limit-test.scope bash
Running as unit limit-test.scope.
$ systemctl show --user limit-test.scope |grep Mem
MemoryAccounting=no
MemoryLimit=18446744073709551615
$ systemctl set-property --user limit-test.scope MemoryAccounting=yes
$ systemctl set-property --user limit-test.scope MemoryLimit=100M
$ systemctl show --user limit-test.scope |grep Mem
MemoryAccounting=yes
MemoryLimit=104857600
$ python
>>> a = [1]*1000000000    # happily eats 7.4G of RAM
Run Code Online (Sandbox Code Playgroud)

我正在使用 systemd 215 的 Debian stable 上进行测试。内核是 3.18.2 并使用所需的支持进行编译,我相信:

$ zgrep -E 'CGROUP|MEMCG' /proc/config.gz 
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is …
Run Code Online (Sandbox Code Playgroud)

linux debian memory-usage cgroup systemd

4
推荐指数
1
解决办法
7034
查看次数

找出瓶颈的技术是什么?

我在 Digital Ocean 上为最小的 Droplet 设置了一个 WordPress 几个月。

最近,我的博客疯传(1000+ facebook 分享),服务器需要 50 多秒才能响应。(Google Analytics 显示今天几乎一整天都有大约 40 人同时访问我的博客。)

我询问 Digital Ocean 支持团队,他们告诉我我的 512 MB RAM 太小了。

但我使用“free -m”并看到

             total       used       free     shared    buffers     cached
Mem:           490        465         24         64         94        136
-/+ buffers/cache:        234        256
Swap:          999          0        999
Run Code Online (Sandbox Code Playgroud)

所以我认为我有 256 MB 可用内存?

我告诉他们,他们说“虽然它可能显示 100MB 的可用内存,但这可能只是在它终止了一些服务以节省内存之后。”

但我使用“顶部”并看到

%Cpu(s):  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
Run Code Online (Sandbox Code Playgroud)

我发现CPU保持在92~100% id,所以我认为我的CPU不忙。

那么如何才能找到瓶颈呢?

我想在支付更多升级费用之前知道瓶颈是什么。

linux wordpress memory-usage oom

4
推荐指数
1
解决办法
5862
查看次数

/proc/<pid>/statm 中“页面”的单位是什么

根据 proc(5) 的 linux 手册页:

/proc/[pid]/statm 提供有关内存使用情况的信息,以页为单位。列是:

size       (1) total program size
           (same as VmSize in /proc/[pid]/status)
resident   (2) resident set size
           (same as VmRSS in /proc/[pid]/status)
share      (3) shared pages (i.e., backed by a file)
text       (4) text (code)
lib        (5) library (unused in Linux 2.6)
data       (6) data + stack
dt         (7) dirty pages (unused in Linux 2.6)
Run Code Online (Sandbox Code Playgroud)

如果我将结果与 ubuntu 系统监视器进行比较,单位似乎是 Mb,但我不是 100% 确定。“以页为单位”是什么意思?

linux ubuntu memory-usage

4
推荐指数
1
解决办法
6515
查看次数

Sar:空闲内存统计信息(包括缓冲区、缓存)

这些free命令以两种形式提供可用内存量:完全可用内存(Mem行)和用于缓存和缓冲区的一次性内存(-/+ buffers/cache行):

-bash-3.2$ free -m
             total       used       free     shared    buffers     cached
Mem:         16057      15173        884          0         17       2520
-/+ buffers/cache:      12635       3422
Swap:        12287       4937       7350
Run Code Online (Sandbox Code Playgroud)

在此示例中,不包括缓冲区和缓存的可用内存为 884 MB,包括缓冲区和缓存的可用内存为 3422 MB。

如何在 中获得第二个测量值(可用内存,包括缓冲区和缓存)sar

memory memory-usage sar

3
推荐指数
1
解决办法
7810
查看次数