Arch Linux вважає, що у мене близько 16 гігів оперативної пам’яті, коли мені всього 8


10

Я здійснив кілька пошукових запитів, і не можу знайти нічого в Google про те, чому, але арка виділила 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 , за визначенням, не використовує оперативну пам'ять.
користувач4556274

1
Той самий (або трохи більше) swap тоді ви отримали оперативну пам’ять - це гарний початок ... Також пам’ятайте, що swap-простір може бути використаний, якщо ви перебуваєте в сплячому режимі (ставите оперативну пам’ять на диск). За старих часів хтось говорив удвічі більше свопів, ніж оперативна пам'ять, але для Linux це "правило" застосовується лише тоді, коли у вас було 512 Мб або менше (або це було 256 Мб). Однак існували Unix-системи (принаймні одна), де дизайн був таким, що вам завжди доводилося мати принаймні вдвічі більше обміну. Ранній Linux мав обмеження на кількість swap на розділ, кількість своп-розділів та / або загальний своп. TBC
Баард Копперуд

2
Продовження ... Щоб дійсно вирішити, скільки вам потрібно замінити, вам слід ретельно перевірити, скільки пам’яті дійсно потрібно процесам, які ви (та ваші користувачі) виконуєте, але пам’ятайте, що своп не замінює занадто мало оперативної пам’яті. Це сказало - і це від того, хто отримав лише 2 ГБ (не "лише" 8 ГБ, як ви) оперативної пам'яті - більшість систем зможуть зберігати всі процеси в ОЗУ. Однак вони не потребують , тому swap використовується для зберігання "невикористаних" сторінок пам'яті процесів - а іноді і цілих "невикористаних" процесів - таким чином звільняючи ОЗУ ... ця "невикористана" ОЗУ, потім використовується як буфер і кеш, щоб прискорити справи.
Баард Копперуд

2
Число 7,7 Гб, ймовірно, походить від ~ 300 Мб фізичної оперативної пам’яті, яка була назавжди розподілена на ядро. Ця оперативна пам’ять все ще існує, але не може використовуватися для звичайних програм.
zwol

1
Що спонукає вас до думки: "Arch думає, що у вас є 16 Гб оперативної пам'яті"?
marcelm

Відповіді:


26

Це вам говорить, що у вас є 16 ГБ віртуальної пам'яті .

Віртуальна пам'ять - це загальна кількість фізичної оперативної пам’яті та місця для заміни.

Це спосіб дозволяти вашій системі запускати більше програм, ніж фізично вона має простір.

Скільки свопів слід виділити машині - це складне та висловлене питання; запитайте 2 людей і отримайте 3 відповіді :-)

Ваша настройка непогана, і я б не рекомендував вносити зміни до неї, поки ви не дізнаєтесь більше про те, як працює віртуальна пам'ять і як її налаштувати. Це хороша відправна точка.


5
" Віртуальна пам'ять - це загальна кількість фізичної оперативної пам’яті та місця підмінення. " Ні, це не так. Наприклад, на 64-бітній машині з 4 ГБ оперативної пам’яті та 4 ГБ свопу я можу зробити карту пам'яті 64 ГБ. Це 64 ГБ віртуальної пам’яті, навіть якщо оперативна пам’ять і своп досягають 8 ГБ.
Девід Шварц

1
@DavidSchwartz правильний. Правильніше сказати, що віртуальна пам’ять - це те, що можна розглядати як пам'ять, бажано, з тим, що підтримує її. Це може бути чипами оперативної пам’яті, деяким портом вводу-виводу, розділом swap, файлом swap на диску або звичайним файлом, який не має особливого значення для операційної системи чи менеджера пам'яті. Також не потрібно функціонувати таким чином, що якщо ви щось пишете, а потім негайно читаєте його назад, ви читаєте назад те, що написали. (Наприклад, деякі регістри вводу / виводу функціонують таким чином.)
CVn

1
Це "версія для початківців Unix 101". Я також не згадував, як виконувані сторінки можуть бути додані до сторінки пам'яті як картки лише для читання та інших цікавих речей, таких як надмірне розміщення. Однак, як наближення першого рівня, VM = RAM + своп є досить близьким, і все це питання було насправді.
Стівен Харріс

"Що це вам говорить, це те, що у вас є 16 ГБ віртуальної пам'яті." - Неможливо дізнатися, що оскільки ОП ніколи не пояснював, чому він думає, Арх каже, що має 16 Гб.
marcelm

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