Комп'ютер не використовує більше 4 з 8 ГБ оперативної пам’яті…? (64-розрядний комп'ютер)


17

Нещодавно до майбутнього мого комп'ютера я доповнив свої оригінальні 4 Гб пам'яті. Я довів загальну пам'ять до 8 ГБ, і я не помітив зміни швидкості - навіть коли це слід. Я пішов заглянути в диспетчер завдань і побачив, що мій комп'ютер НЕ буде використовувати більше 4 Гб пам'яті, яка використовується, навіть при відкритому Chrome і Firefox з 20 вкладками.

Після дослідження все, що всі запропонували зробити, - це перевірити, наскільки пам'ять корисна. Як не дивно, це говорить про те, що у мене є 8 Гб оперативної пам’яті, а 7,74 ГБ - корисний.

Характеристики мого HP Pavilion g7-1075dx можна знайти тут. Це ноутбук з 64-розрядною версією Windows 7 Home Premium з AMD Phenom II.

Моє головне питання: чому мій 64-бітний комп'ютер, чому мій комп'ютер не використовує більше 4 Гб пам'яті, навіть коли більше 7 є корисним?

EDIT: якщо це допоможе, Монітор ресурсів описує всі інші оперативні пам’яті як «очікування»


1
Як ви бачите, що він не використовує більше 4 Гб? Ви пробували інші мої програми для тестування чи використання пам'яті? Chrome і Firefox не такі вимогливі до пам'яті ...
Mokubai

9
Поки ніхто ще не згадував, що більше оперативної пам’яті не робить комп'ютер швидшим за себе. Єдиний раз, коли ви побачите помітний прискорення швидкості, це якщо ваше робоче навантаження споживає стільки оперативної пам’яті, що Windows потрібно постійно переходити на диск - у цьому випадку додавання більшої кількості оперативної пам’яті напевно може прискорити роботу. Але 98% людей не займаються тими речами, які вимагають> 4 Гб оперативної пам’яті, а отже, ніколи не відчують будь-якої відчутної користі від того, щоб мати всю цю додаткову оперативну пам’ять.
misha256

1
@mattycfp Є ще одна відома мені можливість, яка може обмежити використання оперативної пам'яті Windows. Можливо, ви, хтось інший чи якесь програмне забезпечення поставили ОБМЕЖЕННЯ для використання оперативної пам'яті? Перегляньте цю статтю та дотримуйтесь інструкцій: helpdeskgeek.com/windows-7/…
misha256

1
Firefox має обмеження 2 Гб на всіх вкладках / процесах, також може бути хром. Це додатково до межі норми на процес.
JamesRyan

6
Безпечного відкриття Firefox та Chrome з 20 вкладками на кожну, безумовно, недостатньо. У мене Firefox відкритий з 157 вкладками, він навіть не споживає 1 ГБ оперативної пам’яті. Перевірте, керуючи іграми. Відповідь Джеймі Ханрахана дуже хороша і детальна. Для отримання додаткової інформації читайте у публікації в блозі Марка Русиновича, що просуває межі Windows. посилання .
sbecker

Відповіді:


27

якщо це допомагає, Монітор ресурсів описує всі інші ОЗУ як "очікування"

«Standby» RAM знаходиться у використанні. Він використовується як кеш сторінок (він містить сторінки, нещодавно втрачені з усіх робочих наборів процесів; тобто помилки сторінок можуть бути усунені без виходу на диск), а також для проактивного кешування файлів SuperFetch.

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

Іншими словами, ваша система працює як слід.

Ви можете змусити вашу систему легко отримати більше оперативної пам’яті в стані «в користуванні» за допомогою інструмента командного рядка testlimit, одного з інструментів, що використовуються в експериментах в Windows Internals . Він не входить до звичайних інструментів системних систем, але пов'язаний з ними; знайдіть його тут на сайті sysinternals. Завантаження - це поштовий файл, який містить дві версії, testlimit.exe і testlimit64.exe. Обидва пов'язані з великою адресою, тому 32-розрядна версія зможе виділити до 3 ГіБ на 32-бітній машині, завантаженій з / 3 ГБ, до 4 ГБ на 64-бітній машині.

c:\> testlimit -? надає допомогу.

c:\> testlimit -d 4 -c 512спробує виділити 2 ГБ процесно-приватного віртуального адресного простору в 512 виділеннях по 4 МіБ кожен. Це має добре працювати на 64-бітній машині. На 32-бітній машині, що не завантажується з / 3 Гб (більшість ні), вона може помилитися трохи раніше, а в процесі роботи вже є кілька MiB речей (як і сама програма, всі DLL тощо), так Існує не зовсім повний 2 Гб, доступний для програми для виділення.

