--- tags: [linux, debian, sysctl] author: qbbr --- ### cat /etc/sysctl.d/memory.conf ```bash # Ограничение размера буфера. # По умолчанию: 0 # # Содержит количество "грязной" памяти при котором процесс генерирующий # дисковую запись самостоятельно начнёт обратную запись. # Если dirty_bytes установлено, dirty_ratio становится функцией к этому значению # (dirty_bytes / размер "загрязняемой" системной памяти). vm.dirty_bytes = 4194304 # Содержит количество "грязной" памяти при котором фоновый демон # обратной записи pdflush начнёт обратную запись. # Eсли dirty_background_bytes указан, то dirty_background_ratio становится # функцией к этому значению т.е. # (dirty_background_bytes / размер "загрязняемой" системной памяти). vm.dirty_background_bytes = 4194304 # Отвечает за стратегию overcommit. # Параметр overcommit_memory указывает стратегию выделения памяти: # OVERCOMMIT_ALWAYS (1) — ядро всегда удовлетворяет любые запросы # на выделение памяти. Реально страницы памяти будут выделяться при # первом обращении к ним. # OVERCOMMIT_GUESS (0) — эвристический подход к распределению памяти. # Используется по умолчанию. Система будет отвергать только запросы, # которые в принципе не могут быть удовлетворены, остальные — удовлетворять # вне зависимости от наличия свободной памяти. # На деле практически не отличим о OVERCOMMIT_ALWAYS. # OVERCOMMIT_NEVER (2) — работа без overcommit. Полный объём памяти, # исходя из которого будут удовлетворяться или отвергаться запросы # на выделение памяти, # вычисляется как total_swap + total_ram * overcommit_ratio / 100. # Таким образом, при overcommit_ratio < 100, система всегда будет # выделять память только если она подкреплена реальными страницами # в ОЗУ или свопе. При overcommit_ratio > 100 мы получаем режим, # схожий с OVERCOMMIT_GUESS, но с явно установленным «ограничителем». vm.overcommit_memory = 2 # Отвечает за уровень (в процентах) overcommit-а. vm.overcommit_ratio = 80 # Уровень выделяемой памяти под кэш. Значение по умолчанию: 100. # vfs_cache_pressure = 1000 mb? vm.vfs_cache_pressure = 50 # Значение (в целых процентах), это уровень свободной памяти, # при котором система начнет активно сбрасывать память в своп. # Значение по умолчанию: 60. vm.swappiness = 30 # Сколько миллисекунд должно пройти, чтобы ядро посчитало незаписанные # в ФС данные достаточно устаревшими для их записи vm.dirty_expire_centisecs = 6000 # Как часто ядро должно находить незаписанные в ФС данные и писать их vm.dirty_writeback_centisecs = 2000 ```