Я установил 8 гигов памяти в мой сервер , но он видит только 4 из них, и даже не 4 ровно, а 3,2. На сервере Федора 7 , ядро 2.6.21. Что сделать , чтобы он увидел всю память?
> В чём это заключается? Проведенные мною тесты производительности не выявили разницу в работе при установленном 1GB/2GB/4GB RAM.
"Больше 4G работает через полную ж^W^WPAE ;)
а больше 1G но до трех - через просто ж^Whighmem."
"В линуксе работает так (для 32bit arches):
~900M (lowmem) - адресуемы напрямую ядром - там живут все структуры ядра, например, туда же мапятся странички за пределами этого address space если ядру туда надо доступиться.
За этими пределами живут буфера, pagecache, userspace pages и все такое прочее.
Причем, стоит учитывать что драйвера обычно хотят эти странички пощупать перед записью/чтением, так что часто можно наблюдать
lowmemshortage на машинках где много RAM, то есть памяти вроде полно,
а все тормозит и свопится - потому что lowmem забито, а весь i/o через lowmem.
Это все при стандартном 3:1 user:kernel AS split бывает еще 2:2 и 4:4, в последнем варианте стоимость переключения user->kernel и наоборот резко возрастает, само собой."
(с) kernel developer
I have observed nothing from the side effects you're describing. No exceptional swapping and no slow downs. You must be using a very old kernel or your software is badly written.
Deadушка марос, ты чота путаешь конкретно. 32-битный процессор в линейном режиме покрывает все 4Гб памяти, а под линнахом и виндовсом он ещё страничные дескрипторы использует для стека, данных и команд для каждого процесса персонально. Так что в принципе каждый процесс мог бы юзать свои 12Гб, но вот беда, дескрипторы тод 32-х разрядные, плюс память йедра отображается в адресное пространство каждого процесса.