Questions tagged «virtual-memory»

它是内存地址空间的扩展,它由其处理器的内存管理单元(MMU)逻辑上附加到计算机的物理内存上。通常在操作系统中通过利用可用磁盘空间来实现这种内存扩展来实现,并且也可以称为交换文件或页面文件。


5
在Linux中,free命令报告的“缓冲区”和“缓存”之间有什么区别?
这是我不时看到的一个老问题。我对此的理解是有限的(很久以前就已经读过它们之间的差异,但是所涉及的事实从未真正陷入困境)。 据我了解, 缓冲液 由具有有效I / O操作的程序使用,即正在等待将数据写入磁盘的程序 快取 I / O操作完成的结果,即已刷新的缓冲区或从磁盘读取的数据以满足请求的结果。 我可以为后代获得清晰的解释吗?

18
在Linux上将文件缓存/预加载到RAM
我有一台比较旧的服务器,它具有4GB的RAM,并且几乎全天都在提供相同的文件,但是它是从硬盘驱动器来完成的,而3GB的RAM是“免费的”。 曾经尝试运行ram驱动器的任何人都可以见证它在速度方面很棒。该系统的内存使用率通常不会高于1GB / 4GB,因此我想知道是否有一种方法可以使用额外的内存来获得良好的性能。 是否可以告诉文件系统始终在RAM之外提供某些文件? 是否可以使用RAM来提高文件读取能力的其他方法? 更具体地说,我不是在这里寻找“黑客”。我希望文件系统调用可以从RAM提供文件,而无需创建ram驱动器并手动将文件复制到那里。或至少有一个脚本可以帮我做到这一点。 这里可能的应用是: 具有大量静态文件的Web服务器 具有大型库的应用程序服务器 具有过多RAM的台式计算机 有任何想法吗? 编辑: 发现此信息非常有用:Linux Page Cache和pdflush 正如Zan所指出的,内存实际上并不是空闲的。我的意思是应用程序没有使用它,我想控制应该在内存中缓存的内容。

6
交换分区与文件以提高性能?
什么对性能更好?靠近磁盘内部的分区访问速度较慢,我们必须等待驱动器在操作系统分区和交换分区之间切换。 另一方面,交换分区绕过所有文件系统,允许直接写入磁盘,这可能比文件快。 性能折衷是什么? 固定大小的交换文件有多少不同? 切换到交换分区是否需要更长的时间,但是如果它位于交换分区上,则性能会更好(如果它曾经是交换文件)?




1
如何限制IIS中的应用程序使用的内存?
IIS工作进程正在我们的服务器上占用大量内存。我想限制每个应用程序可以使用的内存。我是否应该为虚拟内存限制或私有内存限制设置一个限制。IIS中的每个应用程序都在其自己的应用程序池中。 如果我将专用内存限制设置为500MB,将虚拟内存限制设置为3GB。应用程序池何时回收?达到500MB或达到3GB后会回收吗?

4
是否不断回收Linux和交换空间中不断增加的交换大小?
我有一个运行4个tomcat服务器的8GB RAM linux机器。其中之一设置为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已使用的总可用共享缓冲区已缓存Mem:7982 7937 45 0 32 2088-/ + buffers / cache:5816 2166交换:8191 1163 7028 因此,至少有2克免费Ram。因此,问题是交换空间为什么会继续增加而不被OS回收?或如何调试此方法以找出问题。

1
在SQL Server上发生气球膨胀
据我了解,仅当主机开始耗尽物理内存(使用率超过90%)时,才会发生膨胀。我有一个在三节点群集中运行的SQL服务器(每个主机中有64 GB RAM),并且已为来宾分配了8 GB RAM。在过去的几个月中,我们一直在各种系统上遇到间歇性的性能问题,我们强调的一个方面是SQL Server似乎经常增加内存。尽管事实上主机内存始终保持在75%以下。 我是否误解了膨胀的触发因素,并且定期地2GB的膨胀不是一个大问题吗? 我(希望)附上了最后几天值得进行内存监视的图片。 我们正在运行ESX4.1,来宾VM是运行SQL Server 2008 R2的Windows Server 2008 R2 编辑:根据Chopper3评论中的以下建议,我们今晚将进行一些更改。在影响较小的服务器上进行的快速测试似乎已产生了正确的影响,因此我们不需动摇,明天就应该满负荷运行。可以解释许多我们最近看到的与性能相关的可能问题。

5
了解虚拟内存使用情况>在Linux上交换+物理
我有一个进程在“顶部”报告它具有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 …

1
您如何衡量一组分叉进程的内存占用量?
假设我有一个使用200MB内存的进程,并且它fork()s: python -c "import os; data='x'*200000000; os.fork(); raw_input()" 诸如“ top”之类的程序将显示每个进程使用200MB内存,而SHRd内存很少,因此看起来好像这些进程总共使用了400MB。但是,由于fork()为进程的内存页实现了写时复制(COW),因此现实情况是,这些进程总共仅使用200MB。 为什么top不能显示COW的内存部分?有没有办法做到这一点?还是可以使用其他命令代替? 注意:OSX上的“顶部”似乎有一个RSHRD列,可以满足我的期望。我的问题是针对Linux。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.