Linux - почему kernel.shmall настолько низко по умолчанию?

Это зависит. Если у Вас есть небольшой объем памяти, использование модулей может улучшить резюме, поскольку они не перезагружаются каждый раз (я нашел это значительным на 2 гибибайтах RAM, но не на 4 гибибайтах на традиционных жестких дисках). Это особенно верно в срок для некоторой ошибки в аккумуляторном модуле (независимо от того, чтобы быть скомпилированным - в или как модуль), это брало очень долго для запуска (несколько минут). Даже без ошибки на хинду мне удалось сократить время (сообщаемый systemd-analysis) от 33 до 18 только путем изменения от статически скомпилированного ядра до модулей - 'удивительно' запуск ядра, измененного от 9 с до 1,5 с.

Кроме того, когда Вы не знаете, какие аппаратные средства Вы собирающийся использовать, модули явно выгодны.

PS. Можно скомпилировать даже жизненные драйверы как модули, пока Вы включаете их в initrd. Например, дистрибутивы будут включать файловую систему/, драйверы жесткого диска и т.д. в initrd на установке.

5
07.04.2011, 23:15
1 ответ

Общая память является не всегда защищенным ресурсом. Как таковой многие пользователи могут выделить общую память. Это также автоматически не возвращается к пулу памяти, когда процесс, который выделил его, умирает. Это может привести к выделениям общей памяти, которые выделялись, но не использовались. Это приводит к утечке памяти, которая не может быть очевидной.

Путем поддержания пределов общей памяти на низком уровне может работать большинство процессов, которые используют общую память (в небольших количествах). Однако потенциальный ущерб ограничен. Единственные системы у меня есть использование, которое требует больших объемов общей памяти, являются серверами баз данных. Они обычно администрируемы системными администраторами, которые знают о требованиях. В противном случае DBA обычно знает о требовании и может попросить соответствующие изменения конфигурации. Инструкции по установке базы данных обычно указывают, как вычислить и установить соответствующие пределы.

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

4
27.01.2020, 20:41

Теги

Похожие вопросы