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

Более половины используемой памяти сразу после перезагрузки

Я пытаюсь провести несколько тестов с Azul ZingVM, которому необходимо предварительно выделить большое количество оперативной памяти.

Проблема в том, что на моем сервере (под управлением Cent OS 5.8) с оперативной памятью 16 ГБ сразу после перезагрузки будет использовано более 8 ГБ ... вот так (я перезагружаю сервер, вхожу в систему по ssh и запускаю free -m однажды):

             total       used       free     shared    buffers     cached
Mem:         16048       8281       7767          0          1         19
-/+ buffers/cache:       8260       7788
Swap:        18047          0      18047

Очевидно, что буферы и кеширование не влияют на используемую оперативную память 8 ГБ. Это сервер приложений, который запускает Apache Tomcat каждый день (для тестов), и я уверен, что Tomcat не будет запускаться автоматически.

Я попытался выяснить, какой процесс использует такой большой объем памяти с top, но только для того, чтобы обнаружить, что процесс с верхним использованием ВИЭ использует только 4460k ...

Однако у меня есть другой сервер (с Cent OS 5.8), на котором запущен mysql. Этот сервер базы данных использует память в нормальном режиме. Теперь я тестирую ZVM на сервере базы данных, и когда Zing выделяет 65% оперативной памяти при запуске, после новой перезагрузки free -m показывает:

             total       used       free     shared    buffers     cached
Mem:         16048      10942       5105          0          3         55
-/+ buffers/cache:      10883       5165
Swap:        18047          0      18047

Итак ... Если мы проигнорируем 65% от 16 ГБ - около 10 ГБ - используемых Zing, используемая память после перезагрузки должна составить всего несколько МБ.

Сейчас я просто проверяю, смогу ли я заставить Tomcat работать под ZingVM. Затем мне нужно провести настоящие тесты на еще двух серверах Cent OS, и, к сожалению, у этих двух серверов такая же проблема. То есть у нас есть 4 сервера, и у 3 серверов есть эта проблема.

В чем может быть причина этой проблемы? Могу ли я решить эту проблему без повторной установки ОС на этих машинах?


Обновить:

вот что сообщает zing-system-tool, когда я пытаюсь настроить его на использование 75%(это значение по умолчанию) памяти. Точно такая же картина вывода, когда я указываю 85%.

Fatal error:  Not enough free memory (memoryForAzulBytes (12620660736) > MemFree (8142327808)).
zing-memory: ERROR: Configure pmem failed
Fatal error:  os::safeSystem:  command '/sbin/service zing-memory restart' failed.

А вот успешное выделение памяти на сервере базы данных (на этот раз я указал 68%, а старое значение - 65%; ZST освободит зарезервированную память самостоятельно):

Info:  azulPmemPages: 5456.
INFO: az_pmem_reserve_pages (num2mPages 5456) succeeded
INFO: az_pmem_fund_transfer (to 7, from 0, bytes 11442061312) succeeded
INFO: az_pmem_fund_transfer (to 1, from 7, bytes 570425344) succeeded
INFO: az_pmem_fund_transfer (to 3, from 7, bytes 570425344) succeeded
INFO: az_pmem_fund_transfer (to 0, from 7, bytes 10301210624) succeeded
Info:  You can now start Java processes up to -Xmx9824m or -Xmx9g.
Info:  Azul pmem initialized successfully.
zing-memory: INFO: start successful
zing-memory: INFO: restart successful

Обновление 2:

Я видел это в / proc / meminfo на проблемном сервере:

HugePages_Total:  4096
HugePages_Free:   4096
HugePages_Rsvd:      0
Hugepagesize:     2048 kB

а на сервере базы данных все 0. Может ли это быть причиной использованной памяти?

ОК, разобрался:

См. Мое обновление 2 в вопросе. Это причина.

Огромная страница зарезервирована; если не указано иное, приложения не будут его использовать. Итак, ZST не может выделить память.

Когда я устанавливаю Hugepage на ноль, память сразу освобождается, и ZST успешно выделяет память.

Пытаться slabtop на проблемном сервере и посмотрите, выделяет ли ядро ​​по какой-то причине огромное количество оперативной памяти. Например, XFS может выделять много памяти для своего кеша, не будучи видимым в буферах / кешированных столбцах (хотя XFS освобождает память при необходимости).