为什么我的服务器显示
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?
我有一个相当旧的服务器,它有 4GB 的 RAM,它几乎整天都在提供相同的文件,但它是从硬盘驱动器这样做的,而 3GB 的 RAM 是“免费的”。
任何曾经尝试过运行 ram 驱动器的人都可以见证它在速度方面非常棒。这个系统的内存使用量通常不会超过 1GB/4GB,所以我想知道是否有办法使用额外的内存来做一些好的事情。
更具体地说,我不是在这里寻找“黑客”。我希望文件系统调用从 RAM 提供文件,而无需创建 ram 驱动器并手动复制文件。或者至少是一个为我做这件事的脚本。
这里可能的应用是:
有任何想法吗?
编辑:
什么对性能更好?靠近磁盘内部的分区访问时间会更慢,我们必须等待驱动器在操作系统和交换分区之间切换。
另一方面,交换分区绕过所有文件系统,允许直接写入磁盘,这可能比文件更快。
什么是性能权衡?
固定大小的交换文件有多大区别?
是否会更改到交换分区会更长,但如果它是交换文件,则在交换分区上的性能会更好?
这是我不时看到的一个老问题。我对它的理解相当有限(很久以前就读过这些差异,但所涉及的事实从来没有真正卡住过)。
据我了解,
缓冲器
由具有活动 I/O 操作的程序使用,即等待写入磁盘的数据
缓存
是完成 I/O 操作的结果,即已刷新缓冲区或从磁盘读取数据以满足请求。
我能为后代得到一个明确的解释吗?
我看到 kswapd 使用 100% CPU ......我怎么知道代表哪个进程使用 kswapd 这么多?
我想设置应用程序可以在 IIS 7 中使用的物理内存的最大限制。我应该设置专用内存限制还是虚拟内存限制?有人能指出我 IIS 7 中所有设置的文档吗
我正在监视 Windows 2k8 中的内存对象,并且正在跟踪 Page Faults/sec 计数器。是否有任何阈值来确定什么是过多的页面错误?还是我应该更关心持续的、大量的页面错误?
有没有更好的方法来查看页面错误?
IIS 工作进程占用了我们服务器上的大量内存。我想限制每个应用程序可以使用的内存。我很困惑是否应该设置虚拟内存限制或私有内存限制。我们 IIS 中的每个应用程序都位于自己的应用程序池中。
如果我将私有内存限制设置为 500MB,将虚拟内存限制设置为 3GB。应用程序池什么时候回收?达到 500MB 或达到 3GB 后是否回收。
我有一个 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 的免费 …
我有一个进程在“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左右。
显然,机器和过程仍然正常运行(虽然很慢),那么我在这里错过了什么?
virtual-memory ×10
linux ×6
swap ×3
iis ×2
iis-7 ×2
memory ×2
cache ×1
centos5 ×1
iis-6 ×1
java ×1
memory-leak ×1
memory-usage ×1
pagefile ×1
windows ×1