Винда не видит всю оперативку

Alena_08_11

Есть навороченный комп
стоит 4 планки по 2 Гб
Винда - Vista x64 Ent
Показывает 6.16 Гб оперативки ...
В чем может быть причина ?

kusto

Про основные настройки:
Конкретная цифра доступного адресного пространства зависит от чипсета, особенностей BIOS и конфигурации конкретного ПК...
В теме про то, что не видит больше 4ГБ вот такое написано:
Радикальное решение данной проблемы существует только одно – замена ОС на 64-битную и включение в BIOS материнской платы опции «Memory Remap Feature» (или «H/W Mem Remap», обычно находится в разделе «Chipset Settings» или «NorthBridge Settings», некоторые современные платы включают эту функцию автоматически). Только при соблюдении обоих этих условий вы сделаете доступным для ОС весь объём установленной памяти.
Вот вроде похожая тема про 6Гб оперативки...
http://forum.ixbt.com/topic.cgi?id=22:74352
Вобщем... тут всё таки надо разбираться с конкретными настройками и параметрами железа... Без знания что за железо наверно не ответить... ну и вроде как Виста может немнога неверно показывать память...
Удачи ;)

kruzer25

Вот вроде похожая тема про 6Гб оперативки...
Даже в цитате из твоего поста сказано, что проблема - в том, что 64битная ОС видит столько же, сколько и 32битная (т.е. меньше 4ГБ).
Какие теоретические причины ты можешь придумать для того, что видны 6ГБ из 8? 33битную адресацию памяти не предлагать.

kusto

