У нас есть Java-приложение, работающее в двух системах RHEL5.5. Недавно мы оказались в ситуации, когда нам нужно было добавить больше памяти для обеих систем.
Каждая система перезагружалась с интервалом в 5 минут. Мы подтвердили, что системы были подключены даже через наше устройство балансировки нагрузки. Свободный вывод выглядел следующим образом:
hostA:
total used free shared buffers cached
Mem: 3977340 3570688 406652 0 26472 3194816
-/+ buffers/cache: 349400 3627940
Swap: 2097144 0 2097144
hostB:
total used free shared buffers cached
Mem: 3977340 1369456 2607884 0 44200 860736
-/+ buffers/cache: 464520 3512820
Swap: 1048568 0 1048568
Хотя я ожидал различий в памяти, которая в настоящее время используется для кеширования, такая крайняя разница кажется довольно обескураживающей. Есть ли какой-либо способ узнать, какие файлы в настоящее время имеют блоки в кеше, или какой-либо другой способ определить, почему такая большая разница будет очевидна в двух системах, которые являются зеркальными клонами друг друга, в настройке с балансировкой нагрузки с относительно коротким временем перезагрузки?
Я понимаю, что их стволы не в плохом состоянии, однако меня просят предоставить причину или объяснение, почему одна система помещает так много в кеш, а другая нет.
Другие настройки виртуальной машины, такие как swappiness, min_free_kbytes и т. Д., Одинаковы.
Есть идеи, какие шаги я предприму, чтобы понять это?
Вы можете использовать lsof для поиска файлов, используемых обоими процессами Java на обоих машинах, что может помочь указать на проблему.
Также было бы неплохо проверить в системе, где используется память и соответствующая кешированная память больше, чем используемая / кешированная память на самом деле вашей java-программой, а не какой-либо другой программой.
Сравните списки процессов с ps aux
, top
или любым другим способом. В дополнение к этому посмотрите разбивку использования памяти ядра с помощью slabtop
и сравните выход тех.
Хорошо, с RHEL 5.5 вы, скорее всего, используете ext3 в качестве файловой системы, но, например, XFS сильно использует свободную память, и это становится очень очевидным с slabtop
, но может сбить вас с толку, если вы просто смотрите free
и другие отчеты о памяти.