1.1, Moralez (ok), 07:40, 17/10/2005 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
"If the memory shortage is severe enough, vm_pageout_scan will kill the largest process on the system". (FreeBSD)
Разве? | |
|
2.2, Аноним (-), 09:51, 17/10/2005 [^] [^^] [^^^] [ответить]
| +/– |
>"If the memory shortage is severe enough, vm_pageout_scan will kill the largest
>process on the system". (FreeBSD)
>
>Разве?
Незнаю как в пятерке, а в FreeBSD 4 если начинался активный рост числа или размера процессов и дело доходило до свопинга, то эту цепную реакцию мог остановить только ребут по питанию. В Linux начинает рубить большие процессы и до необратимого ухода в своп реже дело доходит.
| |
|
3.3, Аноним (-), 09:54, 17/10/2005 [^] [^^] [^^^] [ответить]
| +/– |
У меня под Linux есть процесс с "size" 400Мб и RSS 5 Мб. Причем в системе всего 128 Мб памяти, при этом занятость свопа нулевая. Я все недоумеваю, как такое может быть. | |
|
4.6, DEC (ok), 11:58, 17/10/2005 [^] [^^] [^^^] [ответить]
| +/– |
Всё оч. просто. Он эту память заказал, но не заполнил данными. | |
|
5.7, Аноним (-), 12:04, 17/10/2005 [^] [^^] [^^^] [ответить]
| +/– |
>Всё оч. просто. Он эту память заказал, но не заполнил данными.
Каким образом заказал ? Как я понимаю, если сделан malloc, то память уже используется, отследить пишется туда что-то или нет невозможно.
mmap'ом тоже такого не добиться, это вам не диск где можно создать "дырявый" файл. | |
|
6.8, Andrew (??), 13:07, 17/10/2005 [^] [^^] [^^^] [ответить]
| +/– |
> Каким образом заказал ? Как я понимаю, если сделан malloc, то память уже
> используется, отследить пишется туда что-то или нет невозможно.
> mmap'ом тоже такого не добиться, это вам не диск где можно создать
> "дырявый" файл.
malloc выдяет некую область памяти в виртуальном адресном пространстве процесса. Страницы физической памяти выделяются при первом обращении к конкретному адресу памяти на чтение или запись (в процессе обработки page fault). | |
6.9, Аноним (5), 13:08, 17/10/2005 [^] [^^] [^^^] [ответить]
| +/– |
Насколько я помню, в винде это называется резервированием памяти, т.е. резервируется часть _виртуальной_ памяти (точнее только адресное пространство), а сама отдача памяти проиходит только в случае обращения к ней (к зарезервированному участку), причем добавляется память постранично. | |
|
|
4.10, Slayer (??), 15:34, 17/10/2005 [^] [^^] [^^^] [ответить]
| +/– |
В VSZ, насколько я понимаю, входит очень многое, в том числе mmap'ed файлы и т.д. | |
|
5.13, Антон (??), 09:53, 18/10/2005 [^] [^^] [^^^] [ответить]
| +/– |
Можно вопросы по теме ?
Как работает механизм осовобождения памяти в Linux ?
Я так понимаю, что когда процесс вызывает free(), то реально память не становится доступной для других процессов, а остается как-бы за текущим, на случай если он опять запросит память.
Можно ли расчитать, сколько физической памяти жрет процесс, или только примерно смотря на RSS ? | |
|
6.15, _Nick_ (??), 10:48, 18/10/2005 [^] [^^] [^^^] [ответить]
| +/– |
>Можно вопросы по теме ?
нужно
>Как работает механизм осовобождения памяти в Linux ?
отлично
>Я так понимаю, что когда процесс вызывает free(), то реально память не
>становится доступной для других процессов, а остается как-бы за текущим,
>на случай если он опять запросит память.
да. Реально память НЕГАРАНТИРОВАННО освобождается. И БЕЗ "как-бы" остается на считу у текущего процесса.
malloc() и free() - это функции glibc, которые управляют размещением памяти процесса.
А размер самой памяти (виртуальный) занимаемый процессом меняется системным вызовом brk(). Так malloc() с большой вероятностью увеличит размер процесса. А вот free() [практически] никогда не уменьшает его :)
А зачем? ведь, как ты сказал, через пару сек malloc() затребует памяти и опять двигать границу процесса - лишняя нагрузка на подсистему памяти.
А если процесс отхапал много и не пользует и не отдает - то свалится в своп при необходимости ;)
>Можно ли расчитать, сколько физической памяти жрет процесс, или только примерно смотря
>на RSS ?
смотри /proc/<PID>/status
точнее вряд ли тебе понядобится ;) а если и понадобится, то все равно эта цыфра может меняется несколько сот раз в секунду ;))))))) тогда бери дебаггер в руки %) | |
|
7.16, wulf (?), 01:24, 19/10/2005 [^] [^^] [^^^] [ответить]
| +/– |
>>Как работает механизм осовобождения памяти в Linux ?
>отлично
Благородный дон не кинет ли, случайно, в массы ссылочкой как memory management работает в 2.6 ядрах, а то, простой поиск в гугеле наталкивается на заметки Rik van Riel про то как он (memory mangement)хреново работает в 2.2 и как с этим собираются бороться в 2.4, как из этого мало чего хорошего получилось в 2.4.10 и какое количество новых революционных идей с названиями на подобие AdvancedPageReplacement они собираются реализовать в будущих ядрах.
Желательно в доступном изложении а-ля http://www.freebsd.org/doc/en_US.ISO8859-1/articles/vm-design/index.html
Ведь там (в 2.6) много чего реально сделали для борьбы с этой традиционной проблемой линукса. Только, к сожалению, эта инфа теряется среди репортов о предыдущих неудачах
| |
|
8.17, _Nick_ (??), 10:29, 19/10/2005 [^] [^^] [^^^] [ответить] | +/– | а знаешь анекдот про то, как работает мотор вот как спросил - так я и ответил... текст свёрнут, показать | |
|
9.18, Vasya (??), 13:24, 19/10/2005 [^] [^^] [^^^] [ответить] | +/– | Линух никогда на десктопе не будет работать быстрее Винды Винда заточена под де... текст свёрнут, показать | |
|
10.20, _Nick_ (??), 14:57, 19/10/2005 [^] [^^] [^^^] [ответить] | +/– | Винда те нарисует быстро одно окно Ну два А если задача усложняется - то скажи... большой текст свёрнут, показать | |
|
9.19, Wulf (?), 14:48, 19/10/2005 [^] [^^] [^^^] [ответить] | +/– | Просил ссылку, но спасибо, уже сам сиог отыскать что-нибудь отдаленно похожее h... текст свёрнут, показать | |
|
10.22, Vasya (??), 16:25, 19/10/2005 [^] [^^] [^^^] [ответить] | +/– | Да действительно, таких монументальных трудов как Solaris internals для Линуха ... текст свёрнут, показать | |
|
|
|
|
|
5.14, _Nick_ (??), 10:21, 18/10/2005 [^] [^^] [^^^] [ответить]
| +/– |
>Интересное следствие: Процесс может делать alloc(сколь_угодно_много), отказа
ему не будет даже в
>том случае, когда он просит больше, чем суммарный размер оперативки и
>свопа
а про 3Gb (или 2 для любителей остренького) лимит виртуального размера процесса на i386 мы забыли??? или зачем ламмеров пугать?? да?
>PPS: Если кто хочет, чтобы я это преподавал - обращайтесь в СтинсКоман
>http://www.infosystems.ru
....преподаватель...
с такими "неточностями" будешь азбуку в детсаде повторять.. | |
|
|
|
|
1.26, rr (?), 19:02, 25/10/2005 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
я тоже венду не воспринимаю как полноценную ось Но считать Линух панацеей от всего - это тоже ошибочное мнение. В некоторых задачах Линух действительно рулит, но есть задачи, с которыми другие оси справляются лучше. На моей тачке стоит Линух, нетбсд, была еще фря, но я снес недавно(оптимизация дискового пространства ;)) )
В качестве домашней мультимедиа-станции я линухом доволен. | |
|