Винда не видит всю оперативку
Конкретная цифра доступного адресного пространства зависит от чипсета, особенностей 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
Вобщем... тут всё таки надо разбираться с конкретными настройками и параметрами железа... Без знания что за железо наверно не ответить... ну и вроде как Виста может немнога неверно показывать память...
Удачи
Вот вроде похожая тема про 6Гб оперативки...Даже в цитате из твоего поста сказано, что проблема - в том, что 64битная ОС видит столько же, сколько и 32битная (т.е. меньше 4ГБ).
Какие теоретические причины ты можешь придумать для того, что видны 6ГБ из 8? 33битную адресацию памяти не предлагать.
Во второй части поста привидено обсуждение ситуации с Вистой х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Гб, я не знаю к чему приведёт в конкретном случае невыполнение этих требований, поэтому их и перечислил...
объему адресного пространства, поддерживаемому набором микросхемАга, об этом я и не подумал.
набор микросхем Intel 975X, поддерживающий 8 ГБ адресного пространстваНе знал, что такое бывает. Видимо, действительно 33битная адресация
У меня X38, поддерживает максимум 8ГБ памяти, но адресного пространства у него явно больше - винда все 8ГБ видит.
А точно все планки установлены "нормально"? Может одна криво вставлена...
А точно все планки установлены "нормально"? Может одна криво вставлена...
Спокойно запускается, у мя на работе месяца 2 так планка стояла, пока не удосужился проверить объем доступной памяти.
В кратце: 32-битную XP ты 4 гига видеть не заставишь. Из десктопных виндей подойдет либо виста (не уверен, что любая, но уже Business нормально видит 4 гига либо 64-битная NT.
Есть вариант сделать в остальной памяти ram-disk и складывать туда временные файлы и своп.
Есть вариант сделать в остальной памяти ram-disk и складывать туда временные файлы и своп.А как его сделать, винда ведь не адресовала этот кусок памяти?
Как - поиск по "ramdisk" в people.overclockers.ru даст ответ.
Там не очень тривиально все. У меня на одной материнке из трех полноценно получилось сделать. Да и то не видно было меньше полгига, так что я забил.
а известная ситуация, которая нагугливается за секундыэто все понятно и гуглить я умею просто не могу воткнуть чем плоха хр 64?
Тем, что она появилась позже 32-битной, и на нее мало кто ориентируется при разработке.
Я ставил года 2 назад её... поигрался немного и снес - не юзабельная она.
Если 64битный софт\драйвера и пишут, то под висту, а не под ХР
Есть вариант сделать в остальной памяти ram-disk и складывать туда ... своп.нуиизврат!
где smartdrive кеширует ramdrive? на swap'е!
Тем, что дравера сложно найти под неё и не все проги запускают нормально в ней...Я ставил года 2 назад её... поигрался немного и снес - не юзабельная она.Если 64битный софт\драйвера и пишут, то под висту, а не под ХРУ меня 64-битная стоит уже третий год, если не ошибаюсь, и никаких проблем я с ней не испытываю.
Есть вариант сделать в остальной памяти ram-disk и складывать туда временные файлы и своп.Возможно я чего то не понимаю, но по моему мнению размещать в анменеджд памяти своп абсолютно бессмысленно, потому что этот новоявленный своп винда будет пытаться мапить в свое виртуальное адресное пространство, которое искуственно ограничено 4ГБ, и уже и так забито под завязку.
будет пытаться мапить в свое виртуальное адресное пространствона самом деле? это странно
и что, на 32битной венде нельзя сделать и использовать своп на 4-5-6Г ?
Но толку от этого лишнего размера, как я понимаю, не будет.
это странноПочему?
Непонятно, зачем вообще страницам в свопе дополнительный виртуальный адрес, у них и так же уже один есть (иначе откуда они в свопе).
у них и так же уже один есть (иначе откуда они в свопе)возможно неточно выразился, я этот адрес и имею в виду
а эти адреса выделяются из того самого пространства, УЖЕ забитого под завязку (то есть все свободное, что там есть, целиком умещается в РАМе и смысла в свопании нету)
В книге Mel Gorman на 183 странице написано, что для х86_32 максимальный развер свопа равен 64Гб.
http://www.google.com/search?q=mel+gorman+book
Мое утверждение справделиво только для тех виндов, виртуальное адресное просранство которых жестко ограничено 4Гб. Это есть:
- Windows XP 32bit
- Windows Vista 32bit
- Windows 2003 Standard
На тех осях, где такого ограничения нет, пользуется PAE.
Представь себе два процесса, каждый из которых активно использует 1.75 гига. В винде, которая для процессов одновременно обслуживает не более 3 гигов оперативки, они будут свопиться. Если они за счёт обсуждаемого хака будут свопиться в оперативку, будет быстрее.
я тебе и без PAE подключу на ОС 60Гб своп.
Единственное ограничение, которое при этом оставалось бы - не больше 4Гб виртуалки на процесс.
However, desktop versions of Windows (Windows XP, Windows Vista) limit physical address space to 4 GB for driver compatibility reasons.
На тех осях, где такого ограничения нет, пользуется PAE.Какого ограничения нет? 4Gb виртуальной памяти на процесс?
Что мешает на winxp32 использовать PAE?
Потом, не надо переводить разговор на PAE. Я выразил сомнение в твоих словах относительно маппинга свопа, что никак не связано с использованием PAE.
Если бы это было так, то простое включение PAE решало бы эту проблему на всех виндах.Я в этой теме не утверждал, что включение PAE хуже или лучше организации свопа в оперативке.
Я лишь выразил сомнение в
этот новоявленный своп винда будет пытаться мапить в свое виртуальное адресное пространство, которое искуственно ограничено 4ГБ, и уже и так забито под завязку.Кстати, в этой цитате неясно, что ты понимаешь под "своим виртуальным адресным пространством". Оно же отдельное на каждый процесс.
Ограничение в 4Gb на Physical Address Space.
> Что мешает на winxp32 использовать PAE?
См линк вики.
> Потом, не надо переводить разговор на PAE. Я выразил сомнение в твоих словах относительно маппинга
> свопа, что никак не связано с использованием PAE.
На этот счет я тебе уже .
что ты понимаешь под "своим виртуальным адресным пространством"еще одна неточность с моей стороны
правильный термин - Physical Address Space
Откуда следует бесполезность восьмигигового свопа (пока, для простоты, на диске, не в памяти) на winxp32? Он [*] должен быть частью physical address space?
*) точнее, не весь своп, а задействованная в данный момент часть свопа
Он [*] должен быть частью physical address space?В моем понимании - да.
В моем понимании - да.А оно подкреплено чем-то может быть?
Совсем непонятно, зачем программистам майкрософт это дополнительное ограничение, ничем, казалось бы, не продиктованное. Да и в гугле я подобных ограничений не вижу.
А оно подкреплено чем-то может быть?Приводи свой вариант, обсудим =)
Если сможет - то я действительно перемудрил себя, и своп в анменеджед памяти действительно бы нас почти спас. Почти - потому что рейс за адреса тоже может стать проблемой.
рейс за адресачто имеется в виду? :]
что имеется в виду? :]имеется в виду, что будут производиться лишние по сравнению с 64битной действия по доставанию/складыванию в своп (то есть копированию из одного участка оперативки в другой) =)
ЗЫ по ходу что то я действительно перемудрил себя, и коммит сайз конечно 4гигами не ограничен
правильная ссылка - http://blogs.technet.com/markrussinovich/archive/2008/11/17/..., только читать надо вдумчиво. хороша еще тем, что пожалуй первое на моей памяти место, где четко разъясняется смысл всех этих "странных" циферок по использованию памяти в виндовом таск менеджере.
'у и 'у спасибо =)
и коммит сайз конечно 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)
PAE щас на большинстве 32 битных виндов включен по дефолту
Хотя, само утверждение - очередной вынос мозга. Каким образом PAE влияет на размер своп файла я не понимал и не понимаю.
В общем, добрался до дома, щас проэкспериментирую.
PAE щас на большинстве 32 битных виндов включен по дефолтудаже на xp? нафиг он там нужен, если там ограничение на 4гб
нужен для DEP'а
всего 4 инстанса тестлимита
3 из них выделило по 1.8гига памяти
четвертое уже не влезло в своп+рам, о чем честно сообщило
тыктак это сервер - а интересен был xp
я уже писал об этом выше
проверил на xp - да, commit size не лимитируется 4-мя ГБ
ну в общем да, это действительно логично
это я перехитрил сам себя, решив почему-то что в винде есть лишний уровень страничной адресации
PAE щас на большинстве 32 битных виндов включен по дефолтуХотя, само утверждение - очередной вынос мозга. Каким образом PAE влияет на размер своп файла я не понимал и не понимаю.В общем, добрался до дома, щас проэкспериментирую.c PAE PTE становятся 64-битными и там появляется место для NX-бита.
проблема с 4гб в том что косые драйвера оперируют пэйджами памяти как 32-битными адресами и очень удивлятся когда физический адрес больше. тем не менее это не запрещает работать с памятью выше 4гб из специального драйвера, если всё делать правильно.
Однако это понимание мне все равно не объясняет, каким образом PAE влияет на своп файл в винде.
где-то они облажались в реализации свопа, в pte хранится место куда страница была отсвапована, видимо они неразумно использовали имеющиеся биты.
теперь это вписывается в мою картину мира, спасибо =)
Оставить комментарий
Alena_08_11
Есть навороченный компстоит 4 планки по 2 Гб
Винда - Vista x64 Ent
Показывает 6.16 Гб оперативки ...
В чем может быть причина ?