В обох випадках відбудеться зменшення «доступної» оперативної пам’яті та збільшення оперативної пам’яті «У користуванні», але необов’язково варто 2 ГБ, оскільки немає гарантії, що ОС залишить усі 2 ГБ в процесі приватного робочого набору. Навіть якщо це зробить це за короткий термін, ви можете побачити, як робочий набір процесів зменшиться пізніше, коли ОС вирішить, "гм, ви насправді нічого не робите з цим, інші процеси потребують цього більше" і розгортають його.

Занадто сильно збільште розмір виділення "шматки", відповідно зменшивши кількість шматочків, і це, швидше за все, вийде з ладу, оскільки кожен розподіл повинен бути практично суміжним. наприклад, спробуйте знайти сім 512 відрізків MiB в адресному просторі 4 Гб, і ви, ймовірно, не зможете.

Якщо ви використовуєте параметр l (eak) замість d (irty), програма виділить віртуальний простір, але ніколи не посилається на нього. Це не призведе до помітного зниження "доступної" оперативної пам'яті.

(Параметр d (irty) отримує свою назву від "бітової бітової сторінки" у записі таблиці x86 / x64 сторінки, яка встановлюється, коли до відповідної віртуальної сторінки звертається операнд стилю "модифікувати", тобто вміст сторінки має Це вказівка ​​Windows, що, якщо сторінку потрібно вилучити з робочого набору процесів, її вміст потрібно зберегти десь, перш ніж сторінку можна використовувати для чогось іншого. Сторінки з "брудним" набором біт переходять на "модифікований список сторінок" відразу після виселення; звідти Windows записує їх у відповідні резервні магазини.)

Вам потрібно буде мати достатню кількість "зобов'язань", щоб ці тести працювали, як описано вище (навіть для параметра l (eak), навіть якщо ця опція не використовує значної кількості оперативної пам'яті). Зокрема, ваш "ліміт фіксації" повинен бути щонайменше на 2 Гб (або скільки ви виділяєте) вище, ніж "стягнути плату" перед початком тесту. Зауважте, що це стосується навіть якщо ви використовуєте параметр l (eak), а не лише d (irty). Якщо ви зіткнетесь з цією межею, ви побачите спливаючі вікна "у системи не вистачає пам'яті" або подібні. Це, звичайно, полягає в тому, щоб додати більше оперативної пам’яті та / або збільшити налаштування файлу сторінки.


15

Насправді Windows можна налаштувати для обмеження використання оперативної пам'яті. Я не знаю, як і хто налаштував би цей параметр на вашому ноутбуці, але слід перевірити:

Налаштування максимальної рамки

У цій статті є детальніше, але дістатися до вищезазначеного діалогового вікна легко:

  1. Клацніть піктограму «Пуск» та введіть msconfig.exeу вікно пошуку

    Як запустити msconfig

  2. Запустіть msconfig.exe, натисніть на Bootвкладку, потім натисніть Advanced Options...кнопку, і ви перебуваєте в:

    Діалогове вікно налаштування завантаження msconfig

  3. Або введіть значуще значення, наприклад, 8192 для 8 Гб оперативної пам’яті, або зніміть Maximum memoryпрапорець прапорець повністю, що повинно змусити Windows використовувати всю наявну оперативну пам’ять. Я б точно спробував БУТИ варіанти.

    максимальна настройка таран


@ misha256 - Глибоко збентежений відповіддю, який спочатку мав дуже мало вмісту, і так, якби хтось ще подав одну з відповідей, я б навіть не подумав двічі про відповіді (хіба що, можливо, судити про корисність їх трохи суворіше).
Рамхаунд

@ misha256, якщо це проблема, то OP не бачила б близько 4 ГБ у використанні та ще 4 Гб в режимі очікування. Оперативна пам’ять, яка виключена цією опцією, не відображається в режимі очікування; ОП також не бачило б "8 Гб пам'яті, а 7,74 ГБ є корисним". (Очікується, що 256 Мб не "придатні для використання", наприклад, завдяки відеокарті).
Джеймі Ханрахан

10

Ви можете використовувати SysInternals RAMMap, щоб побачити, що саме робить ПК з фізичною ОЗУ. Інші засоби, такі як Диспетчер завдань або Провідник процесів, зосереджуються в основному на віртуальній пам'яті і не є найкращими інструментами для цієї ситуації.

На вкладці "Використовувати кількість" ви можете побачити, що великі частини не використовуються, поки ви не відкрили багато програм.

SysInternals RAMMap

Це не означає, що ваш ПК колись залишиться у такому стані. Просто відкрийте кілька програм і пам'ять звикне.


Термін "віртуальна ОЗУ" не повинен використовуватися. Крім того, я б не сказав, що ці інші інструменти зосереджуються переважно на віртуальній пам'яті - у них є багато лічильників, які показують використання фізичної пам'яті.
Джеймі Ханрахан

5

Цитуючи дуже гарну статтю на цю тему:

Більше пам'яті насправді не збільшує швидкість обробки [комп'ютера]. Це може зробити лише швидший процесор.

І, на мій досвід, це взагалі абсолютно вірно. Якщо ви не запускаєте багато програм одночасно і ці програми не мають значних вимог оперативної пам’яті, навряд чи ви побачите будь-яку користь у реальному світі, що має більше 4 Гб оперативної пам’яті.

Люди, здається, не усвідомлюють, що 4 Гб - це пекло багато ОЗУ. Змушення Windows використовувати більше, ніж це вимагає зусиль. Вам доведеться відкрити безліч різних додатків і в цих додатках відкрити кілька великих файлів. Надіньте кілька вкладок відео YouTube, і ви, можливо, просто почнете бачити> 4 Гб використання.


2
@mattycfp Щойно я відкрив 16 Windows на моїй 4 Гб машині, включаючи Internet Explorer, Firefox, Word, Excel, Outlook, Skype, Visual Studio 2010 (відомий кабач ОЗУ), Photoshop, Media Player, VLC, MPC-HC, плюс деякі інші випадкові додатки, і я перемикаюсь між ними, роблячи речі, завантажуючи документи, відтворюючи відео, все, і моє фактичне використання оперативної пам’яті - 2,2 ГБ І машина швидша, як це було раніше. Дивіться, 4 ГБ робить все так просто ;-)
misha256

3
@mattycfp 120 Windows FF? Ви, швидше за все, збільшуєте свій процесор, ніж оперативна пам'ять, особливо на ноутбуці. Також не забувайте, що FF - це 32-розрядний додаток, і кілька вікон FF насправді ПІДТРИМАТИ єдиний 32-розрядний процес, тому FF насправді досить обмежений, він може використовувати лише 2 ГБ вашої 8 ГБ. Ось чому вам потрібно запустити багато різних програм одночасно, щоб перевірити, як Windows використовує вашу ОЗУ, а не лише 120 Windows FF.
misha256

4
@ Misha256 Ви будете бачити приріст продуктивності , якщо ваша система постійно обмінювати пам'ять. Зі збільшенням тиску в пам'яті збільшується пейджинг, і система сповільнюється. Це не те, що додавання пам'яті змусить вас йти швидше, але це буде тримати вас від уповільнення, особливо якщо програма передбачає участь певної кількості пейджінга в своїх системних вимогах. Ця стаття, схоже, не згадує багато про пейджінг. Пейджинг - це те, що сповільнює вас.
phyrfox

4
@ misha256 У мене відкриті IRC, Spotify, Notepad ++, Chrome і диспетчер завдань, і я використовую 3,02 ГБ з моїх загальних 4 ГБ :( відкриваю 3 екземпляри VS2013 (які я, як правило, роблю на роботі), і це сприяє мені. трохи простіше досягти ліміту 4 Гб, ніж ви думаєте, але практично потрібен користувач живлення.
Thebluefish

1
@ misha256 Виправлення: FF знає велику адресу і може адресувати до 3 Гб в 32-бітному процесі. 64-бітна версія FF (наразі знаходиться в бета-версії для Windows) очевидно може вирішити набагато більше. Я також вважаю, що ви занадто сильно узагальнюєте, сказавши, що важко "використовувати" (приватний робочий набір) більше 4 Гб оперативної пам'яті; це дійсно багато що залежить від того, що ти робиш і наскільки ти тримаєшся відкритим. Моє базове використання вже перевищує це.
Боб

5

Windows робить деякі розумні речі, такі як пам'ять підкачки. Можливо, він бачить більшість завдань, які ви виконуєте, як непотрібні, і вирішує скинути навантаження матеріалів у файл сторінки, завдяки чому він виглядає так, як це робиться просто для того, щоб не використовувати всю вашу оперативну пам’ять. Ви можете перевірити цю теорію, відключивши пейджинг, хоча це не те, що ви повинні постійно налаштовувати. В Інтернеті існує багато навчальних посібників. Одне з речей (навіть на моїх 24 ГБ і 64 ГБ) - це зробити правила пейджингу набагато суворішими, коли вона досягає приблизно 50%, 80% та 90% споживання (ці показники є приблизними). Я помічав, що на кожному з цих етапів у файл сторінки завантажується навантаження матеріалів.

Цікаво зробити щось таке:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define PAGE_SZ (1<<12)

int main() {
    int i;
    int gb = 2; // memory to consume in GB

    for (i = 0; i < ((unsigned long)gb<<30)/PAGE_SZ ; ++i) {
        void *m = malloc(PAGE_SZ);
        if (!m)
            break;
        memset(m, 0, 1);
    }
    printf("allocated %lu MB\n", ((unsigned long)i*PAGE_SZ)>>20);
    getchar();
    return 0;
}

Це якийсь код С. Отримайте GCC або якийсь компілятор, зробіть собі exe і спостерігайте за тим, як споживання пам’яті зростає. Якщо ви хочете споживати більше 2 Гб оперативної пам’яті, вам потрібно буде скласти та запустити як 64-бітний процес. Якщо ви займаєтесь подібними речами, це може бути цікавий експеримент, якщо нічого іншого :)

