Arch Linux считает, что у меня есть около 16 ГБ оперативной памяти, когда у меня только 8


10

Я сделал несколько поисков, и я не могу найти ничего в Google о том, почему, но arch выделил 7,7 гигабайта для оперативной памяти и 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
swap по определению не использует RAM.
user4556274

1
Тот же (или чуть более) своп, чем у вас есть ОЗУ, является хорошим началом ... Также помните, что пространство подкачки может использоваться, если вы переходите в спящий режим (помещаете ОЗУ на диск). В старые времена подкачку говорили вдвое больше, чем оперативной памяти - но для Linux это «правило» применялось только тогда, когда у вас было 512 МБ или меньше (или было 256 МБ). Однако были Unix-системы (по крайней мере, одна), в которых дизайн был таким, что вам всегда нужно было по крайней мере в два раза больше свопа. В ранних версиях Linux были ограничения на объем подкачки на раздел, количество разделов подкачки и / или общий объем подкачки. TBC
Баард Копперуд

2
Продолжение ... Чтобы действительно решить, какой объем подкачки вам нужен, вам действительно нужно тщательно проверить, сколько памяти на самом деле нужно для процессов, которые вы (и ваши пользователи) выполняете - но помните, что подкачка не заменяет слишком мало оперативной памяти. Тем не менее - и это от кого-то, кто получил только 2 ГБ (а не «только» 8 ГБ, как у вас) ОЗУ - большинство систем смогут хранить все процессы в ОЗУ. Однако им это и не нужно , поэтому подкачка используется для хранения «неиспользуемых» страниц памяти процессов - а иногда и целых «неиспользуемых» процессов - освобождая, таким образом, ОЗУ… эта «неиспользуемая» ОЗУ затем используется в качестве буфера и кеш, чтобы ускорить вещи.
Баард Копперуд

2
Число 7,7 ГБ, вероятно, исходит из ~ 300 МБ физической памяти, постоянно выделенной для ядра. Это ОЗУ все еще существует, но не может быть использовано для обычных программ.
Звол

1
Что заставляет вас верить, что «Arch думает, что у вас 16 ГБ ОЗУ»?
Марсель

Ответы:


26

Это говорит о том, что у вас есть 16 ГБ виртуальной памяти .

Виртуальная память - это общее количество физической памяти и пространства подкачки.

Это способ позволить вашей системе запускать больше программ, чем у нее есть физическое пространство.

Какой объем свопа должен быть выделен для машины - сложный и взвешенный вопрос; спросите 2 человек и получите 3 ответа :-)

Ваша настройка неплоха, и я бы не советовал вносить в нее изменения, пока вы не узнаете намного больше о том, как работает виртуальная память и как ее настраивать. Это хорошая отправная точка.


5
« Виртуальная память - это совокупная физическая память и пространство подкачки. » Нет, это не так. Например, на 64-разрядной машине с 4 ГБ ОЗУ и 4 ГБ подкачки я могу отобразить в памяти файл размером 64 ГБ. Это 64 ГБ виртуальной памяти, хотя объем оперативной памяти и раздела подкачки составляют до 8 ГБ.
Дэвид Шварц

1
@DavidSchwartz - это правильно. Правильнее будет сказать, что виртуальная память - это то, что можно рассматривать как память, предпочтительно с чем-то, поддерживающим ее. Это может быть либо чипы ОЗУ, какой-либо порт ввода-вывода, раздел подкачки, файл подкачки на диске, либо обычный файл, не имеющий особого значения для операционной системы или менеджера памяти. Также не требуется функционировать таким образом, что если вы что-то пишете, а затем сразу читаете это обратно, вы читаете то, что написали. (Например, некоторые регистры ввода / вывода функционируют таким образом.)
CVn

1
Это «версия для начинающих Unix 101». Я также не упомянул, как исполняемые страницы могут быть добавлены как карты только для чтения на карту памяти и другие забавные вещи, такие как перераспределение. Тем не менее, в приближении первого уровня VM = RAM + swap достаточно близки, и все, о чем этот вопрос был на самом деле.
Стивен Харрис

«Это говорит о том, что у вас есть 16 ГБ виртуальной памяти». - Нет никакого способа узнать это, так как ОП никогда не объяснял, почему он думает, что Арч говорит, что у него есть 16 ГБ.
Марсель

1
@StephenHarris Это приближения первого уровня, которые вызывают недоразумение за этим вопросом. Упрощения хороши, если они либо указывают на то, что они являются упрощениями, либо на самом деле верны.
Дэвид Шварц
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.