Всем привет!На сервере с FreeBSD 7.2 установлено 8Гб оперативки (4x2Гб) и включена поддержка PAE.
Утилита top выдает - Mem: 739M Active, 1376M Inact, 175M Wired, 1044K Cache, 112M Buf, 5616M Free.
В messages.log читаю -
Mar 15 21:51:58 x1 kernel: real memory = 9596567552 (9152 MB)
Mar 15 21:51:58 x1 kernel: avail memory = 8288354304 (7904 MB)
Все нормально.Но вот почему тогда "sysctl -a | grep hw.physmem" выдает, что физической памяти только 4Гб?
hw.physmem: 4176674816P.S.
Вот что выдает "sysctl -a | grep hw.realmem"
hw.realmem: 1006632960
> На сервере с FreeBSD 7.2 установлено 8Гб оперативки (4x2Гб) и включена поддержка PAE.Установить amd64-версию и попуститься.
>> На сервере с FreeBSD 7.2 установлено 8Гб оперативки (4x2Гб) и включена поддержка PAE.
> Установить amd64-версию и попуститься.Судя по выводу top можно ли с уверенностью говорить, что вся память адресуется и доступна системе?
>>> На сервере с FreeBSD 7.2 установлено 8Гб оперативки (4x2Гб) и включена поддержка PAE.
>> Установить amd64-версию и попуститься.
> Судя по выводу top можно ли с уверенностью говорить, что вся память
> адресуется и доступна системе?Судя по наличию РАЕ можно с уверенностью говорить: хз.
> Но вот почему тогда "sysctl -a | grep hw.physmem" выдает, что физической
> памяти только 4Гб?
> hw.physmem: 4176674816Это известная фишка с ПАЕ. Не переживай по этому поводу.
>> Но вот почему тогда "sysctl -a | grep hw.physmem" выдает, что физической
>> памяти только 4Гб?
>> hw.physmem: 4176674816
> Это известная фишка с ПАЕ. Не переживай по этому поводу.Спасибо.
Похоже я нашел разгадку почему hw.physmem отображает неверный объем памяти.
man sysctl и мы узнаем, что переменная hw.physmem имеет тип integer, что для языка Си, в основном, равно 32 битам, что дает нам максимально значение (с учетом того, что число беззнаковое) 4294967295. Таким образом, отобразить корректно объем физической памяти не возможно, вследствие ограничений размерности типа unsigned int переменной в утилите sysctl. PAE здесь не причем.
> Похоже я нашел разгадку почему hw.physmem отображает неверный объем памяти.
> man sysctl и мы узнаем, что переменная hw.physmem имеет тип integer, что
> для языка Си, в основном, равно 32 битам, что дает нам
> максимально значение (с учетом того, что число беззнаковое) 4294967295. Таким образом,
> отобразить корректно объем физической памяти не возможно, вследствие ограничений размерности
> типа unsigned int переменной в утилите sysctl. PAE здесь не причем.ну вроде как i386/32bit, PAE как бы дает лишь доступ к верхней адресации,
что вдобавок не все драйвера поддерживают, та что все законно, i386/32bit == 4GB RAM
а PAE лишь расширение. Тут уж лучше amd64 при наличии 8GB/RAM, если задачи
позволяют, разумеется