отцам Линухи 2

APulya

Ну ладно, с забили. Ответьте пожалуйста, знающие люди, на такой вопрос:
Конфигурация та же: PII 233 Mhz, 264 Mb SDRAM, ASP Linux 7.3
Запущен только апач и HLDS, X-window не гружу.
Теперь набираем top и следим кто сколько памяти, etc. жрет.
Так вот, только что поднятая и работающая конфигурация занимает около 140 Mb оперативки. Дальше свободная память занимается шагами по 8,12,16 K в две-три секунды. И так до тех пор, пока не забивается вся свободная оперативка. Скажите пожалуйста, как определить кто ворует память, как его искать и можно ли мочить?

LAWD

А славная команда топ
Уж не даёт тебе ответа
На этот странный твой вопрос:
"Ау, озушка, где ты, где ты?"
Вам замечание (+). Флуд в тематическом разделе.

APulya

так там куча рутовых процессов иниты, логины и у всех памяти понемногу. у меня не получалось отследить к кому уходили в следующую секунду очередные 8К.

abrek

дисковый кеш?
man free
man vmstat

APulya

Прочитал, память из фри перетекает в buff. а как её оттуда освобождать?
Да и не вешать же на крон проверку и освобождение памяти? Как запретить забирать память?

abrek

смешной ты
слово "кеш" ни о чём не говорит?

APulya

ну смейся, раз я смешной. :\

APulya

Linux will by default attempt to use free memory for buffers and disk cache. The idea is that if you have a ton of free memory sitting aroung it's better to use it for something useful (disk cache) than for it to be unused.
As programs request memory it gets released from disk cache/buffers and allocated to the program in question. However, your 'free' memory (as reported by free) will show a very little amount of actual FREE memory, and huge amounts allocated to buffers and cached. This is NORMAL.
In addition, when programs which request memory and then subsequently release it Linux doesn't mark the memory as FREE. It marks it as 'unused' but doesn't drop it back into the 'free' stack. When another program requests a block of memory it'll do a sweep through memory space and allocate the previously free'd memory to it. Essentially it means that the kernel doesn't have to make multiple page calls whenever someone uses a bit of memory, and instead uses a much more efficient memory sweeper to clean up as/when it's needed.
The net result is that you can't rely on what's reported in 'free'. You'll always have a minumum of 10% 'free' memory, and Linux reseves this as memory needed to start an application (instantly). Linux will ALWAYS use everything in your system, up to that 10% point. So a low free memory count is standard operation.
Так? Тоесть все заебцом?
Можно было так и написать, что все заебцом?
Хоть скажи так, или не так? Или ты все смеешься..?

ppplva

Ну да. Если она действительно на кеш уходит, то все зашибись. Другое дело, если hlds память отжирает, за это надо программистов из Valve по рогам бить. Впрочем, это все хня, ты, наверное, cs- and ns- демок не видел. Верх маразма.

APulya

На какой кеш? ты хоть читал, что я запостил последним?
hlds память не отжирает. Если верить top.
А про маразм и демки не понял к чему ты... :\

ppplva

Я хотел сказать, что количество "свободной" памяти, которое показывает top - величина, более зависящая от атмосферного давления и температуры окружающей среды.
А демки в halflife - это просто верх программистского исскуства. Это ТАКОЙ рассадник багов! Клиника. Одно слово - Valve.

sergey_m

ВСЕ ЗАЕБЦОМ
Оставить комментарий
Имя или ник:
Комментарий: