|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Aleksey Barabanov 2:5020/400 05 Dec 2003 12:56:55 To : Kirill Frolov Subject : Re: дефрагментация ex3 -------------------------------------------------------------------------------- Kirill Frolov wrote: > Hемедленно нажми на RESET, Aleksey Barabanov! > > On Wed, 03 Dec 03 11:26:41 +0300, Aleksey Barabanov wrote: > > >> Hа примере программ вроде XFree, Mozilla и т.п. прекрасно видно, > >> что > >> при перезапуске и памяти меньше требуется, и работает быстрей... > AB> А вы не путаете "утечку памяти" с простым ее кешированием. При > перезапуске > > Кэшированием чего? Кэшированием памяти в ОЗУ? Гениально! ;) Запускаем мозиллу, смотрим на список отфорковки по ps xua | grep mozilla-bin, заглядываем на /proc/pid для последнего процесса. _Внимательно_ изучаем содержимое этой директории, особенно maps и status. Далее проходим по нескольким страницам http и снова _внимательно_ изучаем что меняется. Делаем выводы. Это что на счет мозиллы и почему она так "по-разному" работает (или хреново работает ;). Теперь на счет кеширования памяти. Я думал вы просто заблуждаетесь. А вы просто нифига ничего не знаете или не хотите думать. Hу так для разминки прикиньте как можно при блоке памяти в 4К выделить для процесса 1 байт. Где будет хранится информация о том что выделен только 1 байт в блоке на 4К а остальное свободно ? А если процесс освободит ранее запрошенный 1 байт из блока, то где будет проводится проверка, а нет ли еще выделенной памяти в том же блоке ? А если будет запрошена линеаризация группы выделенных сегментов, то как это организовать алгоритмически ? Да линукс внутри просто набит кешами и кешами кешей "под завязку". Теперь на счет "утечки". Если происходит выделение блоков памяти, а потом возврат, то не факт, что возвращенные блоки сразу поступают в общий доступ. Я не очень интересовался как это происходит конкретно у процессов. Меня больше это волновало в отношении ядра. Поэтому могу что-то исказить неумышленно, но если и там все происходит так же как и в ядре (slab.c) то после освобождения ранее запрошенного сегмента памяти он просто возвращается в кеш с пометкой "свободен". Подробно для системных структур см. /proc/slabinfo. Мне несколько лениво копать из-за одного несведующего чайника тексты ядра, но при беглом просмотре там обнаруживаются теже элементы управления что и в slab. Структура mm_struct имеет такие же атомарные счетчики использования что и другие ядерные кэши. Теперь снова на счет "утечки". Если бы этот процесс на самом деле имел место быть в реалии, а не только в воспаленном сознании Kirill Frolov, то у линуксовых серверов был бы аптайм такой же как и у мастдаев - 1 неделя ;) А у меня линуксовые файловые сервера работают неболее полугода только потому, что ups иногда не справляются ;) -- Bye. Aleksey Barabanov <alekseybb at mail.ru> Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5.1 * Origin: home (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/78242d5d9b56.html, оценка из 5, голосов 10
|