URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 40084
[ Назад ]

Исходное сообщение
"OpenNews: Механизм уведомления приложений о нехватке памяти в системе"

Отправлено opennews , 07-Фев-08 16:22 
Kosaki Motohiro представил (http://lwn.net/Articles/267013/) mem_notify патч для Linux ядра, суть которого в создании специального устройства /dev/mem_notify при помощи которого приложения могут корректировать объем используемой памяти в зависимости от объема свободной памяти в системе.


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

URL: http://lwn.net/Articles/267013/
Новость: http://www.opennet.me/opennews/art.shtml?num=14076


Содержание

Сообщения в этом обсуждении
"Механизм уведомления приложений о нехватке памяти в системе"
Отправлено leonid.ko , 07-Фев-08 16:22 
Блин, не патч, а квест на выживание какой-то.

"Механизм уведомления приложений о нехватке памяти в системе"
Отправлено Аноним , 07-Фев-08 17:12 
Бред какой-то.

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

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

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


"Механизм уведомления приложений о нехватке памяти в системе"
Отправлено Денис Смирнов , 07-Фев-08 17:30 
>Бред какой-то.
>
>Размер кешей и буферов должна операционка сама регулировать.

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

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


"Это нужно для Squid"
Отправлено Дмитрий Ю. Карпов , 07-Фев-08 17:38 
В качестве примера можно привести Squid, который держит ряд данных в своей памяти - он вполне может регулировать себя по указанию операционки.

"Механизм уведомления приложений о нехватке памяти в системе"
Отправлено R007 , 09-Фев-08 03:55 
>А oom-killer выключается простым запретом overcommit.

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

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

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

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

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

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

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

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


"Механизм уведомления приложений о нехватке памяти в системе"
Отправлено null , 08-Фев-08 06:11 
ИМХО, если руководствоваться смыслом новости только из заголовка, более правильным выглядит помещение информации не в /dev/*, а в /proc/self/*

"Механизм уведомления приложений о нехватке памяти в системе"
Отправлено Wulf , 08-Фев-08 15:00 
А чем их традиционный AIX-овский SIGDANGER не устроил, что начали еще один велосипед изобретать?

"Механизм уведомления приложений о нехватке памяти в системе"
Отправлено ZANSWER , 09-Фев-08 16:29 
Дайте угадаю, потому что он AIX-овский, а значит не ТРУ...;)