Arch Linux认为只有8个内存时我有大约16个RAM


10

我已经进行了几次搜索,但在Google上找不到为什么的任何信息,但是arch已分配7.7个演出给ram和7.9个演出来交换。

  • 我只有8场演出。

  • 它分配了更多的公羊来交换

我如何更改分配?

输出cat /proc/meminfo MemTotal: 8091960 kB MemFree: 4925736 kB MemAvailable: 6131188 kB Buffers: 268936 kB Cached: 1219460 kB SwapCached: 0 kB Active: 1527516 kB Inactive: 1301140 kB Active(anon): 768904 kB Inactive(anon): 711440 kB Active(file): 758612 kB Inactive(file): 589700 kB Unevictable: 32 kB Mlocked: 32 kB SwapTotal: 8300540 kB SwapFree: 8300540 kB Dirty: 1960 kB Writeback: 0 kB AnonPages: 1306968 kB Mapped: 382800 kB Shmem: 140100 kB Slab: 197964 kB SReclaimable: 163104 kB SUnreclaim: 34860 kB KernelStack: 6864 kB PageTables: 29200 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 12346520 kB Committed_AS: 3927808 kB VmallocTotal: 34359738367 kB VmallocUsed: 0 kB VmallocChunk: 0 kB HardwareCorrupted: 0 kB AnonHugePages: 186368 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 584316 kB DirectMap2M: 7716864 kB DirectMap1G: 0 kB


21
根据定义,交换不使用RAM。
user4556274 '16

1
进行相同(或更多)交换,然后获得RAM是一个不错的开始。还要记住,如果休眠(将RAM放入磁盘),则可能会使用交换空间。在过去,有人说交换数量是RAM的两倍-但是对于Linux,只有在您拥有512MB或更少(或256MB)的情况下才适用“规则”。但是,在Unix系统(至少一个)中,设计是如此,您总是必须至少拥有两倍的交换量。早期的Linux对每个分区有多少交换空间,交换分区数量和/或总交换空间有限制。TBC
Baard Kopperud

2
续...要真正决定您需要多少交换,您确实应该仔细审核您(和您的用户)运行的进程实际需要多少内存-但是请记住,交换不能替代太少的RAM。就是说-这是从只有2GB(而不是像您这样的“只有” 8GB)RAM的人那里获得的-大多数系统将能够将所有进程保留在RAM中。但是他们并不需要到,这样的交换是用来存储的过程“未使用”内存的页面-有时是整个“未使用”的过程-从而释放RAM ......这个“未使用” RAM,然后用作缓冲区和缓存,以加快处理速度。
巴德·科珀罗德

2
7.7GB的数字可能来自已永久分配给内核的约300MB物理RAM。该RAM仍然存在,但不能用于普通程序。
zwol

1
是什么使您相信“ Arch认为您有16GB RAM”?
marcelm

Answers:


26

这说明您有16GB的虚拟内存

虚拟内存是物理RAM和交换空间总和。

这是一种让您的系统运行超出实际空间的程序的方法。

应该为机器分配多少交换空间是一个复杂而固执的问题。问2个人并得到3个答案:-)

您的设置还不错,在您了解有关虚拟内存如何工作以及如何对其进行调整之前,我不建议对其进行更改。这是一个很好的起点。


5
虚拟内存是物理RAM和交换空间的总和。 ”不,不是。例如,在具有4GB RAM和4GB交换空间的64位计算机上,我可以将内存映射为64GB文件。即使RAM和swap总计达到8GB,也就是64GB的虚拟内存。
David Schwartz

1
@DavidSchwartz是正确的。更恰当地说,虚拟内存可以作为内存来解决,最好有支持它的东西。可能是RAM芯片,某些I / O端口,交换分区,磁盘上的交换文件或对操作系统或内存管理器没有特殊意义的常规文件。也不需要以这样的方式运行:如果您先写一些东西然后立即读回,您就读回您写的东西。(例如,某些I / O寄存器以这种方式起作用。)
CVn

1
这是“ Unix 101初学者版本”。我也没有提到如何将可执行页面作为只读页面添加到内存映射以及其他有趣的事情,例如过度分配。但是,作为第一层近似值,VM = RAM + swap足够接近,所有这些问题的确存在。
史蒂芬·哈里斯

“这说明您拥有16GB的虚拟内存。” -由于OP从未解释过为什么他认为Arch说他有16GB ,所以没有办法知道。
marcelm

1
@StephenHarris这是第一级近似值,导致对该问题的误解。简化是好的,只要它们表明它们是简化或实际上是正确的即可。
大卫·史瓦兹
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.