Linux, които ядат всичко паметта

После се качи в търсенето и е установено, ps_mem.py скрипт. който брои броя на процесите на паметта. Сценарият е написан на Python, пост за него тук: консумация на памет броене protsecsami на Linux. Но той също така показва, че колективно процеси не консумират най-много памет.

Тогава си мислех, че проблемът е в ядрото, и се качи да се търси информация, от ключовите думи: "размер Linux овен не е правилно", независимо дали е краткосрочен дълг, но аз не съм намерил тук е в отговор на едно от посланията:

Доколкото разбирам, на Linux "използван" памет е разделена на "активни" и "неактивни".

Активна памет е памет, която в момента е разпределена за даден процес и се използва от него.

Inactive е памет, която е била разпределена към процес, но вече не се използва, е от него (той е бил освободен). Алокаторът поставя тази памет, от една страна, за по-нататъшна употреба, но не го изпуска. Ако същите данни, които е в тази памет блок се иска отново той просто отново разпределя че паметта блок на процеса. Ако се иска блок от памет и няма "чиста" памет ляво Тя започва преразпределяне на тази "мръсна" памет.

Проучване / Proc / meminfo може да ви покаже каква част от "използван" памет е активна и колко е неактивен.

Накратко, по-долу е написано: на Linux памет се разделя на активна и неактивна. Inactive е този, който подчерта процеса, но повечето не ги използвате. Allocator (vydelyator 🙂) запазва тази памет за по-нататъшна употреба, и не го очистят. Ако ще са необходими данните са подредени в паметта, той ще ги върне веднага. Ако друг процес е необходимо, тази памет и няма да бъде "чист памет", а след това ще бъдат разпределени като неактивен памет.

С други думи, да се използва за оптимизация, а данните не са ненужно изхвърлени от паметта, но ако е необходимо, тази памет ще бъдат разпределени процеси. Следователно, ние се направят изводи: ако голяма част от паметта е активен, тогава всичко е наред.

Проверете брой неактивни памет може да бъде, както следва:

Както можете да видите, 11 GB (11521124 KB). Те са неактивни паметта и 1,95 Gb (1958840 KB). действително използвани, т.е. Той е активен. Така че, в моя случай, няма излишна консумация.

Обобщавайки, искам да отбележа, че доста често, целият смисъл на проблема се крие в липсата на квалификация на уплътнението между стола и монитора и трябва да се работи върху 🙂

- И аз счупи всеки сървър в рамките на пет минути.
- Той е един хакер.
- Не. Той - Настроение @ к.

Ние спечелил форум. Всички въпроси, които не се отнасят към статията, както и въпроси, специфични за вашия случай, трябва да попитам и да го обсъдим там, в "Наръчник на потребителя".

"Както можете да видите, 11 GB (11521124 КБ), са неактивни памет и 1.95 GB (1,958,840 KB), действително се използва, че е активен. Така че, в моя случай, има излишък на потреблението."

Хм. Как да деактивирате активната памет? Поради липсата на памет на сървъра, за да смените, и той започва да се забавя.

Можете да опитате да почистите кешовете на корен, както е описано тук.

# За да освободите pagecache:
синхронизирам ехо 1> / Proc / Сис / VM / drop_caches

# За свободните dentries и иноди:
синхронизирам ехо 2> / Proc / Сис / VM / drop_caches

# За да освободите pagecache, dentries и иноди:
синхронизирам ехо 3> / Proc / Сис / VM / drop_caches
но това обикновено не е необходима, тъй като Тя се занимава с ядрото на операционната система, ако е необходимо.

Ако паметта изтече и попада в замяна, е необходимо да се търси един процес, който го консумира и да го ограничи.

Благодаря ви, дойде по-удобно. Много полезна информация.

Благодаря, много полезно

Брилянтно! Също така вече се опита всичко възможно, всичко е по-лесно. Благодаря Ви много.

гледате тази ситуация на Debian 8 Nginx + PHP-FPM, MySQL, Монго, 8GB RAM.
е разположена свободно 800-1000M
Когато започнете сериозно натоварване от 50-80 потребители, паметта е 200 милиона, а Nginx дава 504.
Ако кеша почисти екип освободен 6GB и всичко започва да лети.
В това, което може да е проблем, защо не PHP замества неактивна паметта?

Здравейте, аз не съм експерт и архитектура на паметта, но мисля, че проблемът не е в PHP, памет кара OS и PHP едва ли може нещо общо с него.
Опитайте се да го през това време, когато има 504, проверете следното:
1. Проверете номера на PHP виси активни процеси (за да започнем с това, например, една и съща к.с. -A | Впиши PHP) и как тази цифра съответства на конфигурацията на PHP-FPM
2. Какво яде MySQL, Монго. Ако повече, отколкото очаквате, тогава ще трябва да редактирате конфигурацията.

Мисля, че проблемът е, че не е напълно стартира процесът на умиране PHP, в крайна сметка те стават толкова многобройни, че те не могат да се размножават. Ако е така, то тогава е необходимо да се оптимизират кода на време е намалено сценария.

Може да се допълва от една статия в екип за почистване на паметта - безплатно синхронизирам ехо 3> / Proc / Сис / VM / drop_caches ехо "" безплатно

не се мързеливи, за да кажа благодаря: "Благодаря!". Това е от изключително значение INFA.
PS: с CAPTCHA, IMHO, твърде много.

Благодарим Ви! За сметка на капитан съм съгласен, но не достигнат римейк. И без това тооолкова много от спам ботове.

Благодаря за информацията,
всички пишат блогове как да се оптимизира,
всичко е направено и броят не се променя, се оказва, че Che

Моля радваме да Ви помогнем!

Благодаря ви, информацията е просто прекрасно!

Благодарим Ви! Радвам се, че е полезно за вас!

Благодаря, много полезна информация.