Если внимательно почитать пост, то в первой части поста сказано лишь, что без «Memory Remap Feature» не будет использована вся оперативка... Эта статья относилась к критичному значению - 4Гб. То есть, что именно будет показываться в Висте х64 без «Memory Remap Feature» я точно не знаю, видимо всё таки меньше 4Гб...
Во второй части поста привидено обсуждение ситуации с Вистой х64 и 6Гб оперативки (http://forum.ixbt.com/topic.cgi?id=22:74352 так что это уже ближе к теме... внутри обсуждения дана ссылка на Майкрософт, вот такая:
http://support.microsoft.com/kb/929605/ru
там написаны общие требования к железу, а также вот это:
Примечание. Если объем физически установленной на компьютере оперативной памяти равен объему адресного пространства, поддерживаемому набором микросхем, общий объем системной памяти, доступной операционной системе, будет всегда меньше объема физической памяти. Предположим, например, что в компьютере используется набор микросхем Intel 975X, поддерживающий 8 ГБ адресного пространства. Если установить 8 ГБ ОЗУ, объем системной памяти, доступной операционной системе, сократится из-за памяти, необходимой для конфигурации шины PCI. В данном случае, для конфигурации шины PCI потребуется примерно от 200 МБ до 1 ГБ памяти, и именно на эту величину сократится объем памяти, доступной операционной системе. Реальный объем доступной памяти зависит от конфигурации.
PS: "Даже в цитате из твоего поста сказано, что проблема - в том, что 64битная ОС видит столько же, сколько и 32битная (т.е. меньше 4ГБ)." - это ты сам додумал... в посте перечислены необходимые требования для того, чтобы виделось больше 4Гб, я не знаю к чему приведёт в конкретном случае невыполнение этих требований, поэтому их и перечислил...

kruzer25

объему адресного пространства, поддерживаемому набором микросхем
Ага, об этом я и не подумал.
набор микросхем Intel 975X, поддерживающий 8 ГБ адресного пространства
Не знал, что такое бывает. Видимо, действительно 33битная адресация :grin:
У меня X38, поддерживает максимум 8ГБ памяти, но адресного пространства у него явно больше - винда все 8ГБ видит.

Filan

А точно все планки установлены "нормально"? Может одна криво вставлена...

YUAL

не запустилось бы
А точно все планки установлены "нормально"? Может одна криво вставлена...

geja_03

Спокойно запускается, у мя на работе месяца 2 так планка стояла, пока не удосужился проверить объем доступной памяти.

VladKhan

У тебя не то же самое, а известная ситуация, которая нагугливается за секунды.
В кратце: 32-битную XP ты 4 гига видеть не заставишь. Из десктопных виндей подойдет либо виста (не уверен, что любая, но уже Business нормально видит 4 гига либо 64-битная NT.
Есть вариант сделать в остальной памяти ram-disk и складывать туда временные файлы и своп.

SergZ

Есть вариант сделать в остальной памяти ram-disk и складывать туда временные файлы и своп.
А как его сделать, винда ведь не адресовала этот кусок памяти?

VladKhan

Все она адресует. Она типа ее "резервирует". Но это тоже обходится.
Как - поиск по "ramdisk" в people.overclockers.ru даст ответ.
Там не очень тривиально все. У меня на одной материнке из трех полноценно получилось сделать. Да и то не видно было меньше полгига, так что я забил.

Alona

а известная ситуация, которая нагугливается за секунды
это все понятно и гуглить я умею просто не могу воткнуть чем плоха хр 64?

VladKhan

Тем, что она появилась позже 32-битной, и на нее мало кто ориентируется при разработке.

kotenok1710

Тем, что дравера сложно найти под неё и не все проги запускают нормально в ней...
Я ставил года 2 назад её... поигрался немного и снес - не юзабельная она.
Если 64битный софт\драйвера и пишут, то под висту, а не под ХР

hwh2010

Есть вариант сделать в остальной памяти ram-disk и складывать туда ... своп.
нуиизврат!
где smartdrive кеширует ramdrive? на swap'е!

Dimon89

Тем, что дравера сложно найти под неё и не все проги запускают нормально в ней...Я ставил года 2 назад её... поигрался немного и снес - не юзабельная она.Если 64битный софт\драйвера и пишут, то под висту, а не под ХР
У меня 64-битная стоит уже третий год, если не ошибаюсь, и никаких проблем я с ней не испытываю.

katrin2201

Есть вариант сделать в остальной памяти ram-disk и складывать туда временные файлы и своп.
Возможно я чего то не понимаю, но по моему мнению размещать в анменеджд памяти своп абсолютно бессмысленно, потому что этот новоявленный своп винда будет пытаться мапить в свое виртуальное адресное пространство, которое искуственно ограничено 4ГБ, и уже и так забито под завязку.

procenkotanya

будет пытаться мапить в свое виртуальное адресное пространство
на самом деле? это странно

dgaf

и что, на 32битной венде нельзя сделать и использовать своп на 4-5-6Г ?

katrin2201

Сделать можно. Так же как и вставить 8Г оперативки.
Но толку от этого лишнего размера, как я понимаю, не будет.

katrin2201

это странно
Почему?

procenkotanya

А откуда сведения, где-то читал, или?..
Непонятно, зачем вообще страницам в свопе дополнительный виртуальный адрес, у них и так же уже один есть (иначе откуда они в свопе).

katrin2201

у них и так же уже один есть (иначе откуда они в свопе)
возможно неточно выразился, я этот адрес и имею в виду
а эти адреса выделяются из того самого пространства, УЖЕ забитого под завязку (то есть все свободное, что там есть, целиком умещается в РАМе и смысла в свопании нету)

dgaf

В ОС можно. и будет работать как надо.
В книге Mel Gorman на 183 странице написано, что для х86_32 максимальный развер свопа равен 64Гб.
http://www.google.com/search?q=mel+gorman+book

katrin2201

<kz, причем здесь x86_32 с мелом горманом и его книжкой про линукс?
Мое утверждение справделиво только для тех виндов, виртуальное адресное просранство которых жестко ограничено 4Гб. Это есть:
- Windows XP 32bit
- Windows Vista 32bit
- Windows 2003 Standard
На тех осях, где такого ограничения нет, пользуется PAE.

procenkotanya

Так пространства виртуальной памяти же отдельные для каждого процесса.
Представь себе два процесса, каждый из которых активно использует 1.75 гига. В винде, которая для процессов одновременно обслуживает не более 3 гигов оперативки, они будут свопиться. Если они за счёт обсуждаемого хака будут свопиться в оперативку, будет быстрее.

dgaf

я тебе и без PAE подключу на ОС 60Гб своп.

katrin2201

Если бы это было так, то простое включение PAE решало бы эту проблему на всех виндах.
Единственное ограничение, которое при этом оставалось бы - не больше 4Гб виртуалки на процесс.

However, desktop versions of Windows (Windows XP, Windows Vista) limit physical address space to 4 GB for driver compatibility reasons.

procenkotanya

На тех осях, где такого ограничения нет, пользуется PAE.
Какого ограничения нет? 4Gb виртуальной памяти на процесс?
Что мешает на winxp32 использовать PAE?
Потом, не надо переводить разговор на PAE. Я выразил сомнение в твоих словах относительно маппинга свопа, что никак не связано с использованием PAE.

procenkotanya

Если бы это было так, то простое включение PAE решало бы эту проблему на всех виндах.
Я в этой теме не утверждал, что включение PAE хуже или лучше организации свопа в оперативке.
Я лишь выразил сомнение в
этот новоявленный своп винда будет пытаться мапить в свое виртуальное адресное пространство, которое искуственно ограничено 4ГБ, и уже и так забито под завязку.
Кстати, в этой цитате неясно, что ты понимаешь под "своим виртуальным адресным пространством". Оно же отдельное на каждый процесс.

katrin2201

> Какого ограничения нет? 4Gb виртуальной памяти на процесс?
Ограничение в 4Gb на Physical Address Space.
> Что мешает на winxp32 использовать PAE?
См линк вики.
> Потом, не надо переводить разговор на PAE. Я выразил сомнение в твоих словах относительно маппинга
> свопа, что никак не связано с использованием PAE.
На этот счет я тебе уже .

katrin2201

что ты понимаешь под "своим виртуальным адресным пространством"
еще одна неточность с моей стороны
правильный термин - Physical Address Space

procenkotanya

Прости, но я не понял. :известная картинка про лётчика:
Откуда следует бесполезность восьмигигового свопа (пока, для простоты, на диске, не в памяти) на winxp32? Он [*] должен быть частью physical address space?
*) точнее, не весь своп, а задействованная в данный момент часть свопа

katrin2201

Он [*] должен быть частью physical address space?
В моем понимании - да.

procenkotanya

В моем понимании - да.
А оно подкреплено чем-то может быть?
Совсем непонятно, зачем программистам майкрософт это дополнительное ограничение, ничем, казалось бы, не продиктованное. Да и в гугле я подобных ограничений не вижу.

katrin2201

А оно подкреплено чем-то может быть?
Приводи свой вариант, обсудим =)

katrin2201

В общем, приду домой - посмотрю, сможет ли моя 32битная 2003 Standard сделать committed memory больше 4Gb.
Если сможет - то я действительно перемудрил себя, и своп в анменеджед памяти действительно бы нас почти спас. Почти - потому что рейс за адреса тоже может стать проблемой.

procenkotanya

рейс за адреса
что имеется в виду? :]

katrin2201

что имеется в виду? :]
имеется в виду, что будут производиться лишние по сравнению с 64битной действия по доставанию/складыванию в своп (то есть копированию из одного участка оперативки в другой) =)
ЗЫ по ходу что то я действительно перемудрил себя, и коммит сайз конечно 4гигами не ограничен
правильная ссылка - http://blogs.technet.com/markrussinovich/archive/2008/11/17/..., только читать надо вдумчиво. хороша еще тем, что пожалуй первое на моей памяти место, где четко разъясняется смысл всех этих "странных" циферок по использованию памяти в виндовом таск менеджере.
'у и 'у спасибо =)

Dasar

и коммит сайз конечно 4гигами не ограничен
где ты это увидел?
в одном из последних абзацев
A couple of final limits related to virtual memory are the maximum size and number of paging files supported by Windows. 32-bit Windows has a maximum paging file size of 16TB (4GB if you for some reason run in non-PAE mode)

katrin2201

не, ну это ладно, это не критично
PAE щас на большинстве 32 битных виндов включен по дефолту
Хотя, само утверждение - очередной вынос мозга. Каким образом PAE влияет на размер своп файла я не понимал и не понимаю.
В общем, добрался до дома, щас проэкспериментирую.

Dasar

PAE щас на большинстве 32 битных виндов включен по дефолту
даже на xp? нафиг он там нужен, если там ограничение на 4гб

katrin2201

с какого то SP даже на XP
нужен для DEP'а
всего 4 инстанса тестлимита
3 из них выделило по 1.8гига памяти
четвертое уже не влезло в своп+рам, о чем честно сообщило

Dasar

тык
так это сервер - а интересен был xp

katrin2201

на сервере standard ситуация с physical address space limit ровно такая же как и на xp
я уже писал об этом выше

Dasar

проверил на xp - да, commit size не лимитируется 4-мя ГБ

katrin2201

=)
ну в общем да, это действительно логично
это я перехитрил сам себя, решив почему-то что в винде есть лишний уровень страничной адресации :confused:

vall

PAE щас на большинстве 32 битных виндов включен по дефолтуХотя, само утверждение - очередной вынос мозга. Каким образом PAE влияет на размер своп файла я не понимал и не понимаю.В общем, добрался до дома, щас проэкспериментирую.
c PAE PTE становятся 64-битными и там появляется место для NX-бита.
проблема с 4гб в том что косые драйвера оперируют пэйджами памяти как 32-битными адресами и очень удивлятся когда физический адрес больше. тем не менее это не запрещает работать с памятью выше 4гб из специального драйвера, если всё делать правильно.

katrin2201

Про noexecute бит, про кривые драйвера и про спец драйвер я все понимаю =)
Однако это понимание мне все равно не объясняет, каким образом PAE влияет на своп файл в винде.

vall

где-то они облажались в реализации свопа, в pte хранится место куда страница была отсвапована, видимо они неразумно использовали имеющиеся биты.

katrin2201

теперь это вписывается в мою картину мира, спасибо =)
Оставить комментарий
Имя или ник:
Комментарий: