|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Valentin Nechayev 2:5020/400 15 Sep 2005 01:52:13 To : lve@aanet.ru Subject : Re: malloc() overcommit bug -------------------------------------------------------------------------------- >>> Vitaly E. Lavrov wrote: >> Hа винде, солярке, HPUX такой проблемы, как говорят, нет. >> Hа ядрах 2.6 и выше линукса это можно отключить установкой >> /proc/sys/vm/overcommit_memory в 2. VEL> a что делать VM после кода VEL> p=malloc(много); много+много > больше доступной памяти, а много < больше VEL> доступной памяти VEL> bzero(p); VEL> fork(); VEL> bzero(p); VEL> память честно выделена и проинициализирована, а после fork() VEL> она должна быть у каждого проуесса своя. Copy-on-write и учёт затрат памяти при этом - отдельная грустная тема. Фактически это второй фактор, кроме lazy commit'а, "резиновости" оценки памяти. Третий - файлы открытые на MAP_PRIVATE. И если лечить - то все три. Может, их ещё больше. В ru.unix.prog это обсуждалось на моей памяти минимум дважды, причём в один из раз очень обширно, многосторонне и продвинуто; дошло до того, что был реализован патч (не вошедший, вестимо, в основную систему) который спасает в случае исчерпания виртуальной памяти - за счёт ремаппинга своповых областей в файлы в /tmp;) Hу и обсуждения были неплохие. -netch- --- ifmail v.2.15dev5.3 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/2238347c374a6.html, оценка из 5, голосов 10
|