Редагувати: Я просто хотів зазначити, що програма не помре від цього. Я відредагував його з попереднього коду, оскільки не впевнений, що працював би інший код (пам’ять буде застосовано на сторінку, внаслідок чого не буде використано пам'ять, хаха). Новий код містить рядок int gb = 2; // memory to consume in GB- зміна 2 дозволить регулювати об'єм пам'яті, яку повинна споживати програма, таким чином ви можете налаштувати її на використання стільки, скільки хочете. Якщо встановити щось вище, ніж у вашій системі, ймовірно, це призведе до збою (не перевірено, тому використовуйте з обережністю)


Я б хотів, щоб я міг її скласти, але мій Інтернет продовжує
псувати

5
@mattycfp Отже, ви не можете використовувати> 4 Гб оперативної пам’яті у вашій ОС, а всі завантаження продовжують псуватися? Час (а) WIPE на жорсткий диск та встановити свіжу ОС, або (b) кинути ноутбук у відро і вже отримати належний.
misha256

1
Програма пропонувала виділяти та "зачіпати" 2 ГБ віртуальної пам’яті, по одній сторінці за один раз, що призведе до того, що кожна сторінка буде помилкова в оперативній пам’яті відразу після її виділення. Але це не гарантує, що Windows буде зберігати все це в оперативній пам’яті одночасно. Оскільки програма не отримує багаторазового доступу до всіх vm, сторінки, що виділяються спочатку, можуть підлягати тимчасовій публікації. Ви можете отримати той самий ефект, що і ця програма за допомогою інструмента "testlimit" Windows Internals, опція -d.
Джеймі Ханрахан

@mattycfp, якщо це так, ви можете побачити, що оперативна пам'ять не винна ... Чи кожен файл, який ви завантажуєте, пошкоджується якось? Також іноді виникають проблеми з несумісними палицями, тому слід перевірити керівництво по материнській платі та підтвердити, що ваша ОЗУ організована відповідно до цих інструкцій (слоти будуть нумеровані як 1 & 2, так і 1-4, і зазвичай 1 і 3 повинні бути сполучені з той самий "тип" або "make and model" оперативної пам'яті, як буде 2 і 4). & Так, ця програма повинна використовувати 2 Гб, що можна редагувати, змінюючи рядок int gb = 2; // memory to consume in GB- просто змініть 2.
XtrmJosh

Чому ви оголосили, що gb має тип int, коли єдине використання передає його довгостроково без підписів? Ви також ставитесь до мене так само і ви робите змішане порівняння між int та передачею до непідписаного. Тому просто зробіть і без підпису довго.
JDługosz

1

Ви використовуєте 32-бітну програму для тестування швидкості роботи комп'ютера? Якщо так, зауважте, що 32-бітні адреси можуть вказувати лише на 4 ГБ оперативної пам’яті, навіть якщо у вас є більше оперативної пам’яті. Вам потрібно буде повторити тест за допомогою 64-бітної програми та перевірити її швидкість із наявністю 4 ГБ оперативної пам’яті та знову з 8 ГБ оперативної пам’яті, якщо ви хочете корисних результатів. Крім того, для роботи швидше потрібно мати 64-бітну програму, яка може використовувати більше 4 ГБ пам'яті - не всі з них можуть. Щоб сказати, чи є програма 32-бітною, запустіть програму та залиште її працювати, потім запустіть диспетчер завдань Windows, натисніть на «Процеси» та прокрутіть вниз, поки не знайдете цікаву програму. Якщо ім'я програми в стовпці Ім'я зображення слідує пробілом, то * 32, то це 32-бітна програма.


якщо ви запускаєте кілька 32-бітних програм, їх загальне використання оперативної пам’яті легко може досягати 8 ГБ.
Джеймі Ханрахан

0

Отримайте провідник процесів (procexp) від Sysinternals . Він має графік ресурсів і може показувати використання оперативної пам’яті, набагато краще, ніж представлення запасів.

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

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

Windows буде агресивно переміщувати сторінки з вашої програми до списку, де вони доступні, але якщо виникла помилка сторінки, вона буде виведена зі списку, не завантажуючи її з swapfile. У режимі очікування можуть бути включені такі. Різні інструменти по-різному маркують різні набори.

Ви можете спробувати вимкнути файл swap, принаймні для цього тесту. Це спричинить дійсне використання пам'яті даних. Хоча процексу може бути достатньо, щоб зрозуміти це.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.