The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Механизм уведомления приложений о нехватке памяти в системе

07.02.2008 14:33

Kosaki Motohiro представил mem_notify патч для Linux ядра, суть которого в создании специального устройства /dev/mem_notify при помощи которого приложения могут корректировать объем используемой памяти в зависимости от объема свободной памяти в системе.

При нехватке памяти приложение может быть вытеснено в раздел подкачки или принудительно завершено обработчиком состояния нехватки памяти (OOM - out-of-memory killer). При помощи /dev/mem_notify, программа может избежать печальной участи, освободив некритичные секции памяти, например, перестать использовать кэш уровня приложения, и выжить за счет некоторой потери производительности.

  1. Главная ссылка к новости (http://lwn.net/Articles/267013...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/14076-linux
Ключевые слова: linux, kernel, memory
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (8) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, leonid.ko (?), 16:22, 07/02/2008 [ответить]  
  • +/
    Блин, не патч, а квест на выживание какой-то.
     
  • 1.2, Аноним (-), 17:12, 07/02/2008 [ответить]  
  • +/
    Бред какой-то.

    Размер кешей и буферов должна операционка сама регулировать.

    А oom-killer выключается простым запретом overcommit. Программам просто не будет выделятся память при её нехватке.

    Правильно написанные программы, и так возвращают память когда она им не нужна. А неправильные - клали с прибором на новый notify как и на всё остальное ))

     
     
  • 2.3, Денис Смирнов (?), 17:30, 07/02/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Бред какой-то.
    >
    >Размер кешей и буферов должна операционка сама регулировать.

    У приложения может быть _свой_ кэш. Работающий не на уровне блоков, а на уровне, например, строк БД.

    К примеру объекты, которые можно в любой момент прочитать с диска -- можно просто держать всегда в кэше, но по необоходимости корректировать размер этого кэша.

     
  • 2.4, Дмитрий Ю. Карпов (?), 17:38, 07/02/2008 [^] [^^] [^^^] [ответить]  
  • +/
    В качестве примера можно привести Squid, который держит ряд данных в своей памяти - он вполне может регулировать себя по указанию операционки.
     
  • 2.7, R007 (??), 03:55, 09/02/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >А oom-killer выключается простым запретом overcommit.

    И что, всегда и всем программам будет выделяться сразу вся заказанная ими память?Жрач память возрастет, бесспорно.

    >Программам просто не будет выделятся память
    >при её нехватке.

    ...которая как я понимаю после данного действа станет куда как более вероятным событием :)

    >Правильно написанные программы, и так возвращают память когда она им не нужна.

    ...насколько я знаю, вызывая противное явление фрагментации памяти.Так?

    >А неправильные - клали с прибором на новый notify как и
    >на всё остальное ))

    Ну вообще-то апликухи могли бы кешить дофига данных если памяти полно в пользу скорости а если душняк наступает - немного растрясти жирок пусть и ценой скорости.Сам по себе OOM killer - русская рулетка да и только.

    Кто б кстати сказал как сделать мягкий вариант OOM Killer?Некий демон который мониторит наличие памяти в системе и гасит процессы по списку приоритетов.Как то - всякую фигню первым делом а критичные процессы только если уже совсем пипец и ресурсы кончаются или если процесс сдурел и жрет память оптом.

     

  • 1.5, null (??), 06:11, 08/02/2008 [ответить]  
  • +/
    ИМХО, если руководствоваться смыслом новости только из заголовка, более правильным выглядит помещение информации не в /dev/*, а в /proc/self/*
     
  • 1.6, Wulf (?), 15:00, 08/02/2008 [ответить]  
  • +/
    А чем их традиционный AIX-овский SIGDANGER не устроил, что начали еще один велосипед изобретать?
     
     
  • 2.8, ZANSWER (??), 16:29, 09/02/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Дайте угадаю, потому что он AIX-овский, а значит не ТРУ...;)
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру