Доступно меньше оперативной памяти, чем установлено на Centos 7

У меня была та же проблема с использованием команды patch , которая поставляется с MSYS2 в Windows. В моем случае и исходный файл, и патч имели окончание строки CRLF, и преобразование обоих в LF тоже не сработало. Сработало следующее:

$ dos2unix patch-file.patch
$ patch -p1 < patch-file.patch
$ unix2dos modified-files...

патч преобразует концы строк в LF во всех исправленных файлах, поэтому необходимо преобразовать их обратно в CRLF.

Замечания: я использую патч , версия 2.7.5

7
04.08.2016, 10:41
4 ответа

Существует много возможных причин, и немного невозможно / невозможно исследовать проблему отсюда, не полностью мониторинг системы.

Но здесь я собираюсь перечислить три возможные причины:

Первая

Причина может отличаться в зависимости от задач, которые у вас есть в вашей системе, и того, что вы делаете, она может отличаться, если вы используете какую-либо виртуализацию, если любые связанные процессы с созданием моментальных снимков и посредством выделения памяти COW (Copy-on-right), правила разделения, которые вы выполняете, ввод-вывод файлов с отображением памяти, общие объекты, предназначенные для совместного использования исполняемыми файлами и другими общими объектными файлами, динамические связывание (позднее связывание) и т. д.

Кроме того, имейте в виду, что вы не всегда можете найти свою реальную общую память, суммируя память, используемую всеми запущенными процессами. Похоже, что многие приложения используют больше памяти, чем есть на самом деле на машине, из-за общего объекта и других концепций, связанных с ОЗУ.

Кроме того, свободная память - это физическая память, в которую не отображаются логические данные.Да, мы должны знать, что неиспользуемая часть памяти имеет некоторые данные, сопоставленные с ней, но не в активном состоянии и не используется запущенным процессом.

Кстати, обратите внимание, что Unix-подобные системы хотят иметь - и показывать - как можно меньше свободной памяти, а не всю свободную память! Итак, как вы могли догадаться, они используют память, которая не активно сопоставлена ​​процессам в работающей машине для таких вещей, как буферы для различных операций передачи ввода-вывода и кеши.

Второй

Ваш BIOS может содержать ошибки, НО, поскольку он показывает точное количество RAM, мы можем сказать, что с BIOS все в порядке, и дело в том, что ядро ​​его не использует.

Последнее

Последнее, что я собираюсь перечислить, это первое, что приходит на ум, и это зарезервированная оперативная память для вещей, связанных с графическим процессором, особенно если у вас есть встроенный графический процессор. Но поскольку на выходе вашего dmesg | grep -C 3 -i e820 не показывает ничего плохого, так что это не ваша проблема.

Трудно сказать, в чем ваша проблема, поскольку у нас нет глубокого понимания вашего сервера, кроме всего, что вы упомянули в своем вопросе и комментариях, и я думаю, что мы больше ничего не сможем сделать отсюда.

Я рекомендую вам ⟼ Проведите несколько тестов, например загрузите memtest86 + , запустив yum install memtest86 + , и попробуйте проверить свою память и посмотреть, какой у вас код выхода. И некоторое время контролируйте свою системную память, используя такие команды, как vmstat -a , vmstat -s , cat / proc / meminfo , top , htop , sar -r и т. Д., и посмотрите, не заметите ли вы чего-нибудь странного.

Если приведенная выше рекомендация не помогла ↴

Два других последних варианта: Во-первых, переустановите плунжер, эта служба поддержки Lenovo может помочь вам в этом. Во-вторых, перестройте и установите новое ядро.

Надеюсь, это может помочь.

1
27.01.2020, 20:19

Возможно, вам будет полезна эта страница.

TL;DR: В конфигурации ноутбука, вероятно, указано меньше, чем реально доступно. Это можно изменить в /boot/grub/grub.conf.

0
27.01.2020, 20:19

Вам нужно знать, как перекомпилировать ядро, прежде чем пытаться что-то с ним сделать.

  1. перейдите в каталог ядра linux (обычно "/usr/src/linux")
  2. запустите make menuconfig (или make xconfig, gconfig и т.д.... )
  3. перейдите к -> Типы процессоров и возможности
  4. перейдите к -> Поддержка большой памяти
  5. Затем выберите подходящую опцию для вашей машины (опция "off" включает поддержку только для менее 4GB)
  6. перекомпилируйте ядро make && make modules && make modules_install
  7. не забудьте перенастроить загрузчик
0
27.01.2020, 20:19

Para GRUB, modifique el archivo de configuración de GRUB ubicado en /boot/grub/grub.conf, (y asegúrese de que la versión del kernel sea correcta)

# NOTICE: You have a /boot partition. This means that 
#  all kernel paths are relative to /boot/ 
default=0 
timeout=30 
splashimage=(hd0,0)/grub/splash.xpm.gz 
title Red Hat Enterprise Linux (2.6.9-5.EL)         
root (hd0,0)         
kernel /vmlinuz-2.6.9-5.EL ro root=/dev/hda3 mem=**128M**

y actualice el grub por,

sudo yum update-grub

Dado que CentOS 7 usa GRUB2 generado automáticamente, y el archivo /etc/default/grubpara hacer la configuración de grub usando el comando grub2-mkconfigUtilice la línea de comandos de grub para especificar la memoria instalada,

sudo nano /etc/default/grub 

y agregue esta línea en el eof,

GRUB_CMDLINE_LINUX="mem=8192m"  (for 8GB)
sudo grub2-mkconfig

reinicie el sistema para que los cambios surtan efecto. use, cat /proc/meminfopara ver el uso completo de la memoria del sistema.

0
27.01.2020, 20:19

Теги

Похожие вопросы