Я работаю со старым настольным компьютером (очень старая рабочая станция Lenovo ThinkCentre), который мы перенесли на сервер (RHEL7.3). Он имеет встроенный графический чип, и я считаю, что он потребляет больше оперативной памяти, чем следовало бы. Система сообщает, что установлено 4 ГБ, а free -m перечисляет 3,5 ~ ГБ для использования. Глядя в dmesg, я вижу, что ОС резервирует оставшиеся 0,5 ~ ГБ. Я попытался уменьшить объем видеопамяти, зарезервированной в BIOS, установив фиксированное значение 128 МБ. Однако после перезагрузки система зарезервировала такой же объем памяти:

[redacted]$ grep memory -i dmesg | grep -i reserved
[    0.000000] Memory: 3648080k/5046272k available (6764k kernel code, 1058768k absent, 339424k reserved, 4433k data, 1680k init)
[redacted]$ grep memory -i dmesg.old | grep -i reserved
[    0.000000] Memory: 3648080k/5046272k available (6764k kernel code, 1058768k absent, 339424k reserved, 4433k data, 1680k init)

Я пропустил какой-то шаг или это правильно? Я дважды проверил BIOS, чтобы убедиться, что я сохранил свои изменения, но он показывает ожидаемые настройки видеокарты. Есть ли способ, которым я могу получить часть оперативной памяти, зарезервированной системой, или она «потеряна» и что-то, что нам нужно будет обойти?

1 ответ1

1

Ядро не резервирует оперативную память, оно резервирует адресное пространство. Скорее всего, ваша рабочая станция не поддерживает перераспределение памяти, поэтому, если ей нужно адресное пространство ниже 4 ГБ (и это будет, для всех видов вещей), это делает некоторую ОЗУ непригодной для использования. ОЗУ не зарезервировано, просто нет места для его отображения, чтобы к нему можно было получить доступ.

Вы можете проверить настройки BIOS для настройки "перераспределения памяти". Если вы видите один, включите его. Это заставит BIOS переназначить память выше предела 4 ГБ. Если в BIOS нет такой опции, чипсет, вероятно, не поддерживает такое переназначение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .