标签: memory-usage

free 输出中缓冲区/缓存行的含义

为什么我的服务器显示

            total      used      free   shared buffers    cached
    Mem: 12286456  11715372    571084        0   81912   6545228
-/+ buffers/cache:  5088232   7198224
   Swap: 24571408     54528  24516880
Run Code Online (Sandbox Code Playgroud)

我不知道在 linux 中计算内存。我认为它说 5088232 用于 7198224 是免费的,这意味着它实际上消耗了 5GB 的 RAM?

linux memory virtual-memory memory-usage

189
推荐指数
2
解决办法
24万
查看次数

为什么 Linux 奇怪地报告“空闲”内存?

这是一个关于 Unix 操作系统如何报告内存使用情况的规范问题
类似问题:

我有运行Debian 6.0.6 Squeeze 的生产服务器

#uname -a

Linux debsrv 2.6.32-5-xen-amd64 #1 SMP Sun Sep 23 13:49:30 UTC 2012 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

每天cron以 root 身份执行备份脚本:

#crontab -e

0 5 * * * /root/sites_backup.sh > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

#nano /root/sites_backup.sh

Linux debsrv 2.6.32-5-xen-amd64 #1 SMP Sun Sep 23 13:49:30 UTC 2012 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

一切正常,但我注意到 Munin 的内存图显示备份后缓存缓冲区的增加。

然后我只是下载备份文件并删除它们。删除后 Munin 的内存图缓存缓冲区返回到备份前的状态。

这是穆宁图: …

linux unix memory-usage

45
推荐指数
2
解决办法
8245
查看次数

如何监视和记录进程的内存/cpu 使用情况?

我正在寻找一种诊断问题的方法,例如交换死亡,其中膨胀内存进程填满交换并杀死整个机器(例如 apache)。

我已经在使用 cacti,我可以设置 nagios(虽然宁愿不这样做)或 munin,但据我所知,他们无法记录单个程序的使用情况 - 只是整体状态。

我知道我可以每 30 秒将一个 >> 脚本滚动到某个文件,但我想看看是否已经存在现有的成熟解决方案。

同样,理想情况下它会:

  • 每 N 秒记录进程的内存使用情况
  • 每 N 秒记录进程的 CPU 使用率
  • 支持图表和历史
  • 支持平均值 - 比如 mysqld 在最后一天使用了 43% 的 CPU 并且平均 400MB 内存
  • 免费和开源

进程名称不是也不应该提前知道 - 想法是让它监控然后查看顶级违规者。

我的系统是 Linux (OpenSUSE)。

linux monitoring performance memory-usage

41
推荐指数
4
解决办法
8万
查看次数

配置 vm.overcommit_memory 的效果

由于 oom-killer 启动,我的 VPS Web 服务器在 CentOS 5.4(Linux 内核 2.6.16.33-xenU)上不规则地运行(例如每月一次或需要几周)变得无响应。服务器的监控表明它没有通常用完内存,只是每隔一段时间。

我已经阅读了一些指向此页面的博客,其中讨论了使用以下 sysctl 设置来配置内核以更好地管理过度使用:

vm.overcommit_memory = 2
vm.overcommit_ratio = 80
Run Code Online (Sandbox Code Playgroud)

我对此的理解(这可能是错误的,但我找不到一个规范的定义来澄清)是,这可以防止内核过度分配超出交换区 + 80% 物理内存的内存。

但是,我还阅读了一些其他来源,表明这些设置不是一个好主意 - 尽管这种方法的批评者似乎在说“不要做破坏您的系统的事情,而不是尝试这种混乱”的假设因果关系总是已知的。

所以我的问题是,在托管大约 10 个低流量站点的 Apache2 Web 服务器的上下文中,这种方法的优缺点什么?在我的特定情况下,Web 服务器有 512Mb RAM,1024Mb 交换空间。大多数情况下,这似乎已经足够了。

linux web-server memory-usage linux-kernel

41
推荐指数
2
解决办法
5万
查看次数

是否可以列出缓存的文件?

这里的输出free -m

             total       used       free     shared    buffers     cached
Mem:          7188       6894        294          0        249       5945
-/+ buffers/cache:        698       6489
Swap:            0          0          0
Run Code Online (Sandbox Code Playgroud)

我可以看到几乎6GB(5945MB)内存7GB用于缓存文件。我知道如何刷新缓存。我的问题是:是否可以查看正在缓存哪些文件(或 inode)?

linux memory-usage

33
推荐指数
4
解决办法
6万
查看次数

当内存需求上升时,Linux 不会释放大磁盘缓存

在 2.6.31-302 x86-64 内核上运行 Ubuntu。总体问题是我在“缓存”类别中的内存不断增加,即使我们的应用程序需要它也不会被释放或使用。

所以这就是我从“免费”命令中得到的。乍一看,这些都没有异常。

# free
             total       used       free     shared    buffers     cached
Mem:       7358492    5750320    1608172          0       7848    1443820
-/+ buffers/cache:    4298652    3059840
Swap:            0          0          0
Run Code Online (Sandbox Code Playgroud)

有人会说的第一件事是“别担心,Linux 会自动管理该内存。” 是的,我知道内存管理器应该如何工作;问题是它没有做正确的事情。此处“缓存”的 1.4 GB 似乎已保留且无法使用。

我对 Linux 的了解告诉我 3 GB 是“免费的”;但系统的行为则不然。当 1.6 GB 的实际空闲内存在使用高峰期用完时,一旦需要更多内存(并且第一列中的“空闲”接近 0),就会调用 OOM 杀手,进程被杀死,并且问题开始出现即使-/+ 缓冲区/缓存行中的“空闲”仍然有大约 1.4 GB 的“空闲”。

我已经调整了关键进程的 oom_adj 值,所以它不会使系统陷入困境,但即使如此,重要的进程也会被杀死,我们永远不想达到那个点。特别是当理论上 1.4GB 仍然是“免费的”时,如果它只会驱逐磁盘缓存。

有谁知道这里发生了什么?互联网上充斥着关于 Linux 'free' 命令和“为什么我没有任何可用内存”的愚蠢问题,因此我找不到关于这个问题的任何信息。

我脑海中浮现的第一件事是交换已关闭。我们有一个坚定不移的系统管理员;如果他们得到支持,我愿意接受解释。这会导致问题吗?

运行后这里是免费的echo 3 > /proc/sys/vm/drop_caches

# free
             total       used       free     shared    buffers     cached
Mem:       7358492    5731688 …
Run Code Online (Sandbox Code Playgroud)

linux memory disk-cache memory-usage

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

目前我的 ZFS 重复数据删除表有多大?

我已经阅读了很多有关规划 ZFS 重复数据删除的 RAM 要求的信息。我刚刚升级了我的文件服务器的 RAM,以支持 ZFS zvol 上的一些非常有限的重复数据删除,我无法在这些 zvol 上使用快照和克隆(因为它们是格式化为不同文件系统的 zvol),但会包含大量重复数据。

我想确保我添加的新 RAM 将支持我打算进行的有限重复数据删除。在计划中,我的数字看起来不错,但我想确定

如何判断实时系统上 ZFS 重复数据删除表 (DDT)的当前大小?我阅读了这个邮件列表线程,但我不清楚他们是如何获得这些数字的。(zdb tank如有必要,我可以发布输出,但我正在寻找可以帮助其他人的通用答案)

linux solaris zfs deduplication memory-usage

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

检查 ubuntu 中 CPU/内存使用的历史记录?

有没有办法让我查看 ubuntu linux 服务器上的 CPU 或内存使用情况?我注意到我的服务器(灯设置)有时很慢,但是当我以 root 身份登录并运行 PS 命令时,一切可能已经恢复正常。

查看服务器不同部分消耗的资源的日志会很棒。

cpu-usage memory-usage

23
推荐指数
3
解决办法
6万
查看次数

Windows Server 2008 R2 中奇怪的内存使用

我希望有人能帮帮忙。我们有一台带有 16GB RAM的Windows Server 2008 R2机器,它的所有可用内存不断被某些东西吃掉。在没有任务管理器资源监视器显示使用300MB以上的内存中的任何程序......但在服务器上的内存使用量是15.7GB。

https://i784.photobucket.com/albums/yy129/ThunderPeel2001/ram-usage.gif

唯一运行的是SQL Server 2008IIS7.5(使用 ASP.Net)。

注意:重新启动后的 RAM 使用率开始较低并逐渐增加。一周左右后,我们不断在这种情况下发现自己。

我怎样才能发现是什么吞噬了我们所有的记忆?:(

windows-server-2008 memory performance-monitoring task-manager memory-usage

20
推荐指数
2
解决办法
7万
查看次数

顶部未计算的 10 GB RAM

这是我的freesmem输出:

danslimmon@bad-server:~$ free -m
             total       used       free     shared    buffers     cached
Mem:         30147      29928        218          6          4       3086
-/+ buffers/cache:      26837       3309
Swap:            0          0          0

danslimmon@bad-server:~$ smem -tw
Area                           Used      Cache   Noncache
firmware/hardware                 0          0          0
kernel image                      0          0          0
kernel dynamic memory      12857576    2887440    9970136
userspace memory           17661400    1272468   16388932
free memory                  351592     351592          0
----------------------------------------------------------
                           30870568    4511500   26359068
Run Code Online (Sandbox Code Playgroud)

这是我的top输出的头部,按 RSS 排序:

top - 15:51:13 up 248 days, 14:20,  1 user,  load …
Run Code Online (Sandbox Code Playgroud)

linux top memory-usage

17
推荐指数
2
解决办法
2069
查看次数