Как я могу освободить память / управлять памятью в Linux-окне?

Я запускаю два сервера Ubuntu 12.04 (без GUI / desktop), используя канонические изображения облаков на Amazon EC2 . Один из них – 613MB с 613MB ОЗУ, а один – это среда с 3.75GB оперативной памяти.

У меня есть только шеф-повар opscode, установленный на micro боксе, и на большом ящике у меня есть индекс java app / SOLR, инициализированный 2048 МБ оперативной памяти:

 JAVA_OPTIONS="-server -Xms2048m -Xmx2048m -XX:+UseParallelGC -XX:NewRatio=5" 

Если у меня был chef работающий на микро-боксе, а затем попробуйте установить новую программу или запустите что-то вроде RabbitMQ или Apache2 я получу ошибку о том, что у вас недостаточно свободной памяти для завершения операции.

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

Используя команду free / free -m я вижу, что на самом деле не так много памяти, и в этот момент мне обычно приходится перезагружать систему, чтобы «очистить» память.

Похоже, что либо память должна быть автоматически освобождена или «очищена» через некоторый момент времени, или если это необходимо сделать вручную, может быть лучший способ освободить / очистить / управлять памятью более эффективно.

Есть ли способ, который я могу вручную освободить / очистить память системы? Есть ли инструмент, который будет автоматически проверять / очищать память?

2 Solutions collect form web for “Как я могу освободить память / управлять памятью в Linux-окне?”

Необходимость перезагрузки, конечно, не имеет большого смысла – если ваша память заполнена, она должна быть заполнена чем-то , и если вы остановите этот процесс (например, приложение java), тогда эта память будет освобождена.

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

То есть, первое, что вам нужно сделать, это выяснить, какое именно программное обеспечение вызывает эту проблему; Для этого обычно используются такие инструменты, как top . Вы также можете быть заинтересованы в plog .

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

 sync && echo 3 | sudo tee /proc/sys/vm/drop_caches 

в основном, что вы здесь делаете, вы совершаете операции записи на диск, кэшированные в память, на диск (ы) и очищаете части кеш-памяти. Но если ваша система настроена нормально, это должно начаться, как только вы закончите выполнение этой команды. Но это может дать вам мгновенное облегчение, чтобы преодолеть сообщение «недостаточно памяти». И если сбой на диске не удался, команда drop cache не будет работать, как вы можете видеть из команды «&&», поэтому это скорее безопасный вариант.

  • терминал: неанглийские символы
  • Как сделать sda1 больше / использовать файлы загрузки по умолчанию в sdb1
  • Почему моя Elementary OS показывает логотип ubuntu?
  • Поддельный MAC-адрес игнорируется wpa_supplicant?
  • Нет разрешения DNS после обновления с ubuntu 14.04 до 16.04
  • «mv» эквивалент перетаскивания с заменой?
  • Использует ли элементарная ОС стандартные AppIndicators?
  • git 1.9 и yum groupinstall "Средства разработки"
  • Отключение OpenVPN для каждого временного интервала
  • XBMCbuntu зависает с произвольными интервалами
  • Неверная ошибка драйвера Vulkan с проприетарным драйвером Nvidia 358
  • Linux и Unix - лучшая ОС в мире.