我在具有 8 GB RAM 的双核 x64 AMD 上运行 Windows 7。
我什至需要一个页面文件吗?
删除它会帮助还是损害性能?
如果这是服务器还是台式机,会有所不同吗?
Windows 7 与 Windows 2008 对页面文件有影响吗?
为什么我的服务器显示
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?
我正在运行top以监控我的服务器性能,我的 2 个 java 进程显示高达 800MB-1GB 的虚拟内存。那是一件坏事?
虚拟内存是什么意思?
哦顺便说一句,我交换了 1GB,它显示使用了 0%。所以我很困惑。
Java 进程 = 1 个 Tomcat 服务器 + 我自己的 Java 守护进程服务器 = Ubuntu 9.10 (karmic)
在我们的服务器中,我们习惯于在午夜丢弃缓存。
sync; echo 3 > /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,它似乎释放了大量 RAM,但我真的需要这样做吗?空闲内存不是浪费吗?
这是我不时看到的一个老问题。我对它的理解相当有限(很久以前就读过这些差异,但所涉及的事实从来没有真正卡住过)。
据我了解,
缓冲器
由具有活动 I/O 操作的程序使用,即等待写入磁盘的数据
缓存
是完成 I/O 操作的结果,即已刷新缓冲区或从磁盘读取数据以满足请求。
我能为后代得到一个明确的解释吗?
是否可以将为进程分配的当前内存(通过 PID)转储到文件中?或者以某种方式阅读它?
常见的服务器故障之一是 DRAM 损坏,有时甚至在使用 ECC 内存时也是如此。
memtest86+是诊断 DRAM 问题最有用的工具之一。当它在内存开始时加载自己时,我一直想知道是否memtest86+检查memtest86+加载到的内存部分。
分配给的内存是否memtest86+太小以至于无关紧要,或者是否有可能memtest86+因为 DRAM 无法测试它所在的内存位置而错过 DRAM 中的缺陷?
我推出了一些占用大量内存的东西,现在一切都滞后了很多。我猜想所有应用程序的内存都已交换,以便为内存密集型进程释放一些空间,现在所有内容在访问时都慢慢返回到 RAM。
有没有办法明确地将所有可能的东西从交换移回 RAM?或者也许不是一切,而只是一些特定的过程数据?
当我使用默认设置时:
vm.overcommit_memory = 0
vm.overcommit_ratio = 50
Run Code Online (Sandbox Code Playgroud)
我可以从/proc/meminfo文件中读取这些值:
CommitLimit: 2609604 kB
Committed_AS: 1579976 kB
Run Code Online (Sandbox Code Playgroud)
但是,当我vm.overcommit_memory从更改0为 时2,我无法启动更改前可以启动的同一组应用程序,尤其是 amarok。我不得不更改vm.overcommit_ratio为300,因此可以增加限制。现在,当我启动 amarok 时,/proc/meminfo显示以下内容:
CommitLimit: 5171884 kB
Committed_AS: 3929668 kB
Run Code Online (Sandbox Code Playgroud)
这台机器只有 1GiB 的内存,但是 amarokvm.overcommit_memory设置为 0时没有问题。但是在设置为 的情况下2,amarok 需要分配超过 2GiB 的内存。这是正常行为吗?如果是这样,谁能解释为什么,例如,firefox(比 amarok 消耗的内存多 4-6 倍)在更改前后以相同的方式工作?
我正在使用具有 128GB 内存和 24 个内核的 linux 服务器。我使用 top 来查看它使用了多少。它的输出粘贴在帖子的末尾。这里有两个问题:
(1) 我看到每个正在运行的进程占用的内存百分比非常小(%MEM 不超过 0.2%,大多数只有 0.0%),但是如何使用总内存几乎就像第四行输出( “内存:总共 130766620k,已使用 130161072k,605548k 空闲,919300k 缓冲区”)?所有进程的内存使用百分比总和似乎不太可能达到几乎 100%,不是吗?
(2)如何理解第一行的平均负载(“平均负载:14.04、14.02、14.00”)?
感谢致敬!
编辑:
谢谢!
我也很喜欢听一些基于已用内存百分比的粗略数字来确定服务器是否负载过重,因为我曾经成为一个在不了解当前负载的情况下塞满服务器的人。
交换被认为与内存几乎相同吗?比如当内存和swap大小差不多的时候,如果内存快用完了,但是swap还是大体空闲的,我是不是可以只看内存+swap的使用比例还不高,运行其他新的流程?
您如何同时考虑 CPU 或内存(或内存 + 交换)的使用情况?如果它们中的任何一个或两者都达到太高,您会担心吗?
顶部的输出?
$顶
top - 12:45:33 up 19 days, 23:11, 18 users, load average: 14.04, 14.02, 14.00 任务:总共 484 个,运行 12 个,睡眠 472 个,停止 0 个,僵尸 0 个 Cpu(s):36.7%us、19.7%sy、0.0%ni、43.6%id、0.0%wa、0.0%hi、0.0%si、0.0%st 内存:总共 130766620k,已使用 130161072k,605548k 空闲,919300k 缓冲区 交换:总共 63111312k,已使用 500556k,空闲 62610756k,缓存 124437752k PID 用户 PR NI VIRT RES SHR S %CPU %MEM TIME+ …