OpenVZ Forum


Home » International » Russian » Слишком большое использование памяти
Re: Слишком большое использование памяти [message #21944 is a reply to message #21729] Thu, 18 October 2007 05:51 Go to previous messageGo to previous message
vaverin is currently offline  vaverin
Messages: 708
Registered: September 2005
Senior Member
Andrew,

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

Мы скачали stress тест по указанной Вами ссылке, запустили его на наших нодах и воспроизвели описаную Ваи ситуацию.
Далее, мы повторили эксперимент на RHEL kernels -- там ситуация была в точности такой же. Попробовали на mainstream kernels -- увидели в точности такую же картину:
Cached -- отностиельно небольшой,
Inactive -- большая часть памяти.

Хочу сразу заметить -- это не баг. Вернее не memory leak. При необходимости память без проблем освобождается, memeater быстро приводит к сокращению Inactive.

По идее inacive -- память задействованная ранее под дисковый кэш, но в настоящее время никем не используемая. Однако в нашем случае inactive существенно больше cached. Почему так получается? Где-то баг?

Мы проверили значения, вроде бы все правильно. Сached -- это действительно размер дискового кэша, и он действительно небольшой. В inactive попадает только cached memory, и на первый взгляд при удалении из кэша inactive тоже должен сниматься. Вроде бы все необходимые места в ядре подперты, и ничего не забыто.

Однако же ситуация каким-то образом воспроизводится! Как же так?

Стали смотреть что делает Ваш тест -- открывает файл, удаляет его, потом много туда пишет, ну и в конце закрывает файл. В таком случае данные живут в дисковом кэше до удаления inode c filesystem, однако на pages по-видимому кто-то сслается и тем самым не дает ее освободить.

Пытались повторить опреации вручную -- не вопроизводится. Да и в экспериментах со stress inactive начинала расти отнюдь не сразу. По-видимому, влияет еще некий фактор.

Заметили, что buffer heads тоже достаточно много -- возможно они держат. Но их по идее тоже пытались почистить при закрытии файла, но очевидно по каким-то причинам не получилось.

На этом, в сущности, пока и застряли. Да, память не утекает, и явного бага тут нет. Да, ситуация странная и не вполне нормальная -- вся память оказывается забита данными, которые вроде бы никому не должны быть нужны. Пямять кто-то держит, но кто -- непонятно. Разбирательство "в лоб" захлебнулось.

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

С уважением,
Василий Аверин
Head of SWsoft Linux kernel support team
 
Read Message icon9.gif
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Проблема с OOMGUARPAGES
Next Topic: cpus работает?
Goto Forum:
  


Current Time: Tue Nov 05 16:17:31 GMT 2024

Total time taken to generate the page: 0.03634 seconds