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

Исходное сообщение
"Как уменьшит дисковый кэш?"

Отправлено ПавелС , 24-Дек-16 11:53 
У меня 16Gb RAM на домашнем десктопе. Например при сборке ядра Linux дисковый кэш вырастает до 10Gb. При этом время сборки ядра вместо 1 часа (на 4Gb RAM, kernelcmd: mem=4G ) возрастает до 2 часов. Хотелось бы иметь всю RAM доступной, но дисковый кэш ограничить например 2Gb.
Гуглил, есть советы но для старых ядер. В Documentation/kernel_parameters.txt ничего не нашёл.
Плиз посоветуйте, как решить эту проблемму?  

Содержание

Сообщения в этом обсуждении
"Как уменьшит дисковый кэш?"
Отправлено DeerFriend , 24-Дек-16 12:50 
swap есть? Попробуй отключить.



"Как уменьшит дисковый кэш?"
Отправлено Andrey Mitrofanov , 24-Дек-16 14:08 
> У меня 16Gb RAM на домашнем десктопе. Например при сборке ядра Linux
> дисковый кэш вырастает до 10Gb. При этом время сборки ядра вместо
> 1 часа (на 4Gb RAM, kernelcmd: mem=4G ) возрастает до 2
> часов. Хотелось бы иметь всю RAM доступной, но дисковый кэш ограничить
> например 2Gb.
> Гуглил, есть советы но для старых ядер. В Documentation/kernel_parameters.txt ничего не
> нашёл.
> Плиз посоветуйте, как решить эту проблемму?

1/ http://unix.stackexchange.com/a/87909 -- но будет же только хуже.

2/ Сделай tmpfs достаточного для своей сборки объёма -- собирай на ней.
2a/ Да-да, своп включить и увеличить, если понадобится.

Мне помогло - сборки стали быстрее (не во много раз, но раза в полтора+-, вроде). Я 15ГБ tmpfs делаю и не морочаюсь: на 6ГБ физ.ОЗУ с доп.свопом в файлах -- на время сборки. Или 8ГБ на другой машине с 3ГБ физики.

Про "ограничение кеша", swappiness и пр.чорные магии - я не копенгаген.
http://stackoverflow.com/questions/17148091/page-cache-limit
http://www.linuxquestions.org/questions/linux-newbie-8/limit.../

Про 16ГБ вдвое медленнее 4ёх ГБ -- тоже: очень странно, но не знаю, чего бы это могло быть. Может, в зале есть "ядерщики"...

3x/ Мне было бы интересно услышать, не станет ли внезапно сборка ядра (хотя тест так себе...) быстрее на i386 установке ОС (и компиляторе), и всё ещё x86_64 ядре под ними (вся память доступна). Я так "живу" (...кроме серверов с постгресом, 10Г shared буфера _в_нём_ и 128Г физики), но сам не тестировал в сравнении с "прогрессивной" дважды жручей архитектурой.


"Как уменьшит дисковый кэш?"
Отправлено ПавелС , 24-Дек-16 14:28 
>> У меня 16Gb RAM на домашнем десктопе. Например при сборке ядра Linux
>> дисковый кэш вырастает до 10Gb. При этом время сборки ядра вместо
>> 1 часа (на 4Gb RAM, kernelcmd: mem=4G ) возрастает до 2
>> часов. Хотелось бы иметь всю RAM доступной, но дисковый кэш ограничить
>> например 2Gb.
>> Гуглил, есть советы но для старых ядер. В Documentation/kernel_parameters.txt ничего не
>> нашёл.
>> Плиз посоветуйте, как решить эту проблемму?
> 1/ http://unix.stackexchange.com/a/87909 -- но будет же только хуже.

Спасибо, понятно как высвободить кэш, но это единовременно.

> 2/ Сделай tmpfs достаточного для своей сборки объёма -- собирай на ней.

Делал, собирал ядро на 12G tmpfs. Меня больше интересует регрессия производитетльности 16 vs 4 Gb ОЗУ.
> 2a/ Да-да, своп включить и увеличить, если понадобится.

