|
2.4, Антон (??), 12:23, 10/09/2007 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>Полезная фича для бенчмарков файловых систем. А ещё для чего-нибудь может пригодиться?
Например, иногда для выполнения программы нужно сразу много памяти и очень соблазнительно взять ее из дискового кэша который до метров двухсот вырос. Мгновенно он не уменьшится, только через некоторое время, а нужно прямо сейчас иначе предстоит долгое наблюдение за своппингом.
| |
|
3.5, const86 (ok), 18:44, 10/09/2007 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Не замечал подобных явлений.
Вот например, свободной памяти почти нет, большой дисковый кеш. В свопе пусто. Запускаю толстую прогу. Кеш сразу уменьшается, прога умещается в оперативку, своп по-прежнему пустой. "Что я делаю не так?" :)
Вообще, по личным наблюдениям, дисковый кеш можно считать свободной памятью. Потому что прежде, чем лезть в своп, система пожертвует кешем.
Может, если vm.swappiness поставить побольше... но зачем это делать?
| |
|
|
|
2.16, TomB (?), 22:37, 20/06/2010 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
>Уважаемый автор!
>Когда пишите документ - указывайте ссылки!
>В http://linux.die.net/man/5/proc написано совершенно обратное. sync надо выполнять *до* echo!!!
В самом деле sync вообще не обязательно делать, просто если сделать до echo , то после echo могжет очиститься ещё и кэш с незаписанными на диск данными.
| |
|
3.24, linux0id (?), 05:35, 23/10/2013 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> после echo могжет очиститься ещё и кэш с незаписанными на диск данными.
НЕ может.
cache ≠ buffer
Буферы записи не затрагиваются записью любого значения [1|2|3] в drop_caches, т.к. память эта относится к «dirty objects». В документации ядра про sync написано лишь затем, чтобы администратор системы получил максимальный эффект от выполненной операции.
Что будет с sync: «dirty objects» → «clean objects» → «drop caches» → «free memory»
Что будет без sync: «dirty objects» → «drop caches» → «free memory» + «dirty objects»
Т.е. без sync буферы продолжат существовать нетронутыми пока до них не дойдёт очередь в потоке ядра pdflush. Когда данные будут записаны на диск, тогда станет возможной их очистка из памяти, а sync просто принуждает записать на диск «прямо сейчас». Причём, sync нужно запускать дважды, по-хорошему.
Будет максимальное высвобождение памяти от последовательности команд:
sync && sync && echo 3 > /proc/sys/vm/drop_caches
Как-то так.
| |
|
|
1.17, Серга (?), 15:50, 23/06/2010 [ответить] [﹢﹢﹢] [ · · · ] [к модератору]
| +/– |
Спасибо огромное, теперь не придется перезагружать каждый раз сервер, а можно как-нибудь поставить ограничение кэша например на 512 мб?
| |
1.20, Дмитрий (??), 23:48, 29/11/2011 [ответить] [﹢﹢﹢] [ · · · ] [↓] [к модератору]
| +/– |
А зачем их чистить? Это же не мусор в памяти.
Память фактически свободна для процессов.
Понадобится, возьмет сколько надо.
| |
|