2015-06-07 1 views
0

В моей системе имеется 8 ГБ оперативной памяти, а моя система - CentOS 7. Информация о системе показывает следующее использование памяти.Доступность памяти CentOS

Memory Information 
Total memory (RAM): 7.6 GB 
    Free memory: 143.4 MB (+ 6.1 GB Caches) 
    Free swap: 7.8 GB 

Означает ли это, что свободная память составляет всего 143,4 МБ, или 143,4 + 6,1 БГ? Почему это тайники? Это нормально? Я спрашиваю об этом, потому что я запускаю проблему Java, но получил исключение OutOfMemory. Я думаю, есть ли какие-либо проблемы с моей операционной системой.

ответ

3

Скорее всего, вам нужно запустить JVM с увеличенной максимальной настройкой памяти. JVM будет работать с собственным лимитом использования памяти (в зависимости от того, что доступно в ОС).

например.

$ java -Xmx2048m ... 

будет запускать JVM с максимальной памятью 2 ГБ. См. here для получения дополнительной информации.

Если вы страдаете от OutOfMemoryException, то вполне вероятно, что вам нужно настроить эту настройку. Также возможно, что JVM не может выделить эту память из ОС или что ваша программа страдает утечкой памяти, но установка -Xmx является разумным первым подходом к решению такой проблемы. Обратите внимание, что установка -Xms аналогичным образом заставит JVM распределять память при запуске и полезно не только как оптимизация, но и как раннее предупреждение об отсутствии памяти allocatbale. См. here для получения дополнительной информации.

1

Я думаю, есть ли какие-либо проблемы с моей операционной системой.

Nope. Проблема заключается либо в вашей программе (она использует слишком много памяти, либо имеет утечку памяти), либо то, как вы ее используете (куча слишком мала). Ответ Брайана объясняет и дает некоторые решения.

Означает ли это, что свободная память составляет всего 143,4 МБ, или 143,4 + 6,1 БГ? Почему это тайники? Это нормально?

Да, это нормально.

«Свободная память» - это страницы ОЗУ, которые в настоящее время не используются ни для чего другого, и могут быть немедленно переданы приложениям, которые в них нуждаются.

«Кэш диска» - это страницы ОЗУ, которые в настоящее время хранятся в копиях блоков диска файловой системы. Они используются для ускорения чтения файлов (быстрее LOT). Причина, по которой они считаются свободной памятью, заключается в том, что они могут быть восстановлены ОС практически по нулевой стоимости. И действительно, если вы запускаете больше приложений, вы обнаружите, что кеш диска автоматически уменьшается.