标签: virtual-memory

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 上的文件缓存/预加载到 RAM 中

我有一个相当旧的服务器,它有 4GB 的 RAM,它几乎整天都在提供相同的文件,但它是从硬盘驱动器这样做的,而 3GB 的 RAM 是“免费的”。

任何曾经尝试过运行 ram 驱动器的人都可以见证它在速度方面非常棒。这个系统的内存使用量通常不会超过 1GB/4GB,所以我想知道是否有办法使用额外的内存来做一些好的事情。

  • 是否可以告诉文件系统始终从 RAM 中提供某些文件?
  • 有没有其他方法可以通过使用 RAM 来提高文件读取能力?

更具体地说,我不是在这里寻找“黑客”。我希望文件系统调用从 RAM 提供文件,而无需创建 ram 驱动器并手动复制文件。或者至少是一个为我做这件事的脚本。

这里可能的应用是:

  • 带有大量读取的静态文件的 Web 服务器
  • 具有大型库的应用服务器
  • 具有过多 RAM 的台式计算机

有任何想法吗?

编辑:

  • 发现这个信息量很大:Linux Page Cache and pdflush
  • 正如 Zan 指出的那样,内存实际上并不是空闲的。我的意思是它没有被应用程序使用,我想控制应该在内存中缓存的内容。

linux cache virtual-memory

84
推荐指数
6
解决办法
8万
查看次数

交换分区与文件的性能?

什么对性能更好?靠近磁盘内部的分区访问时间会更慢,我们必须等待驱动器在操作系统和交换分区之间切换。

另一方面,交换分区绕过所有文件系统,允许直接写入磁盘,这可能比文件更快。

什么是性能权衡?

固定大小的交换文件有多大区别?

是否会更改到交换分区会更长,但如果它是交换文件,则在交换分区上的性能会更好?

linux windows pagefile swap virtual-memory

81
推荐指数
3
解决办法
9万
查看次数

在 Linux 中,free 命令报告的“缓冲区”和“缓存”有什么区别?

这是我不时看到的一个老问题。我对它的理解相当有限(很久以前就读过这些差异,但所涉及的事实从来没有真正卡住过)。

据我了解,

  • 缓冲器

    由具有活动 I/O 操作的程序使用,即等待写入磁盘的数据

  • 缓存

    是完成 I/O 操作的结果,即已刷新缓冲区或从磁盘读取数据以满足请求。

我能为后代得到一个明确的解释吗?

linux memory virtual-memory

77
推荐指数
3
解决办法
7万
查看次数

如何判断是哪个进程导致 kswapd 被使用?

我看到 kswapd 使用 100% CPU ......我怎么知道代表哪个进程使用 kswapd 这么多?

linux swap virtual-memory centos5

27
推荐指数
4
解决办法
10万
查看次数

IIS中私有内存限制和虚拟内存限制的区别

我想设置应用程序可以在 IIS 7 中使用的物理内存的最大限制。我应该设置专用内存限制还是虚拟内存限制?有人能指出我 IIS 7 中所有设置的文档吗

iis iis-7 virtual-memory

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

什么是“很多”页面错误?

我正在监视 Windows 2k8 中的内存对象,并且正在跟踪 Page Faults/sec 计数器。是否有任何阈值来确定什么是过多的页面错误?还是我应该更关心持续的、大量的页面错误?

有没有更好的方法来查看页面错误?

windows-server-2008 performance-monitoring virtual-memory

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

如何限制 IIS 中应用程序使用的内存?

IIS 工作进程占用了我们服务器上的大量内存。我想限制每个应用程序可以使用的内存。我很困惑是否应该设置虚拟内存限制或私有内存限制。我们 IIS 中的每个应用程序都位于自己的应用程序池中。

如果我将私有内存限制设置为 500MB,将虚拟内存限制设置为 3GB。应用程序池什么时候回收?达到 500MB 或达到 3GB 后是否回收。

iis iis-7 iis-6 virtual-memory memory-leak

21
推荐指数
1
解决办法
8万
查看次数

在 Linux 中不断增加交换大小并且交换空间没有被回收?

我有一个 8GB RAM 的 linux 盒子,上面运行着 4 个 tomcat 服务器。其中之一设置为 3000MB 内存(jvm -Xms 和 -Xmx 设置),其他设置为 1500MB。交换分区也设置为 8Gigs。当我启动这些服务器时,交换文件使用率很低。但是在一段时间内以及在一个/所有服务器处于活动高峰期的某些时间段内,交换使用量开始增加。这是典型的 sar -r 输出。

kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad

48260 8125832 99.41 196440 2761852 7197688 1190912 14.20 316044

75504 8098588 99.08 198032 2399460 7197688 1190912 14.20 316032

它显示当前使用了 14.2% 的交换。有趣的是这 % 永远不会减少它继续增加并达到30-40%。我们每周重新启动我们的服务器。

我会假设%swpused在活动高峰期会增加,而在活动低潮期会减少……或者至少保持不变。这看起来交换空间永远不会被操作系统回收..

free 的输出:free -m 缓存的已用空闲共享缓冲区总数:7982 7937 45 0 32 2088 -/+ 缓冲区/缓存:5816 2166 交换:8191 1163 7028

所以至少有 2g 的免费 …

java swap virtual-memory

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

了解虚拟内存使用情况 > Linux 上的交换 + 物理内存

我有一个进程在“top”中报告它分配了 6GB 的常驻内存和 70GB 的虚拟内存。奇怪的是,这个特定的服务器只有 8GB 的​​物理空间和 35GB 的可用交换空间。

从“顶级”手册:

   o: VIRT  --  Virtual Image (kb)
      The total amount of virtual memory used by the  task.   It  includes
      all  code,  data  and  shared  libraries  plus  pages that have been
      swapped out. (Note: you can define the STATSIZE=1 environment  vari-
      able  and  the VIRT will be calculated from the /proc/#/state VmSize
      field.)

      VIRT = SWAP + RES.
Run Code Online (Sandbox Code Playgroud)

鉴于这种解释,我希望进程的虚拟内存分配仅限于我的交换 + 可用物理内存。

根据'pmap',这个进程的代码、共享库和共享内存部分都是最小的——不超过300M左右。

显然,机器和过程仍然正常运行(虽然很慢),那么我在这里错过了什么?

linux virtual-memory

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