Своп есть, ничего не свопится.
>[оверквотинг удален]
> http://stackoverflow.com/questions/17148091/page-cache-limit
> http://www.linuxquestions.org/questions/linux-newbie-8/limit.../
> Про 16ГБ вдвое медленнее 4ёх ГБ -- тоже: очень странно, но не
> знаю, чего бы это могло быть. Может, в зале есть "ядерщики"...
> 3x/ Мне было бы интересно услышать, не станет ли внезапно сборка ядра
> (хотя тест так себе...) быстрее на i386 установке ОС (и компиляторе),
> и всё ещё x86_64 ядре под ними (вся память доступна). Я
> так "живу" (...кроме серверов с постгресом, 10Г shared буфера _в_нём_ и
> 128Г физики), но сам не тестировал в сравнении с "прогрессивной" дважды
> жручей архитектурой.


"Как уменьшит дисковый кэш?"
Отправлено Doka , 25-Дек-16 21:28 
> У меня 16Gb RAM на домашнем десктопе. Например при сборке ядра Linux
> дисковый кэш вырастает до 10Gb. При этом время сборки ядра вместо
> 1 часа (на 4Gb RAM, kernelcmd: mem=4G ) возрастает до 2
> часов. Хотелось бы иметь всю RAM доступной, но дисковый кэш ограничить
> например 2Gb.
> Гуглил, есть советы но для старых ядер. В Documentation/kernel_parameters.txt ничего не
> нашёл.
> Плиз посоветуйте, как решить эту проблемму?

Может дело не в дисковом кэше.
Что за процессор? Если TLB-кэша на 16Gb начинает не хватать, и могут начаться тормоза...
Если командой time замерить, как будут отличаться user/sys time ?



"Как уменьшит дисковый кэш?"
Отправлено Павел Самсонов , 26-Дек-16 10:56 
>[оверквотинг удален]
>> дисковый кэш вырастает до 10Gb. При этом время сборки ядра вместо
>> 1 часа (на 4Gb RAM, kernelcmd: mem=4G ) возрастает до 2
>> часов. Хотелось бы иметь всю RAM доступной, но дисковый кэш ограничить
>> например 2Gb.
>> Гуглил, есть советы но для старых ядер. В Documentation/kernel_parameters.txt ничего не
>> нашёл.
>> Плиз посоветуйте, как решить эту проблемму?
> Может дело не в дисковом кэше.
> Что за процессор? Если TLB-кэша на 16Gb начинает не хватать, и могут
> начаться тормоза...

Процессор Athlon X3. Да тут все понятно, кэш очень большой, и поиск инод в 10G списках даже в памяти начинает быть накладным.
> Если командой time замерить, как будут отличаться user/sys time ?


"Как уменьшит дисковый кэш?"
Отправлено Аноним , 20-Май-20 10:57 
> У меня 16Gb RAM на домашнем десктопе. Например при сборке ядра Linux
> дисковый кэш вырастает до 10Gb. При этом время сборки ядра вместо
> 1 часа (на 4Gb RAM, kernelcmd: mem=4G ) возрастает до 2
> часов. Хотелось бы иметь всю RAM доступной, но дисковый кэш ограничить
> например 2Gb.
> Гуглил, есть советы но для старых ядер. В Documentation/kernel_parameters.txt ничего не
> нашёл.
> Плиз посоветуйте, как решить эту проблемму?

не надо ничего предпринимать и уменьшать, если почитаешь про память, то это размер высвобождаемого кэша в памяти, короче он ее фактически не занимает вроде бы или тип того. в общем на количество используемой памятки не влияет это никак. при твоих 16Гб забей вообще на все ;)


"Как уменьшит дисковый кэш?"
Отправлено Licha Morada , 20-Май-20 19:01 
> У меня 16Gb RAM на домашнем десктопе. Например при сборке ядра Linux
> дисковый кэш вырастает до 10Gb. При этом время сборки ядра вместо
> 1 часа (на 4Gb RAM, kernelcmd: mem=4G ) возрастает до 2
> часов.

Даже 1 час это ненормально долго. Специально проверил на машине 8-ми летней давности: AMD A8-3870 на 3 (три) ядра, 8 гиг памяти, консумерский SSD, Ubuntu 16.04. 6 минут компилится linux-5.6.13.

Скорее всего, дело не в количестве памяти как таковом, а в чём-то ещё, что триггерится количеством памяти.
Ищите узкое место и анормальное поведение. Начните с top. Прикрутите какую-нибудь базовую мониторилку чтоб историю писала. Смотрите на ошибки в dmesg, при загрузке и когда компилится.
Может быть всё что угодно, от сыплющегося диска до прожорливой мальвари.

> Хотелось бы иметь всю RAM доступной, но дисковый кэш ограничить
> например 2Gb.

В общем случае, RAM занятую кэшем следует считать "доступной".
https://www.linuxatemyram.com/