Назад | Перейти на главную страницу

почему dmesg | grep Memory дает два разных объема физической памяти?

Я слежу за физической памятью на сервере, которым управляю, и мой поставщик оборудования сказал мне, что они увеличили размер физической памяти до 4 Гб ...

Однако, используя несколько инструментов (free -m; top; dmesg | grep Memory; grep MemTotal / proc / meminfo, я обнаружил, что на самом деле у меня 3Gb, а не 4 ...

Но я сомневаюсь в том, что dmesg | grem Память говорит мне, что у меня есть 3103396k / 4194304k

Первое число составляет 3 Гбайт, а второе - 4! Итак, почему я смотрю на эти два разных числа? Я что-то упускаю? или мой провайдер говорит мне правду, но не все правильно настроил?

Я не уверен, идет ли эта ветка здесь, на этом подфоруме, пожалуйста, исправьте и перенаправьте меня, если да ...

Большое спасибо!

Похоже, вы используете 32-битную систему на компьютере. Объем памяти зависит от платы (свойств чипсета), но всегда будет меньше 4 Гб. Чтобы избежать этого, есть два решения.

  • Чтобы использовать все 4 ГБ ОЗУ, ядро ​​должно быть скомпилировано с:

    CONFIG_HIGHMEM4G = y

    или

    CONFIG_HIGHMEM64G = y

    параметры. Что позволит каждой программе адрес что-то около 4 Гб системной памяти. Если в будущем у вас будет больше памяти, ни одна из программ не сможет использовать более одного элемента размером до 4 ГБ в 32-разрядной операционной системе.

  • Другое решение - вы можете использовать 64-битную операционную систему и использовать всю доступную память. Так что, если вы когда-нибудь получите 8, 16, 32 ГБ оперативной памяти, каждая программа сможет использовать всю имеющуюся у вас память.

Вы можете посмотреть здесь: http://www.codinghorror.com/blog/2007/03/dude-wheres-my-4-gigabytes-of-ram.html для некоторых интересных фактов о проблеме использования 4 Гб памяти в 32-битных системах.