ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

The Linux kernel Out of Memory (OOM) killer



Добрый день,

Сорри за оффтоп, но OOM killer что-то разбушевался, убивает процессы при
достаточном наличии
свободной памяти на RHEL 4, процессы не текут. Кто-нибудь с этим уже
встречался?

Может ли это быть следствием прихода тысяч соединений
(выделяются системные буфера под сокет etc.)?

Навеяно борьбой с OOM:

init task -> malloc: "Просьба обеспечить выделение 257 Кб памяти."

malloc -> kernel: "Прошу выделить 257 Кб памяти в сегменте данных в связи
с производственной необходимостью."

kernel -> vm manager: "Предоставте 257 Кб резидентной памяти"

vm_manager -> kernel: "Предоставление 257 Кб физической памяти не
представляется
возможным в связи с отсутствием таковых. Сейчас попробуем чего - нибудь
найти."

vm_manager -> bdflushd: "С памятью облом. Что делать будем? Может почистим
кэши?"

ksoftirqd_CPU0 -> kernel: "Тут это... юзер кнопку нажал..."

kernel -> init task: "Эта, тут от тебя юзер чего - то хочет..."

init -> kernel: "Не дергайся! Подержит и отпустит."

kernel -> ksoftirqd_CPU0: "Забей на юзера."

bdflushd -> vm_manager: "Готово!"

kernel -> vm_manager: "Ну что там?"

vm_manager -> kernel: "Еще хуже стало. Может, на диск посвопимся?"

kernel -> kupdated: "Прошу принять на хранение swap-файл в размере 257
килобайт."

kupdated -> kernel: "Ваша просьба не может быть удовлетворена за недостатком
места."

kernel -> vfs: "Что еще за глюк? Было же место!"

vfs -> kernel: "Ничего не глюк. Вы еще прошлый swap-файл на 4 мега не
забрали.
А я, между прочим, не резиновый. И даже не stacker'ный."

ksoftirqd_CPU0 -> kernel: "Тут это... юзер опять кнопку давит..."

kernel -> ALSA: "Ну скажи ему что-нибудь, пусть отвяжется!"

ALSA -> юзеру: "Биип!"

vm_manager -> kernel: "Ну может можно там чего-нибудь перераспределить?"

kernel -> vm_manager: "Другим задачам тоже память нужна. Вам что,
kernel panic схлопотать охота?"

kernel -> OOM_killer: "Ну-ка выясни, кто там отожрал всю память,
и выкини их к MS-овской матери!"

ksoftirqd_CPU0 -> kernel: "Тут юзер Ctrl-Alt-Del жмет!"

kernel -> ksoftirqd_CPU0: "Да отруби ты этому зануде клавиатуру!
Мы тут делом заняты..."

OOM_killer -> kernel: "Опаньки!"

init task -> kernel: "Ну что там? Сколько памяти свободно?"

kernel -> init task: "320 физической и... ой, куда это kupdated делся?

kernel -> OOM_killer: "Ты что начистил, сволочь?"

OOM_killer -> kernel: "А чо я, чо я? Мне сказали - выкинуть, я и выкидываю!"

malloc -> kernel: "Это опять я. Прошу выделить 257 Кб памяти в сегменте
данных
в связи с производственной необходимостью."

kernel -> init task: "Не могу. У меня kupdated важные данные куда-то
поныкал,
а его прибили. И вообще, я с вами скоро паниковать начну!"

Кнопка Reset -> CPU: "Ну что? Доигрались?"

... ХОЛОДНЫЙ РЕСТАРТ...

kernel -> init: "Так на чем мы остановились?"





 




Copyright © Lexa Software, 1996-2009.