这是我不时看到的一个老问题。我对它的理解相当有限(很久以前就读过这些差异,但所涉及的事实从来没有真正卡住过)。
据我了解,
缓冲器
由具有活动 I/O 操作的程序使用,即等待写入磁盘的数据
缓存
是完成 I/O 操作的结果,即已刷新缓冲区或从磁盘读取数据以满足请求。
我能为后代得到一个明确的解释吗?
我使用 RAM 来存储我的一些数据库表,而其他的则存储在硬盘中。
今天我知道我的进程正在使用交换内存。现在什么是交换内存以及如何检测哪个进程正在使用交换内存以及如何阻止它们使用它?
我有一个相对较小的家用 Red Hat Linux 服务器(大约 8 GB RAM)。除了运行一些自制的应用程序来跟踪各种事情之外,我不使用它。在盒子上运行的唯一真实的东西是一个数据库和一个网络服务器。
我注意到,当使用 NMON 和 TOP 等工具检查系统计数器时,系统总可用内存相对较低(大约几百 MB),而数据库和 Web 服务器的活动内存仍然很低(仅总共消耗 3 GB)。即使包括所有其他正在运行的进程,总消耗的内存也小于 4 GB。
为什么 Red Hat Linux 报告的可用内存少于总内存减去运行进程的已用内存总和?
我们在 128 Gb 的服务器上运行 debian 2.6.26-2-amd64 x86_64 GNU/Linux。最近它我们的可用内存变得相当低。查看 /proc/meminfo 显示 Slab 正在使用 88Gb,这被计入使用的内存中。
先感谢您
> cat /proc/meminfo
MemTotal: 132304500 kB
MemFree: 26669388 kB
Buffers: 237504 kB
Cached: 11881136 kB
SwapCached: 48 kB
Active: 5244640 kB
Inactive: 11714308 kB
SwapTotal: 5751228 kB
SwapFree: 5750436 kB
Dirty: 24 kB
Writeback: 0 kB
AnonPages: 4840256 kB
Mapped: 163968 kB
Slab: 88314840 kB
SReclaimable: 88275644 kB
SUnreclaim: 39196 kB
PageTables: 80852 kB
NFS_Unstable: 0 kB
Bounce: 0 kB …Run Code Online (Sandbox Code Playgroud) 更新:
这是由于 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)
最高输出
这是可视化进程消耗的内存的更好方法:

memory ×4
linux ×3
centos6 ×1
debian ×1
low-memory ×1
memory-usage ×1
redhat ×1
swap ×1
top ×1