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

Аварийный сигнал о разумном ограничении памяти для машины 2 ГБ с ОС RHEL5

У нас есть несколько серверов со следующей конфигурацией:

Двухъядерный однопроцессорный процессор 2 ГГц с кэш-памятью 1 МБ. Своп включен с ограничением памяти 1 ГБ - ОС 2 ГБ - RHEL5.3 64bit

Один из наших сигналов тревоги настроен на то, чтобы разбудить нас, когда объем свободной памяти опускается ниже 256 МБ в течение 2 часов (непрерывно) и выше. Мы постоянно сталкиваемся с проблемами памяти на наших машинах. Если только одна java-служба работает с ограничением в 1 ГБ (с использованием флага Xmx), остальная часть памяти предназначена для работы ОС. Мы видим, что под буферы / кеш выделяется много памяти (до 1 ГБ). На данном этапе у меня есть несколько вопросов, на которые мне трудно ответить правильно.

  1. Насколько я искал, кажется совершенно невозможным контролировать, сколько ОС может выделить для буферов / кеша. Есть ли какая-то политика в ОС, которая будет предписывать ей контролировать это?
  2. Что будет тревожным пределом, если процесс java привязан к процессору?
  3. Что будет тревожным пределом, если Java-процесс привязан к вводу-выводу?
  4. Если мы просто запустим одну службу Java (с Xmx намного меньше, чем доступная оперативная память), стоит ли нам вообще беспокоиться о свободной памяти? Разве SwapUsedPercent не лучший параметр для проверки наличия проблем с памятью?

Пожалуйста, поделитесь своими мыслями.

Насколько я искал, кажется совершенно невозможным контролировать, сколько ОС может выделить для буферов / кеша.

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

Что будет тревожным пределом, если процесс java привязан к процессору?

Зависит от вашего приложения, но я был бы обеспокоен, если вы используете более 60% вашего процессора.

Что будет тревожным пределом, если Java-процесс привязан к вводу-выводу?

Зависит от вашего приложения, но обычно вы хотите посмотреть значение% iowait.

стоит ли беспокоиться о свободной памяти?

В Linux рассмотрение только «свободной памяти» почти никогда не бывает полезным. Я был бы более обеспокоен, если бы буферы и кеш были близки к нулю. Я бы волновался, если бы вы начали использовать серьезные объемы подкачки или если бы вы часто меняли местами.