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

Очень высокое использование памяти, но не востребовано ни одним процессом?

Во время стресс-тестирования LVM на одном из наших серверов Debian я столкнулся с этой проблемой, когда память переполнялась настолько, что на сервере не хватало памяти, но ни один процесс не требовал памяти. Видеть http://i.imgur.com/cLn5ZHS.png, и увидеть https://serverfault.com/a/449102/125894 для объяснения цветов, используемых в htop.

Почему это происходит?
И есть ли способ узнать, какой процесс является используя память?
Htop настроен так, чтобы не скрывать никакие процессы, так что же это за htop?

В этом конкретном случае я могу с уверенностью сказать, что это прямо или косвенно вызвано lvmcreate, lvmremove или dmsetup, поскольку я проводил стресс-тестирование. Обратите внимание, что этот вопрос не о решении проблемы LVM, а о том, почему память не востребована ни одним процессом. Остановка всех команд LVM приводит к уменьшению объема памяти до <600 МБ.

Выход free -m:

             total       used       free     shared    buffers     cached
Mem:         32153      31958        194          0         52       3830
-/+ buffers/cache:      28075       4077
Swap:          975          0        975


Вывод вершины на pastebin из-за ее длины: http://pastebin.com/WchrpF7W

Поскольку кажется, что вы запускаете тесты, связанные с вводом-выводом (вы не объяснили подробно, что вы сделали с томами LVM), есть ли вероятность, что наблюдаемое вами поведение связано с естественным кешем страниц ОС?

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

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

В Интернете есть много документации о кешировании страниц Linux, Вот является одним.

У меня та же проблема, но я проверил параметры ядра, расположенные в / proc / sys / vm /: overcommit_memory = По умолчанию 0 overcommit_ratio = По умолчанию 50 max_map_count = По умолчанию 65530

И в моем случае параметр, корень моих проблем nr_hugepages, у меня есть пользовательское значение, но я изменил его на значение по умолчанию

nr_hugepages = 0

Для получения дополнительной информации см. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/performance_tuning_guide/s-memory-captun

Извините за мой английский :(