[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/check-swap-usage":3,"mdc--v4lov6-key":695,"mdc-g0j5y4-key":705,"mdc-798b4o-key":713,"mdc-wj6jm3-key":737,"mdc-y9y4j9-key":777,"mdc--iq2eox-key":793,"mdc--7ew36c-key":809,"mdc-msmm6n-key":824,"related-/guides/linux/create-swap-file,/guides/linux/optimize-memory-usage,/errors/linux/out-of-memory-error":840},{"id":4,"title":5,"appliesTo":6,"author":12,"body":13,"canonical":629,"code":629,"createdAt":630,"description":631,"difficulty":632,"draft":633,"estimatedTime":634,"extension":635,"faq":636,"howToSteps":649,"howToTotalTime":662,"image":629,"keywords":663,"locale":674,"meta":675,"navigation":676,"path":677,"platform":678,"related":679,"section":683,"seo":684,"severity":629,"stem":685,"summary":686,"tags":687,"twitterCreator":629,"twitterSite":629,"type":693,"updatedAt":630,"__hash__":694},"content_ru/guides/linux/check-swap-usage.md","Как проверить использование swap в Linux: подробное руководство",[7,8,9,10,11],"Ubuntu 20.04+","Debian 10+","CentOS 7+","Fedora 30+","Все дистрибутивы на базе systemd","FixPedia Team",{"type":14,"value":15,"toc":612},"minimark",[16,21,25,28,49,52,56,59,81,85,91,94,115,122,125,133,136,155,165,169,176,179,193,196,202,205,253,256,260,267,321,336,344,348,354,356,368,378,380,386,389,409,417,420,424,427,453,464,468,473,481,518,522,539,543,556,560,570,608],[17,18,20],"h2",{"id":19},"введение","Введение",[22,23,24],"p",{},"Swap-память (подкачка) — критически важный механизм виртуальной памяти в Linux. Когда оперативная память (RAM) заполняется, ядро автоматически перемещает неактивные страницы памяти в swap-область на диске, что позволяет избежать падения процессов из-за нехватки памяти. Однако чрезмерное использование swap может привести к значительному замедлению системы, так как диски медленнее RAM.",[22,26,27],{},"Мониторинг swap-пространства помогает:",[29,30,31,35,38,41],"ul",{},[32,33,34],"li",{},"Диагностировать проблемы с нехваткой памяти.",[32,36,37],{},"Оценить, достаточно ли установленной оперативной памяти.",[32,39,40],{},"Принять решение о настройке или увеличении swap.",[32,42,43,44,48],{},"Оптимизировать производительность системы, регулируя параметры ядра, такие как ",[45,46,47],"code",{},"vm.swappiness",".",[22,50,51],{},"В этом гайде вы освоите несколько стандартных способов проверки использования swap в Linux, от простого просмотра общей информации до детального мониторинга в реальном времени.",[17,53,55],{"id":54},"требования","Требования",[22,57,58],{},"Перед началом убедитесь, что:",[29,60,61,64,67,78],{},[32,62,63],{},"У вас есть доступ к терминалу Linux (локально или через SSH).",[32,65,66],{},"Вы знакомы с основами работы командной строки.",[32,68,69,70,73,74,77],{},"Для выполнения всех команд не требуются права администратора (sudo), за исключением случаев проверки swap на защищённых устройствах (но основные утилиты, такие как ",[45,71,72],{},"free"," и ",[45,75,76],{},"cat /proc/swaps",", доступны всем пользователям).",[32,79,80],{},"Система имеет настроенный swap (раздел или файл). Если swap отсутствует, команды покажут нулевые значения.",[17,82,84],{"id":83},"шаг-1-используйте-команду-free","Шаг 1: Используйте команду free",[22,86,87,88,90],{},"Команда ",[45,89,72],{}," — самый быстрый способ получить общую сводку по оперативной и swap-памяти.",[22,92,93],{},"Выполните в терминале:",[95,96,101],"pre",{"className":97,"code":98,"language":99,"meta":100,"style":100},"language-bash shiki shiki-themes github-light github-dark","free -h\n","bash","",[45,102,103],{"__ignoreMap":100},[104,105,108,111],"span",{"class":106,"line":107},"line",1,[104,109,72],{"class":110},"sScJk",[104,112,114],{"class":113},"sj4cs"," -h\n",[22,116,117,118,121],{},"Ключ ",[45,119,120],{},"-h"," (human-readable) преобразует размеры в килобайты, мегабайты или гигабайты для удобочитаемости.",[22,123,124],{},"Пример вывода на системе с 8 ГБ RAM и 2 ГБ swap:",[95,126,131],{"className":127,"code":129,"language":130},[128],"language-text","              total        used        free      shared  buff/cache   available\nMem:           7.7G        1.2G        5.1G        156M        1.4G        6.1G\nSwap:          2.0G          0B        2.0G\n","text",[45,132,129],{"__ignoreMap":100},[22,134,135],{},"Ключевые столбцы для swap:",[29,137,138,144,150],{},[32,139,140,143],{},[45,141,142],{},"total",": общий размер swap-пространства.",[32,145,146,149],{},[45,147,148],{},"used",": текущее использованное пространство (в данном примере 0B — swap не используется).",[32,151,152,154],{},[45,153,72],{},": свободное swap-пространство.",[22,156,157,158,160,161,164],{},"Если в ",[45,159,148],{}," ненулевое значение, система активно использует swap. Столбец ",[45,162,163],{},"available"," в строке Mem показывает примерный объём памяти, доступной для новых процессов без использования swap.",[17,166,168],{"id":167},"шаг-2-проверьте-детали-в-procswaps","Шаг 2: Проверьте детали в /proc/swaps",[22,170,171,172,175],{},"Файл ",[45,173,174],{},"/proc/swaps"," предоставляет подробную информацию о каждом активном swap-устройстве (разделе или файле).",[22,177,178],{},"Выполните:",[95,180,182],{"className":97,"code":181,"language":99,"meta":100,"style":100},"cat /proc/swaps\n",[45,183,184],{"__ignoreMap":100},[104,185,186,189],{"class":106,"line":107},[104,187,188],{"class":110},"cat",[104,190,192],{"class":191},"sZZnC"," /proc/swaps\n",[22,194,195],{},"Пример вывода:",[95,197,200],{"className":198,"code":199,"language":130},[128],"Filename                Type        Size    Used    Priority\n/dev/sda2                               partition   2097148 0   -2\n/swapfile                              file     1048572 0   -1\n",[45,201,199],{"__ignoreMap":100},[22,203,204],{},"Расшифровка:",[29,206,207,221,235,241,247],{},[32,208,209,212,213,216,217,220],{},[45,210,211],{},"Filename",": путь к swap-разделу (например, ",[45,214,215],{},"/dev/sda2",") или swap-файлу (например, ",[45,218,219],{},"/swapfile",").",[32,222,223,226,227,230,231,234],{},[45,224,225],{},"Type",": тип устройства — ",[45,228,229],{},"partition"," (раздел диска) или ",[45,232,233],{},"file"," (файл).",[32,236,237,240],{},[45,238,239],{},"Size",": общий размер в килобайтах (здесь ~2 ГБ и ~1 ГБ соответственно).",[32,242,243,246],{},[45,244,245],{},"Used",": использованный размер в килобайтах.",[32,248,249,252],{},[45,250,251],{},"Priority",": приоритет swap (отрицательные значения; чем выше число, тем выше приоритет). Система использует swap с более высоким приоритетом в первую очередь.",[22,254,255],{},"Этот файл обновляется ядром в реальном времени и не требует дополнительных прав для чтения.",[17,257,259],{"id":258},"шаг-3-мониторинг-в-реальном-времени-с-top","Шаг 3: Мониторинг в реальном времени с top",[22,261,262,263,266],{},"Утилита ",[45,264,265],{},"top"," отображает динамическую информацию о процессах и системных ресурсах. По умолчанию она не показывает swap в основном интерфейсе, но это можно настроить.",[268,269,270,285,296,314],"ol",{},[32,271,272,273,275,276],{},"Запустите ",[45,274,265],{},":\n",[95,277,279],{"className":97,"code":278,"language":99,"meta":100,"style":100},"top\n",[45,280,281],{"__ignoreMap":100},[104,282,283],{"class":106,"line":107},[104,284,278],{"class":110},[32,286,287,288,291,292,295],{},"Нажмите клавишу ",[45,289,290],{},"f"," (или ",[45,293,294],{},"F"," в некоторых версиях), чтобы открыть меню управления полями.",[32,297,298,299,302,303,306,307,310,311,313],{},"В списке полей найдите строку ",[45,300,301],{},"SWAP"," (обычно внизу). Нажмите соответствующую букву (часто ",[45,304,305],{},"d"," или ",[45,308,309],{},"s","), чтобы добавить столбец swap в основное окно. Для сортировки по swap можно нажать ",[45,312,309],{}," при выделении столбца.",[32,315,316,317,320],{},"Нажмите ",[45,318,319],{},"Enter",", чтобы вернуться к основному экрану.",[22,322,323,324,326,327,329,330,333,334,220],{},"Теперь в выводе ",[45,325,265],{}," появится столбец ",[45,328,301],{},", показывающий использование swap каждым процессом (если процесс его использует). В верхней части экрана также отображается общая строка памяти, включая swap (столбцы ",[45,331,332],{},"KiB Swap"," или аналогичные, в зависимости от версии ",[45,335,265],{},[22,337,338,340,341,343],{},[45,339,265],{}," обновляется каждые 3 секунды по умолчанию. Для изменения интервала нажмите ",[45,342,305],{}," и введите нужное значение.",[17,345,347],{"id":346},"шаг-4-используйте-vmstat-для-статистики-swap-активности","Шаг 4: Используйте vmstat для статистики swap-активности",[22,349,87,350,353],{},[45,351,352],{},"vmstat"," (virtual memory statistics) выводит статистику по виртуальной памяти, включая активность swap, что полезно для анализа трендов.",[22,355,178],{},[95,357,359],{"className":97,"code":358,"language":99,"meta":100,"style":100},"vmstat 1\n",[45,360,361],{"__ignoreMap":100},[104,362,363,365],{"class":106,"line":107},[104,364,352],{"class":110},[104,366,367],{"class":113}," 1\n",[22,369,370,371,374,375,48],{},"Параметр ",[45,372,373],{},"1"," указывает обновлять вывод каждую секунду. Для остановки нажмите ",[45,376,377],{},"Ctrl+C",[22,379,195],{},[95,381,384],{"className":382,"code":383,"language":130},[128],"procs -----------memory---------- ---swap-- -----io------ -system-- -----cpu------\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st\n 0  0      0 5242880  12345 678901    0    0     0     0  123  456  2  1 97  0  0\n",[45,385,383],{"__ignoreMap":100},[22,387,388],{},"Ключевые столбцы, связанные с swap:",[29,390,391,397,403],{},[32,392,393,396],{},[45,394,395],{},"swpd",": использованный swap в килобайтах (здесь 0 — swap не используется).",[32,398,399,402],{},[45,400,401],{},"si"," (swap in): количество памяти, перемещённой из swap в RAM за секунду (килобайты). Ненулевые значения указывают, что система читает данные из swap, что замедляет работу.",[32,404,405,408],{},[45,406,407],{},"so"," (swap out): количество памяти, перемещённой из RAM в swap за секунду (килобайты). Высокие значения означают активную запись в swap.",[22,410,411,412,73,414,416],{},"Постоянные ненулевые значения в ",[45,413,401],{},[45,415,407],{}," сигнализируют о том, что система активно использует swap, что может быть признаком нехватки RAM.",[418,419],"in-article-ad",{},[17,421,423],{"id":422},"проверка-результата","Проверка результата",[22,425,426],{},"После выполнения шагов вы должны получить чёткую картину использования swap:",[29,428,429,438,443,448],{},[32,430,87,431,434,435,437],{},[45,432,433],{},"free -h"," показала общие значения: если ",[45,436,148],{}," в строке Swap ненулевой, swap активен.",[32,439,440,442],{},[45,441,174],{}," выявила все swap-устройства и их состояние. Если файл пуст, swap не настроен.",[32,444,445,447],{},[45,446,265],{}," позволила наблюдать за swap в реальном времени и определить процессы, которые его используют (если есть).",[32,449,450,452],{},[45,451,352],{}," дала статистику по операциям swap in/out, помогая оценить нагрузку.",[22,454,455,456,459,460,463],{},"Если swap не используется (все показатели нулевые), а вы ожидаете его наличие, проверьте, активирован ли swap через ",[45,457,458],{},"swapon --show"," или в ",[45,461,462],{},"/etc/fstab",". Если swap отсутствует, создайте его, следуя гайду по настройке swap-файла.",[17,465,467],{"id":466},"возможные-проблемы","Возможные проблемы",[469,470,472],"h3",{"id":471},"swap-не-отображается-или-показывает-нулевые-значения","Swap не отображается или показывает нулевые значения",[22,474,475,476,73,478,480],{},"Если ",[45,477,72],{},[45,479,174],{}," показывают нулевой swap, скорее всего, swap не настроен. Решение:",[268,482,483,492,509],{},[32,484,485,486,306,489,48],{},"Проверьте наличие swap-раздела с помощью ",[45,487,488],{},"lsblk",[45,490,491],{},"fdisk -l",[32,493,494,495,498,499,502,503,502,506,48],{},"Если раздела нет, создайте swap-файл: ",[45,496,497],{},"sudo fallocate -l 2G /swapfile",", затем ",[45,500,501],{},"chmod 600 /swapfile",", ",[45,504,505],{},"mkswap /swapfile",[45,507,508],{},"swapon /swapfile",[32,510,511,512,514,515,48],{},"Добавьте запись в ",[45,513,462],{}," для постоянного монтирования: ",[45,516,517],{},"/swapfile none swap sw 0 0",[469,519,521],{"id":520},"ошибка-permission-denied-при-чтении-procswaps","Ошибка \"Permission denied\" при чтении /proc/swaps",[22,523,524,525,527,528,531,532,535,536,220],{},"Обычно ",[45,526,174],{}," доступен для чтения всем. Если возникает ошибка, возможно, система имеет укреплённые настройки безопасности (например, SELinux в режиме enforcing). Попробуйте выполнить с ",[45,529,530],{},"sudo",", но для диагностики это редко требуется. Проверьте права: ",[45,533,534],{},"ls -l /proc/swaps"," (должен быть ",[45,537,538],{},"-r--r--r--",[469,540,542],{"id":541},"команда-top-не-показывает-столбец-swap","Команда top не показывает столбец swap",[22,544,545,546,548,549,551,552,555],{},"Убедитесь, что вы правильно добавили поле ",[45,547,301],{}," в настройках ",[45,550,265],{},". В некоторых версиях (например, ",[45,553,554],{},"htop",") swap отображается по умолчанию. Также помните, что столбец swap может быть пустым, если ни один процесс не использует swap напрямую (swap управляется ядром глобально, а не на уровне процессов).",[469,557,559],{"id":558},"высокий-swap-usage-и-низкая-производительность","Высокий swap usage и низкая производительность",[22,561,475,562,564,565,73,567,569],{},[45,563,352],{}," показывает постоянные ненулевые ",[45,566,401],{},[45,568,407],{},", а система тормозит:",[268,571,572,575,584,605],{},[32,573,574],{},"Увеличьте оперативную память, если возможно.",[32,576,577,578,580,581,220],{},"Оптимизируйте приложения: найдите процессы, потребляющие много памяти, через ",[45,579,265],{}," (сортировка по ",[45,582,583],{},"%MEM",[32,585,586,587,589,590,593,594,597,598,601,602,48],{},"Настройте параметр ",[45,588,47],{}," (от 0 до 100), контролирующий агрессивность использования swap. Проверьте текущее значение: ",[45,591,592],{},"cat /proc/sys/vm/swappiness",". Рекомендуемые значения: 10-20 для серверов, 60 для десктопов. Измените временно: ",[45,595,596],{},"sudo sysctl vm.swappiness=10",", или постоянное — добавьте ",[45,599,600],{},"vm.swappiness=10"," в ",[45,603,604],{},"/etc/sysctl.conf",[32,606,607],{},"Рассмотрите добавление дополнительного swap-файла на быстром SSD, если swap необходим.",[609,610,611],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":100,"searchDepth":613,"depth":613,"links":614},2,[615,616,617,618,619,620,621,622],{"id":19,"depth":613,"text":20},{"id":54,"depth":613,"text":55},{"id":83,"depth":613,"text":84},{"id":167,"depth":613,"text":168},{"id":258,"depth":613,"text":259},{"id":346,"depth":613,"text":347},{"id":422,"depth":613,"text":423},{"id":466,"depth":613,"text":467,"children":623},[624,626,627,628],{"id":471,"depth":625,"text":472},3,{"id":520,"depth":625,"text":521},{"id":541,"depth":625,"text":542},{"id":558,"depth":625,"text":559},null,"2026-02-14 23:10:11","Узнайте, как проверить использование swap-памяти в Linux с помощью команд free, top и vmstat. Пошаговая инструкция для диагностики виртуальной памяти и оптимизации производительности системы.","easy",false,"5-10 мин","md",[637,640,643,646],{"answer":638,"question":639},"Swap-память (подкачка) — это область на диске, которая используется как расширение оперативной памяти. Когда RAM заполняется, система перемещает неактивные данные в swap, освобождая RAM для активных процессов. Это предотвращает падение системы из-за нехватки памяти.","Что такое swap-память и зачем она нужна в Linux?",{"answer":641,"question":642},"Некоторое использование swap нормально, особенно после hibernation или при долгой работе. Однако постоянное высокое использование (например, более 20-30% от общего размера swap) может указывать на нехватку оперативной памяти и замедление системы из-за частого обмена с диском.","Какой уровень использования swap считается нормальным?",{"answer":644,"question":645},"Да, если у вас достаточно оперативной памяти (например, 16 ГБ и более), вы можете отключить swap, чтобы избежать задержек от диска. Однако для систем, использующих hibernation, swap обязателен. Используйте `sudo swapoff -a` для временного отключения и закомментируйте запись в `/etc/fstab` для постоянного.","Можно ли отключить swap, если у меня много RAM?",{"answer":647,"question":648},"Вы можете создать дополнительный swap-файл с помощью команд `fallocate` или `dd`, затем настроить его как swap через `mkswap` и активировать `swapon`. Подробности см. в гайде по созданию swap-файла.","Как увеличить swap-пространство, если его не хватает?",[650,653,656,659],{"name":651,"text":652},"Используйте команду free","Откройте терминал и выполните `free -h`, чтобы увидеть общую и использованную swap-память в удобочитаемом формате.",{"name":654,"text":655},"Проверьте детали в /proc/swaps","Выполните `cat /proc/swaps`, чтобы увидеть детали каждого swap-устройства, включая тип, размер и использование.",{"name":657,"text":658},"Мониторьте использование в реальном времени с top","Запустите `top`, нажмите 'f', добавьте столбец 'SWAP' для отслеживания использования swap каждым процессом в реальном времени.",{"name":660,"text":661},"Используйте vmstat для статистики swap-активности","Команда `vmstat 1` выводит статистику каждую секунду, включая столбцы si (swap in) и so (swap out), показывающие активность swap.","PT10M",[664,665,666,667,668,669,670,671,672,673],"проверить swap linux","использование swap ubuntu","free команда linux","swap память linux","диагностика swap","как посмотреть swap","top команда swap","vmstat swap","monitor swap usage linux","swap in out linux","ru_RU",{},true,"/guides/linux/check-swap-usage","linux",[680,681,682],"/guides/linux/create-swap-file","/guides/linux/optimize-memory-usage","/errors/linux/out-of-memory-error","Гайды Linux",{"title":5,"description":631},"guides/linux/check-swap-usage","Этот гайд научит вас проверять текущее использование swap-пространства в Linux, используя стандартные утилиты командной строки, чтобы оценить, достаточно ли оперативной памяти и как работает механизм подкачки.",[678,688,689,690,691,692,99],"swap","memory","администрирование","диагностика","performance","guide","fwS_rjGoEcIphSqftjS4YQ0TYgnLzFepHMt3RjgGwVI",{"data":696,"body":697},{},{"type":698,"children":699},"root",[700],{"type":701,"tag":22,"props":702,"children":703},"element",{},[704],{"type":130,"value":638},{"data":706,"body":707},{},{"type":698,"children":708},[709],{"type":701,"tag":22,"props":710,"children":711},{},[712],{"type":130,"value":641},{"data":714,"body":715},{},{"type":698,"children":716},[717],{"type":701,"tag":22,"props":718,"children":719},{},[720,722,728,730,735],{"type":130,"value":721},"Да, если у вас достаточно оперативной памяти (например, 16 ГБ и более), вы можете отключить swap, чтобы избежать задержек от диска. Однако для систем, использующих hibernation, swap обязателен. Используйте ",{"type":701,"tag":45,"props":723,"children":725},{"className":724},[],[726],{"type":130,"value":727},"sudo swapoff -a",{"type":130,"value":729}," для временного отключения и закомментируйте запись в ",{"type":701,"tag":45,"props":731,"children":733},{"className":732},[],[734],{"type":130,"value":462},{"type":130,"value":736}," для постоянного.",{"data":738,"body":739},{},{"type":698,"children":740},[741],{"type":701,"tag":22,"props":742,"children":743},{},[744,746,752,753,759,761,767,769,775],{"type":130,"value":745},"Вы можете создать дополнительный swap-файл с помощью команд ",{"type":701,"tag":45,"props":747,"children":749},{"className":748},[],[750],{"type":130,"value":751},"fallocate",{"type":130,"value":306},{"type":701,"tag":45,"props":754,"children":756},{"className":755},[],[757],{"type":130,"value":758},"dd",{"type":130,"value":760},", затем настроить его как swap через ",{"type":701,"tag":45,"props":762,"children":764},{"className":763},[],[765],{"type":130,"value":766},"mkswap",{"type":130,"value":768}," и активировать ",{"type":701,"tag":45,"props":770,"children":772},{"className":771},[],[773],{"type":130,"value":774},"swapon",{"type":130,"value":776},". Подробности см. в гайде по созданию swap-файла.",{"data":778,"body":779},{},{"type":698,"children":780},[781],{"type":701,"tag":22,"props":782,"children":783},{},[784,786,791],{"type":130,"value":785},"Откройте терминал и выполните ",{"type":701,"tag":45,"props":787,"children":789},{"className":788},[],[790],{"type":130,"value":433},{"type":130,"value":792},", чтобы увидеть общую и использованную swap-память в удобочитаемом формате.",{"data":794,"body":795},{},{"type":698,"children":796},[797],{"type":701,"tag":22,"props":798,"children":799},{},[800,802,807],{"type":130,"value":801},"Выполните ",{"type":701,"tag":45,"props":803,"children":805},{"className":804},[],[806],{"type":130,"value":76},{"type":130,"value":808},", чтобы увидеть детали каждого swap-устройства, включая тип, размер и использование.",{"data":810,"body":811},{},{"type":698,"children":812},[813],{"type":701,"tag":22,"props":814,"children":815},{},[816,817,822],{"type":130,"value":272},{"type":701,"tag":45,"props":818,"children":820},{"className":819},[],[821],{"type":130,"value":265},{"type":130,"value":823},", нажмите 'f', добавьте столбец 'SWAP' для отслеживания использования swap каждым процессом в реальном времени.",{"data":825,"body":826},{},{"type":698,"children":827},[828],{"type":701,"tag":22,"props":829,"children":830},{},[831,832,838],{"type":130,"value":87},{"type":701,"tag":45,"props":833,"children":835},{"className":834},[],[836],{"type":130,"value":837},"vmstat 1",{"type":130,"value":839}," выводит статистику каждую секунду, включая столбцы si (swap in) и so (swap out), показывающие активность swap.",[841,1616,2456],{"id":842,"title":843,"appliesTo":844,"author":12,"body":849,"canonical":629,"code":629,"createdAt":1558,"description":1559,"difficulty":632,"draft":633,"estimatedTime":1560,"extension":635,"faq":1561,"howToSteps":1574,"howToTotalTime":1593,"image":629,"keywords":1594,"locale":674,"meta":1603,"navigation":676,"path":680,"platform":678,"related":1604,"section":683,"seo":1607,"severity":629,"stem":1608,"summary":1609,"tags":1610,"twitterCreator":629,"twitterSite":629,"type":693,"updatedAt":1558,"__hash__":1615},"content_ru/guides/linux/create-swap-file.md","Создание swap-файла в Linux: подробное руководство",[7,845,846,847,848],"Debian 11+","CentOS 8+","RHEL 8+","Fedora 35+",{"type":14,"value":850,"toc":1535},[851,855,858,861,882,885,889,891,943,945,949,953,956,966,969,981,986,991,1001,1005,1011,1032,1035,1065,1074,1104,1110,1114,1121,1138,1141,1156,1162,1166,1169,1183,1185,1191,1201,1205,1212,1226,1239,1245,1248,1252,1257,1276,1279,1297,1302,1308,1314,1316,1392,1394,1401,1419,1425,1450,1454,1482,1486,1504,1511,1532],[17,852,854],{"id":853},"введение-зачем-это-нужно","Введение / Зачем это нужно",[22,856,857],{},"Файл подкачки (swap) в Linux — это область на диске, которая используется как расширение оперативной памяти (RAM). Когда физической памяти становится недостаточно, система автоматически перемещает неактивные данные из RAM в swap, что предотвращает аварийное завершение процессов из-за нехватки памяти.",[22,859,860],{},"Создание swap-файла — это быстрая и гибкая альтернатива выделению swap-раздела. Вы сможете:",[29,862,863,870,876],{},[32,864,865,869],{},[866,867,868],"strong",{},"Стабилизировать работу системы"," при пиковых нагрузках или при работе с памятью-ёмкими приложениями.",[32,871,872,875],{},[866,873,874],{},"Увеличить доступную память"," без апгрейда железа.",[32,877,878,881],{},[866,879,880],{},"Настроить параметры подкачки"," под конкретные задачи (сервер, десктоп, встраиваемая система).",[22,883,884],{},"После выполнения этого гайда у вас будет настроенный и активный swap-файл, который будет автоматически подключаться при загрузке системы.",[17,886,888],{"id":887},"требования-подготовка","Требования / Подготовка",[22,890,58],{},[268,892,893,900,927],{},[32,894,895,896,899],{},"У вас есть ",[866,897,898],{},"доступ к root-учётной записи"," или права sudo.",[32,901,902,903,906,907],{},"На диске есть ",[866,904,905],{},"незанятое пространство",". Размер swap-файла зависит от ваших потребностей:\n",[29,908,909,915,921],{},[32,910,911,914],{},[866,912,913],{},"Для систем с 4 ГБ RAM и менее",": размер swap = 1.5–2 × RAM.",[32,916,917,920],{},[866,918,919],{},"Для систем с 8+ ГБ RAM",": достаточно 1–4 ГБ swap (или даже меньше, если RAM >16 ГБ).",[32,922,923,926],{},[866,924,925],{},"Для серверов с большими базами данных",": может потребоваться swap размером с RAM.",[32,928,929,930,932,933,936,937,939,940,48],{},"Установлены базовые утилиты: ",[45,931,751],{}," (обычно в пакете ",[45,934,935],{},"util-linux",") или ",[45,938,758],{}," (есть везде). Проверить: ",[45,941,942],{},"which fallocate",[418,944],{},[17,946,948],{"id":947},"пошаговая-инструкция","Пошаговая инструкция",[469,950,952],{"id":951},"шаг-1-проверьте-текущую-конфигурацию-swap","Шаг 1: Проверьте текущую конфигурацию swap",[22,954,955],{},"Прежде чем создавать новый файл, убедитесь, что у вас нет уже активного swap (например, раздела или файла по умолчанию).",[95,957,958],{"className":97,"code":98,"language":99,"meta":100,"style":100},[45,959,960],{"__ignoreMap":100},[104,961,962,964],{"class":106,"line":107},[104,963,72],{"class":110},[104,965,114],{"class":113},[22,967,968],{},"или",[95,970,972],{"className":97,"code":971,"language":99,"meta":100,"style":100},"swapon --show\n",[45,973,974],{"__ignoreMap":100},[104,975,976,978],{"class":106,"line":107},[104,977,774],{"class":110},[104,979,980],{"class":113}," --show\n",[22,982,983],{},[866,984,985],{},"Что вы увидите:",[95,987,989],{"className":988,"code":129,"language":130},[128],[45,990,129],{"__ignoreMap":100},[22,992,993,994,997,998,1000],{},"Если в строке ",[866,995,996],{},"Swap"," показан ноль или раздел отсутствует в выводе ",[45,999,458],{},", продолжайте создание файла.",[469,1002,1004],{"id":1003},"шаг-2-создайте-файл-нужного-размера","Шаг 2: Создайте файл нужного размера",[22,1006,1007,1008,1010],{},"Рекомендуемый способ — ",[45,1009,751],{},", так как он создаёт файл мгновенно, без заполнения нулями.",[95,1012,1014],{"className":97,"code":1013,"language":99,"meta":100,"style":100},"sudo fallocate -l 2G /swapfile\n",[45,1015,1016],{"__ignoreMap":100},[104,1017,1018,1020,1023,1026,1029],{"class":106,"line":107},[104,1019,530],{"class":110},[104,1021,1022],{"class":191}," fallocate",[104,1024,1025],{"class":113}," -l",[104,1027,1028],{"class":191}," 2G",[104,1030,1031],{"class":191}," /swapfile\n",[22,1033,1034],{},"Здесь:",[29,1036,1037,1057],{},[32,1038,1039,1042,1043,1046,1047,502,1050,502,1053,1056],{},[45,1040,1041],{},"-l 2G"," — размер файла (2 гигабайта). Замените ",[45,1044,1045],{},"2G"," на нужное значение: ",[45,1048,1049],{},"1G",[45,1051,1052],{},"4G",[45,1054,1055],{},"512M"," и т.д.",[32,1058,1059,1061,1062,48],{},[45,1060,219],{}," — путь к файлу. Обычно размещают в корне ",[45,1063,1064],{},"/",[22,1066,1067,1070,1071,1073],{},[866,1068,1069],{},"Альтернатива для старых систем"," (если ",[45,1072,751],{}," недоступен):",[95,1075,1077],{"className":97,"code":1076,"language":99,"meta":100,"style":100},"sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress\n",[45,1078,1079],{"__ignoreMap":100},[104,1080,1081,1083,1086,1089,1092,1095,1098,1101],{"class":106,"line":107},[104,1082,530],{"class":110},[104,1084,1085],{"class":191}," dd",[104,1087,1088],{"class":191}," if=/dev/zero",[104,1090,1091],{"class":191}," of=/swapfile",[104,1093,1094],{"class":191}," bs=1M",[104,1096,1097],{"class":191}," count=",[104,1099,1100],{"class":113},"2048",[104,1102,1103],{"class":191}," status=progress\n",[22,1105,1106,1109],{},[45,1107,1108],{},"bs=1M count=2048"," создаст файл размером 2048 МБ (2 ГБ). Этот метод медленнее, так как записывает нули во весь файл.",[469,1111,1113],{"id":1112},"шаг-3-установите-корректные-права-доступа","Шаг 3: Установите корректные права доступа",[22,1115,1116,1117,1120],{},"Swap-файл содержит чувствительные данные (фрагменты памяти процессов). Он должен быть доступен ",[866,1118,1119],{},"только"," суперпользователю.",[95,1122,1124],{"className":97,"code":1123,"language":99,"meta":100,"style":100},"sudo chmod 600 /swapfile\n",[45,1125,1126],{"__ignoreMap":100},[104,1127,1128,1130,1133,1136],{"class":106,"line":107},[104,1129,530],{"class":110},[104,1131,1132],{"class":191}," chmod",[104,1134,1135],{"class":113}," 600",[104,1137,1031],{"class":191},[22,1139,1140],{},"Проверьте права:",[95,1142,1144],{"className":97,"code":1143,"language":99,"meta":100,"style":100},"ls -lh /swapfile\n",[45,1145,1146],{"__ignoreMap":100},[104,1147,1148,1151,1154],{"class":106,"line":107},[104,1149,1150],{"class":110},"ls",[104,1152,1153],{"class":113}," -lh",[104,1155,1031],{"class":191},[22,1157,1158,1159,48],{},"Вывод должен быть: ",[45,1160,1161],{},"-rw------- 1 root root ... /swapfile",[469,1163,1165],{"id":1164},"шаг-4-отформатируйте-файл-под-swap","Шаг 4: Отформатируйте файл под swap",[22,1167,1168],{},"Подготовьте файл к использованию в качестве пространства подкачки:",[95,1170,1172],{"className":97,"code":1171,"language":99,"meta":100,"style":100},"sudo mkswap /swapfile\n",[45,1173,1174],{"__ignoreMap":100},[104,1175,1176,1178,1181],{"class":106,"line":107},[104,1177,530],{"class":110},[104,1179,1180],{"class":191}," mkswap",[104,1182,1031],{"class":191},[22,1184,195],{},[95,1186,1189],{"className":1187,"code":1188,"language":130},[128],"Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)\nno label, UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n",[45,1190,1188],{"__ignoreMap":100},[22,1192,1193,1194,1197,1198,1200],{},"Запомните ",[866,1195,1196],{},"UUID"," (если планируете использовать его в ",[45,1199,462],{},"), но обычно достаточно указать путь к файлу.",[469,1202,1204],{"id":1203},"шаг-5-активируйте-swap-файл","Шаг 5: Активируйте swap-файл",[22,1206,1207,1208,1211],{},"Включите файл в систему ",[866,1209,1210],{},"без перезагрузки",":",[95,1213,1215],{"className":97,"code":1214,"language":99,"meta":100,"style":100},"sudo swapon /swapfile\n",[45,1216,1217],{"__ignoreMap":100},[104,1218,1219,1221,1224],{"class":106,"line":107},[104,1220,530],{"class":110},[104,1222,1223],{"class":191}," swapon",[104,1225,1031],{"class":191},[22,1227,1228,1231,1232,1234,1235,1238],{},[866,1229,1230],{},"Сделайте настройку постоянной"," (чтобы swap активировался после каждой перезагрузки):\nОткройте файл ",[45,1233,462],{}," в редакторе (например, ",[45,1236,1237],{},"sudo nano /etc/fstab",") и добавьте в конец строку:",[95,1240,1243],{"className":1241,"code":1242,"language":130},[128],"/swapfile none swap sw 0 0\n",[45,1244,1242],{"__ignoreMap":100},[22,1246,1247],{},"Сохраните и закройте редактор.",[469,1249,1251],{"id":1250},"шаг-6-настройте-параметры-swappiness-опционально","Шаг 6: Настройте параметры swappiness (опционально)",[22,1253,370,1254,1256],{},[45,1255,47],{}," контролирует, насколько агрессивно система будет использовать swap. Значение от 0 (минимум) до 100 (максимум). По умолчанию часто стоит 60.",[22,1258,1259,1262,1263,48,1266,1269,1272,1273,48],{},[866,1260,1261],{},"Для десктопов"," (чтобы не тормозить приложениях) рекомендуется ",[45,1264,1265],{},"10–20",[1267,1268],"br",{},[866,1270,1271],{},"Для серверов"," (чтобы оставить больше данных в RAM) — ",[45,1274,1275],{},"1–5",[22,1277,1278],{},"Установите временно (до перезагрузки):",[95,1280,1282],{"className":97,"code":1281,"language":99,"meta":100,"style":100},"sudo sysctl vm.swappiness=10\n",[45,1283,1284],{"__ignoreMap":100},[104,1285,1286,1288,1291,1294],{"class":106,"line":107},[104,1287,530],{"class":110},[104,1289,1290],{"class":191}," sysctl",[104,1292,1293],{"class":191}," vm.swappiness=",[104,1295,1296],{"class":113},"10\n",[22,1298,1299,1300,1211],{},"Чтобы значение сохранилось, добавьте в ",[45,1301,604],{},[95,1303,1306],{"className":1304,"code":1305,"language":130},[128],"vm.swappiness=10\n",[45,1307,1305],{"__ignoreMap":100},[22,1309,1310,1311,48],{},"И примените: ",[45,1312,1313],{},"sudo sysctl -p",[17,1315,423],{"id":422},[268,1317,1318,1336,1355,1360],{},[32,1319,1320,1321,1331,1333,1334,48],{},"Убедитесь, что swap активен:",[95,1322,1323],{"className":97,"code":971,"language":99,"meta":100,"style":100},[45,1324,1325],{"__ignoreMap":100},[104,1326,1327,1329],{"class":106,"line":107},[104,1328,774],{"class":110},[104,1330,980],{"class":113},[1267,1332],{},"В выводе должен быть ваш ",[45,1335,219],{},[32,1337,1338,1339,1349,1351,1352,1354],{},"Проверьте общую память:",[95,1340,1341],{"className":97,"code":98,"language":99,"meta":100,"style":100},[45,1342,1343],{"__ignoreMap":100},[104,1344,1345,1347],{"class":106,"line":107},[104,1346,72],{"class":110},[104,1348,114],{"class":113},[1267,1350],{},"В строке ",[866,1353,996],{}," теперь будет показан размер и использование.",[32,1356,1357,1358,220],{},"Убедитесь, что настройка постоянна (перезагрузите систему и снова выполните ",[45,1359,433],{},[32,1361,1362,1363,1211,1365,1387,1389,1390,48],{},"(Опционально) Проверьте запись в ",[45,1364,462],{},[95,1366,1368],{"className":97,"code":1367,"language":99,"meta":100,"style":100},"cat /etc/fstab | grep swap\n",[45,1369,1370],{"__ignoreMap":100},[104,1371,1372,1374,1377,1381,1384],{"class":106,"line":107},[104,1373,188],{"class":110},[104,1375,1376],{"class":191}," /etc/fstab",[104,1378,1380],{"class":1379},"szBVR"," |",[104,1382,1383],{"class":110}," grep",[104,1385,1386],{"class":191}," swap\n",[1267,1388],{},"Должна быть строка с ",[45,1391,219],{},[17,1393,467],{"id":466},[469,1395,1397,1398],{"id":1396},"ошибка-fallocate-fallocate-failed-no-space-left-on-device","❌ Ошибка ",[45,1399,1400],{},"fallocate: fallocate failed: No space left on device",[29,1402,1403,1409],{},[32,1404,1405,1408],{},[866,1406,1407],{},"Причина",": На диске недостаточно свободного места.",[32,1410,1411,1414,1415,1418],{},[866,1412,1413],{},"Решение",": Освободите место (",[45,1416,1417],{},"df -h"," для проверки) или создайте файл меньшего размера.",[469,1420,1397,1422],{"id":1421},"ошибка-chmod-changing-permissions-of-swapfile-operation-not-permitted",[45,1423,1424],{},"chmod: changing permissions of ‘/swapfile’: Operation not permitted",[29,1426,1427,1442],{},[32,1428,1429,1431,1432,306,1435,1438,1439,220],{},[866,1430,1407],{},": Файл находится на смонтированной в режиме ",[45,1433,1434],{},"noexec",[45,1436,1437],{},"nosuid"," файловой системе (например, некоторые разделы ",[45,1440,1441],{},"/home",[32,1443,1444,1446,1447,1449],{},[866,1445,1413],{},": Создайте файл в корне ",[45,1448,1064],{}," или на разделе, где разрешены изменения прав.",[469,1451,1453],{"id":1452},"после-перезагрузки-swap-не-активируется","❌ После перезагрузки swap не активируется",[29,1455,1456,1464],{},[32,1457,1458,1460,1461,1463],{},[866,1459,1407],{},": Ошибка в ",[45,1462,462],{}," (лишние пробелы, неправильный путь) или файл был перемещён/удалён.",[32,1465,1466,1468,1469,1471,1472,1475,1476,1478,1479,48],{},[866,1467,1413],{},": Проверьте синтаксис ",[45,1470,462],{}," командой ",[45,1473,1474],{},"sudo mount -a"," (ошибка будет выведена). Убедитесь, что файл ",[45,1477,219],{}," существует и имеет права ",[45,1480,1481],{},"600",[469,1483,1485],{"id":1484},"система-зависает-при-активном-использовании-swap","❌ Система «зависает» при активном использовании swap",[29,1487,1488,1496],{},[32,1489,1490,1492,1493,1495],{},[866,1491,1407],{},": Слишком высокое значение ",[45,1494,47],{}," (система агрессивно пишет в swap на медленном HDD).",[32,1497,1498,1500,1501,1503],{},[866,1499,1413],{},": Уменьшите ",[45,1502,47],{}," до 1–5. Для SSD это менее критично, но тоже стоит настроить.",[469,1505,1507,1508,1510],{"id":1506},"mkswap-выдаёт-предупреждение-о-размере-файла","❌ ",[45,1509,766],{}," выдаёт предупреждение о размере файла",[29,1512,1513,1518],{},[32,1514,1515,1517],{},[866,1516,1407],{},": Файл создан не целым числом мегабайт (например, 2.5 ГБ).",[32,1519,1520,1522,1523,1525,1526,1529,1530,220],{},[866,1521,1413],{},": ",[45,1524,766],{}," обычно работает с любым размером, но для совместимости лучше создавать файл размером, кратным 4 КБ. Пересоздайте файл с размером, кратным 1 МБ (например, ",[45,1527,1528],{},"2048M"," вместо ",[45,1531,1045],{},[609,1533,1534],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":100,"searchDepth":613,"depth":613,"links":1536},[1537,1538,1539,1547,1548],{"id":853,"depth":613,"text":854},{"id":887,"depth":613,"text":888},{"id":947,"depth":613,"text":948,"children":1540},[1541,1542,1543,1544,1545,1546],{"id":951,"depth":625,"text":952},{"id":1003,"depth":625,"text":1004},{"id":1112,"depth":625,"text":1113},{"id":1164,"depth":625,"text":1165},{"id":1203,"depth":625,"text":1204},{"id":1250,"depth":625,"text":1251},{"id":422,"depth":613,"text":423},{"id":466,"depth":613,"text":467,"children":1549},[1550,1552,1554,1555,1556],{"id":1396,"depth":625,"text":1551},"❌ Ошибка fallocate: fallocate failed: No space left on device",{"id":1421,"depth":625,"text":1553},"❌ Ошибка chmod: changing permissions of ‘/swapfile’: Operation not permitted",{"id":1452,"depth":625,"text":1453},{"id":1484,"depth":625,"text":1485},{"id":1506,"depth":625,"text":1557},"❌ mkswap выдаёт предупреждение о размере файла","2026-02-16 19:34:50","Пошаговая инструкция по созданию и настройке файла подкачки (swap) в Linux. Увеличьте доступную оперативную память за 10 минут. Подходит для Ubuntu, CentOS, Debian.","10-15 мин",[1562,1565,1568,1571],{"question":1563,"answer":1564},"Зачем нужен swap-файл, если есть RAM?","Swap-файл действует как «буфер» для оперативной памяти. Когда RAM заполняется, система автоматически перемещает менее используемые данные в swap, предотвращая крахи из-за нехватки памяти. Это критично для серверов или систем с малым объёмом RAM.",{"question":1566,"answer":1567},"Можно ли удалить swap-файл после создания?","Да. Для этого отключите его командой `swapoff /путь/к/файлу`, удалите файл и убедитесь, что запись о нём удалена из `/etc/fstab`. Будьте осторожны: удаление swap при активной нагрузке может привести к нестабильности системы.",{"question":1569,"answer":1570},"В чём разница между swap-файлом и swap-разделом?","Swap-файл проще создать и изменить размер (не требует переразметки диска). Swap-раздел может быть чуть производительнее на старых дисках, но на современных SSD разница незаметна. Для большинства случаев файла более чем достаточно.",{"question":1572,"answer":1573},"Как проверить, что swap работает?","Используйте команды `swapon --show` (покажет активный swap) или `free -h` (в выводе будет строка «Swap»). Также можно следить за использованием в реальном времени через `htop` (колонка SWAP).",[1575,1578,1581,1584,1587,1590],{"name":1576,"text":1577},"Проверьте текущую конфигурацию swap","Выполните `free -h` или `swapon --show`, чтобы увидеть, есть ли уже активный swap и его размер. Это поможет понять, нужно ли создание нового файла.",{"name":1579,"text":1580},"Создайте файл нужного размера","Используйте `fallocate` для быстрого создания файла (рекомендуется) или `dd` для совместимости со старыми системами. Например, `sudo fallocate -l 2G /swapfile` создаст 2 ГБ файл.",{"name":1582,"text":1583},"Установите корректные права доступа","Swap-файл должен быть доступен только root. Выполните `sudo chmod 600 /swapfile`, чтобы предотвратить несанкционированный доступ.",{"name":1585,"text":1586},"Отформатируйте файл под swap","Запустите `sudo mkswap /swapfile`. Эта команда подготовит файл к использованию в качестве пространства подкачки.",{"name":1588,"text":1589},"Активируйте swap-файл","Включите его в систему: `sudo swapon /swapfile`. Чтобы изменения сохранились после перезагрузки, добавьте строку `/swapfile none swap sw 0 0` в `/etc/fstab`.",{"name":1591,"text":1592},"Настройте параметры swappiness (опционально)","Значение `vm.swappiness` (от 0 до 100) управляет агрессивностью использования swap. Для десктопов подходит 10-20, для серверов — 1-5. Установите через `sudo sysctl vm.swappiness=10` и добавьте в `/etc/sysctl.conf` для постоянства.","PT15M",[1595,1596,1597,1598,1599,1600,1601,1602],"создать файл подкачки linux","swap файл ubuntu создать","как добавить swap в linux","увеличить виртуальную память linux","mkswap swapon команды","ошибка не хватает памяти linux","настройка swap на файл","Linux файл подкачки",{},[677,1605,1606],"/guides/linux/optimize-swappiness","/errors/linux/out-of-memory-killer",{"title":843,"description":1559},"guides/linux/create-swap-file","Этот гайд объясняет, как создать swap-файл в Linux с нуля. Вы научитесь выделять дисковое пространство под виртуальную память, настраивать её параметры и проверять работоспособность, чтобы стабилизировать работу системы при нехватке RAM.",[678,688,1611,1612,690,1613,1614],"файл подкачки","memory management","ubuntu","centos","DtOhkk3o6W0Yhf-eUgBf2gw_TRMKsEqMCFnoPJsAeGI",{"id":1617,"title":1618,"appliesTo":1619,"author":12,"body":1625,"canonical":629,"code":629,"createdAt":2397,"description":2398,"difficulty":2399,"draft":633,"estimatedTime":2400,"extension":635,"faq":2401,"howToSteps":2414,"howToTotalTime":2430,"image":629,"keywords":2431,"locale":674,"meta":2442,"navigation":676,"path":681,"platform":678,"related":2443,"section":683,"seo":2447,"severity":629,"stem":2448,"summary":2449,"tags":2450,"twitterCreator":629,"twitterSite":629,"type":693,"updatedAt":2397,"__hash__":2455},"content_ru/guides/linux/optimize-memory-usage.md","Оптимизация памяти Linux: повышение производительности системы",[1620,1621,1622,848,1623,1624],"Ubuntu 20.04/22.04","Debian 11/12","CentOS 7/8","Arch Linux","Любой дистрибутив с systemd и ядром 4.x+",{"type":14,"value":1626,"toc":2381},[1627,1629,1632,1634,1636,1666,1670,1673,1683,1685,1691,1694,1717,1724,1741,1745,1750,1784,1789,1799,1802,1816,1830,1834,1840,1889,1892,1894,1898,1904,1959,1963,1966,1971,1974,2003,2006,2023,2026,2043,2053,2074,2077,2201,2210,2212,2277,2279,2283,2298,2302,2311,2336,2340,2350,2354,2363,2378],[17,1628,854],{"id":853},[22,1630,1631],{},"Оперативная память — критически важный ресурс в Linux-системах. Её нехватка приводит к активному использованию свопа (swap), что резко снижает производительность, особенно на SSD. Этот гайд поможет вам оптимизировать использование RAM с помощью настройки параметров ядра и инструментов вроде zram. После выполнения вы получите более отзывчивую систему, снизите нагрузку на диск и предотвратите внезапные \"зависания\" из-за нехватки памяти.",[17,1633,888],{"id":887},[22,1635,58],{},[29,1637,1638,1643,1653],{},[32,1639,1640,1641,48],{},"У вас есть доступ к терминалу с правами ",[45,1642,530],{},[32,1644,929,1645,502,1647,502,1649,1652],{},[45,1646,72],{},[45,1648,352],{},[45,1650,1651],{},"sysctl"," (входят в состав большинства дистрибутивов).",[32,1654,1655,1658,1659,1661,1662,1665],{},[866,1656,1657],{},"Рекомендуется",": создайте бэкап ",[45,1660,604],{}," (",[45,1663,1664],{},"sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak","), чтобы откатить изменения при ошибках.",[17,1667,1669],{"id":1668},"шаг-1-проверка-текущего-состояния-памяти","Шаг 1: Проверка текущего состояния памяти",[22,1671,1672],{},"Сначала нужно понять, как система использует память сейчас. Выполните:",[95,1674,1675],{"className":97,"code":98,"language":99,"meta":100,"style":100},[45,1676,1677],{"__ignoreMap":100},[104,1678,1679,1681],{"class":106,"line":107},[104,1680,72],{"class":110},[104,1682,114],{"class":113},[22,1684,195],{},[95,1686,1689],{"className":1687,"code":1688,"language":130},[128],"              total    used    free  shared  buff/cache   available\nMem:           7,7G    3,2G    1,1G    200M        3,4G        4,0G\nSwap:          2,0G    512M    1,5G\n",[45,1690,1688],{"__ignoreMap":100},[22,1692,1693],{},"Обратите внимание:",[29,1695,1696,1701,1707,1712],{},[32,1697,1698,1700],{},[45,1699,148],{}," — actively used RAM.",[32,1702,1703,1706],{},[45,1704,1705],{},"buff/cache"," — память, занятая кэшем (может быть освобождена).",[32,1708,1709,1711],{},[45,1710,163],{}," — оценка памяти, доступной для новых процессов без свопа.",[32,1713,1714,1716],{},[45,1715,996],{}," — использование раздела/файла свопа.",[22,1718,1719,1720,1723],{},"Дополнительно запустите ",[45,1721,1722],{},"vmstat 1 5"," (обновление каждую секунду, 5 раз). Критичные столбцы:",[29,1725,1726,1731],{},[32,1727,1728,1730],{},[45,1729,401],{}," (swap-in) — страницы, загруженные из свопа в RAM.",[32,1732,1733,1735,1736,1064,1738,1740],{},[45,1734,407],{}," (swap-out) — страницы, выгруженные из RAM в своп.\nЕсли ",[45,1737,401],{},[45,1739,407],{}," постоянно > 0 — система активно использует своп, что указывает на нехватку RAM.",[17,1742,1744],{"id":1743},"шаг-2-настройка-swappiness","Шаг 2: Настройка swappiness",[22,1746,370,1747,1749],{},[45,1748,47],{}," управляет склонностью ядра использовать своп (диапазон 0-100). Значение 0 — своп используется только при крайней необходимости, 100 — агрессивно. Для десктопов/серверов с достаточным RAM рекомендуется 10-20.",[95,1751,1753],{"className":97,"code":1752,"language":99,"meta":100,"style":100},"# Проверим текущее значение\ncat /proc/sys/vm/swappiness\n# Установим временное значение (например, 10)\nsudo sysctl vm.swappiness=10\n",[45,1754,1755,1761,1768,1773],{"__ignoreMap":100},[104,1756,1757],{"class":106,"line":107},[104,1758,1760],{"class":1759},"sJ8bj","# Проверим текущее значение\n",[104,1762,1763,1765],{"class":106,"line":613},[104,1764,188],{"class":110},[104,1766,1767],{"class":191}," /proc/sys/vm/swappiness\n",[104,1769,1770],{"class":106,"line":625},[104,1771,1772],{"class":1759},"# Установим временное значение (например, 10)\n",[104,1774,1776,1778,1780,1782],{"class":106,"line":1775},4,[104,1777,530],{"class":110},[104,1779,1290],{"class":191},[104,1781,1293],{"class":191},[104,1783,1296],{"class":113},[22,1785,1786,1787,1211],{},"Чтобы изменение сохранилось после перезагрузки, добавьте в ",[45,1788,604],{},[95,1790,1793],{"className":1791,"code":1305,"language":1792,"meta":100,"style":100},"language-ini shiki shiki-themes github-light github-dark","ini",[45,1794,1795],{"__ignoreMap":100},[104,1796,1797],{"class":106,"line":107},[104,1798,1305],{},[22,1800,1801],{},"Примените:",[95,1803,1805],{"className":97,"code":1804,"language":99,"meta":100,"style":100},"sudo sysctl -p\n",[45,1806,1807],{"__ignoreMap":100},[104,1808,1809,1811,1813],{"class":106,"line":107},[104,1810,530],{"class":110},[104,1812,1290],{"class":191},[104,1814,1815],{"class":113}," -p\n",[1817,1818,1819],"blockquote",{},[22,1820,1821,1822,1825,1826,1829],{},"⚠️ ",[866,1823,1824],{},"Важно",": Не ставьте ",[45,1827,1828],{},"swappiness=0"," на серверах с высокими нагрузками — это может привести к OOM-убийствам процессов при пиковых нагрузках.",[17,1831,1833],{"id":1832},"шаг-3-очистка-кэша-памяти-при-необходимости","Шаг 3: Очистка кэша памяти (при необходимости)",[22,1835,1836,1837],{},"Кэш (page cache и dentries) автоматически управляется ядром, но иногда (например, после запуска тяжелого приложения) его можно временно очистить для освобождения RAM. ",[866,1838,1839],{},"Не делайте это регулярно!",[95,1841,1843],{"className":97,"code":1842,"language":99,"meta":100,"style":100},"# Очистка page cache (значение 1)\necho 1 | sudo tee /proc/sys/vm/drop_caches\n# Полная очистка (page cache + dentries + inodes)\necho 3 | sudo tee /proc/sys/vm/drop_caches\n",[45,1844,1845,1850,1869,1874],{"__ignoreMap":100},[104,1846,1847],{"class":106,"line":107},[104,1848,1849],{"class":1759},"# Очистка page cache (значение 1)\n",[104,1851,1852,1855,1858,1860,1863,1866],{"class":106,"line":613},[104,1853,1854],{"class":113},"echo",[104,1856,1857],{"class":113}," 1",[104,1859,1380],{"class":1379},[104,1861,1862],{"class":110}," sudo",[104,1864,1865],{"class":191}," tee",[104,1867,1868],{"class":191}," /proc/sys/vm/drop_caches\n",[104,1870,1871],{"class":106,"line":625},[104,1872,1873],{"class":1759},"# Полная очистка (page cache + dentries + inodes)\n",[104,1875,1876,1878,1881,1883,1885,1887],{"class":106,"line":1775},[104,1877,1854],{"class":113},[104,1879,1880],{"class":113}," 3",[104,1882,1380],{"class":1379},[104,1884,1862],{"class":110},[104,1886,1865],{"class":191},[104,1888,1868],{"class":191},[22,1890,1891],{},"После очистки система может на время замедлиться, так как файлы будут загружаться с диска заново.",[418,1893],{},[17,1895,1897],{"id":1896},"шаг-4-настройка-vfs_cache_pressure","Шаг 4: Настройка vfs_cache_pressure",[22,1899,370,1900,1903],{},[45,1901,1902],{},"vm.vfs_cache_pressure"," контролирует, насколько агрессивно ядро восстанавливает память, занятую кэшем метаданных файловой системы (inode/dentry). Увеличение значения (до 200-500) ускоряет освобождение памяти при её нехватке.",[95,1905,1907],{"className":97,"code":1906,"language":99,"meta":100,"style":100},"# Установим значение 200\nsudo sysctl vm.vfs_cache_pressure=200\n# Сохраним в /etc/sysctl.conf\necho \"vm.vfs_cache_pressure=200\" | sudo tee -a /etc/sysctl.conf\nsudo sysctl -p\n",[45,1908,1909,1914,1926,1931,1950],{"__ignoreMap":100},[104,1910,1911],{"class":106,"line":107},[104,1912,1913],{"class":1759},"# Установим значение 200\n",[104,1915,1916,1918,1920,1923],{"class":106,"line":613},[104,1917,530],{"class":110},[104,1919,1290],{"class":191},[104,1921,1922],{"class":191}," vm.vfs_cache_pressure=",[104,1924,1925],{"class":113},"200\n",[104,1927,1928],{"class":106,"line":625},[104,1929,1930],{"class":1759},"# Сохраним в /etc/sysctl.conf\n",[104,1932,1933,1935,1938,1940,1942,1944,1947],{"class":106,"line":1775},[104,1934,1854],{"class":113},[104,1936,1937],{"class":191}," \"vm.vfs_cache_pressure=200\"",[104,1939,1380],{"class":1379},[104,1941,1862],{"class":110},[104,1943,1865],{"class":191},[104,1945,1946],{"class":113}," -a",[104,1948,1949],{"class":191}," /etc/sysctl.conf\n",[104,1951,1953,1955,1957],{"class":106,"line":1952},5,[104,1954,530],{"class":110},[104,1956,1290],{"class":191},[104,1958,1815],{"class":113},[17,1960,1962],{"id":1961},"шаг-5-внедрение-zram-рекомендуется-для-ssd","Шаг 5: Внедрение zram (рекомендуется для SSD)",[22,1964,1965],{},"Zram создаёт сжатый блок устройства в RAM, который используется как своп. Это быстрее традиционного свопа на диске и снижает износ SSD. Идеально для систем без раздела свопа или с малым объёмом RAM.",[22,1967,1968],{},[866,1969,1970],{},"Установка и настройка:",[22,1972,1973],{},"Для Debian/Ubuntu:",[95,1975,1977],{"className":97,"code":1976,"language":99,"meta":100,"style":100},"sudo apt update && sudo apt install zram-tools\n",[45,1978,1979],{"__ignoreMap":100},[104,1980,1981,1983,1986,1989,1993,1995,1997,2000],{"class":106,"line":107},[104,1982,530],{"class":110},[104,1984,1985],{"class":191}," apt",[104,1987,1988],{"class":191}," update",[104,1990,1992],{"class":1991},"sVt8B"," && ",[104,1994,530],{"class":110},[104,1996,1985],{"class":191},[104,1998,1999],{"class":191}," install",[104,2001,2002],{"class":191}," zram-tools\n",[22,2004,2005],{},"Для Fedora/CentOS (после включения репозитория):",[95,2007,2009],{"className":97,"code":2008,"language":99,"meta":100,"style":100},"sudo dnf install zram\n",[45,2010,2011],{"__ignoreMap":100},[104,2012,2013,2015,2018,2020],{"class":106,"line":107},[104,2014,530],{"class":110},[104,2016,2017],{"class":191}," dnf",[104,2019,1999],{"class":191},[104,2021,2022],{"class":191}," zram\n",[22,2024,2025],{},"Для Arch:",[95,2027,2029],{"className":97,"code":2028,"language":99,"meta":100,"style":100},"sudo pacman -S zram\n",[45,2030,2031],{"__ignoreMap":100},[104,2032,2033,2035,2038,2041],{"class":106,"line":107},[104,2034,530],{"class":110},[104,2036,2037],{"class":191}," pacman",[104,2039,2040],{"class":113}," -S",[104,2042,2022],{"class":191},[22,2044,2045,2046,306,2049,2052],{},"Настройте размер в файле конфигурации (обычно ",[45,2047,2048],{},"/etc/default/zramswap",[45,2050,2051],{},"/etc/modprobe.d/zram.conf","). Пример для 50% RAM:",[95,2054,2056],{"className":97,"code":2055,"language":99,"meta":100,"style":100},"# В /etc/default/zramswap (Debian/Ubuntu)\nPERCENTAGE=50\n",[45,2057,2058,2063],{"__ignoreMap":100},[104,2059,2060],{"class":106,"line":107},[104,2061,2062],{"class":1759},"# В /etc/default/zramswap (Debian/Ubuntu)\n",[104,2064,2065,2068,2071],{"class":106,"line":613},[104,2066,2067],{"class":1991},"PERCENTAGE",[104,2069,2070],{"class":1379},"=",[104,2072,2073],{"class":191},"50\n",[22,2075,2076],{},"Запустите службу:",[95,2078,2080],{"className":97,"code":2079,"language":99,"meta":100,"style":100},"sudo systemctl enable --now zramswap\n# Или вручную (если нет systemd-юнита)\nsudo modprobe zram\necho lz4 | sudo tee /sys/block/zram0/comp_algorithm\necho $(( $(grep MemTotal /proc/meminfo | awk '{print $2}') * 512 / 1024 / 1024 * 50 / 100 )) | sudo tee /sys/block/zram0/disksize\nsudo mkswap /dev/zram0\nsudo swapon -p 10 /dev/zram0\n",[45,2081,2082,2098,2103,2112,2128,2176,2186],{"__ignoreMap":100},[104,2083,2084,2086,2089,2092,2095],{"class":106,"line":107},[104,2085,530],{"class":110},[104,2087,2088],{"class":191}," systemctl",[104,2090,2091],{"class":191}," enable",[104,2093,2094],{"class":113}," --now",[104,2096,2097],{"class":191}," zramswap\n",[104,2099,2100],{"class":106,"line":613},[104,2101,2102],{"class":1759},"# Или вручную (если нет systemd-юнита)\n",[104,2104,2105,2107,2110],{"class":106,"line":625},[104,2106,530],{"class":110},[104,2108,2109],{"class":191}," modprobe",[104,2111,2022],{"class":191},[104,2113,2114,2116,2119,2121,2123,2125],{"class":106,"line":1775},[104,2115,1854],{"class":113},[104,2117,2118],{"class":191}," lz4",[104,2120,1380],{"class":1379},[104,2122,1862],{"class":110},[104,2124,1865],{"class":191},[104,2126,2127],{"class":191}," /sys/block/zram0/comp_algorithm\n",[104,2129,2130,2132,2135,2138,2141,2144,2146,2149,2152,2155,2158,2161,2163,2166,2169,2171,2173],{"class":106,"line":1952},[104,2131,1854],{"class":113},[104,2133,2134],{"class":1991}," $(( ",[104,2136,2137],{"class":110},"$(grep",[104,2139,2140],{"class":191}," MemTotal",[104,2142,2143],{"class":191}," /proc/meminfo",[104,2145,1380],{"class":1379},[104,2147,2148],{"class":110}," awk",[104,2150,2151],{"class":191}," '{print $2}'",[104,2153,2154],{"class":1991},") ",[104,2156,2157],{"class":1379},"*",[104,2159,2160],{"class":1991}," 512 / 1024 / 1024 ",[104,2162,2157],{"class":1379},[104,2164,2165],{"class":1991}," 50 / 100 )) ",[104,2167,2168],{"class":1379},"|",[104,2170,1862],{"class":110},[104,2172,1865],{"class":191},[104,2174,2175],{"class":191}," /sys/block/zram0/disksize\n",[104,2177,2179,2181,2183],{"class":106,"line":2178},6,[104,2180,530],{"class":110},[104,2182,1180],{"class":191},[104,2184,2185],{"class":191}," /dev/zram0\n",[104,2187,2189,2191,2193,2196,2199],{"class":106,"line":2188},7,[104,2190,530],{"class":110},[104,2192,1223],{"class":191},[104,2194,2195],{"class":113}," -p",[104,2197,2198],{"class":113}," 10",[104,2200,2185],{"class":191},[22,2202,2203,2204,2206,2207,48],{},"Проверьте: ",[45,2205,458],{}," должен отобразить ",[45,2208,2209],{},"zram0",[17,2211,423],{"id":422},[268,2213,2214,2243,2254],{},[32,2215,2216,2217,2219,2220],{},"Сравните ",[45,2218,433],{}," до и после настроек. Ожидайте:",[29,2221,2222,2228,2238],{},[32,2223,2224,2225,2227],{},"Увеличение ",[45,2226,163],{}," памяти.",[32,2229,2230,2231,1064,2233,601,2235,2237],{},"Снижение ",[45,2232,401],{},[45,2234,407],{},[45,2236,352],{}," (ближе к 0).",[32,2239,2240,2241,48],{},"При использовании zram — появление устройства в ",[45,2242,458],{},[32,2244,2245,2246],{},"Протестируйте отзывчивость системы:",[29,2247,2248,2251],{},[32,2249,2250],{},"Запустите несколько вкладок браузера или тяжёлое приложение.",[32,2252,2253],{},"Переключайтесь между ними — задержки при переключении должны уменьшиться.",[32,2255,2256,2257],{},"Мониторинг в реальном времени:",[95,2258,2260],{"className":97,"code":2259,"language":99,"meta":100,"style":100},"watch -n 1 free -h\n",[45,2261,2262],{"__ignoreMap":100},[104,2263,2264,2267,2270,2272,2275],{"class":106,"line":107},[104,2265,2266],{"class":110},"watch",[104,2268,2269],{"class":113}," -n",[104,2271,1857],{"class":113},[104,2273,2274],{"class":191}," free",[104,2276,114],{"class":113},[17,2278,467],{"id":466},[469,2280,2282],{"id":2281},"_1-своп-не-уменьшается-после-настройки-swappiness","1. Своп не уменьшается после настройки swappiness",[22,2284,2285,2287,2288,2290,2292,2293,2295,2296,48],{},[866,2286,1407],{},": Ядро может не сразу применять новые настройки под нагрузкой.",[1267,2289],{},[866,2291,1413],{},": Перезагрузите систему или дождитесь снижения активности. Проверьте, что значение ",[45,2294,47],{}," изменилось через ",[45,2297,592],{},[469,2299,2301],{"id":2300},"_2-zram-не-активируется-после-перезагрузки","2. Zram не активируется после перезагрузки",[22,2303,2304,2306,2307,2309,1211],{},[866,2305,1407],{},": Служба не включена или конфликт модулей.",[1267,2308],{},[866,2310,1413],{},[29,2312,2313,2319,2329],{},[32,2314,2315,2316,48],{},"Убедитесь, что служба активна: ",[45,2317,2318],{},"systemctl status zramswap",[32,2320,2321,2322,2325,2326,48],{},"Проверьте модуль ядра: ",[45,2323,2324],{},"lsmod | grep zram",". Если нет — ",[45,2327,2328],{},"sudo modprobe zram",[32,2330,2331,2332,2335],{},"Для ручной настройки добавьте команды в ",[45,2333,2334],{},"/etc/rc.local"," или systemd-юнит.",[469,2337,2339],{"id":2338},"_3-после-очистки-кэша-система-зависла-на-10-20-секунд","3. После очистки кэша система зависла на 10-20 секунд",[22,2341,2342,2344,2345,2347,2349],{},[866,2343,1407],{},": Ожидание повторной загрузки файлов с диска.",[1267,2346],{},[866,2348,1413],{},": Это нормально. Не повторяйте очистку часто. Если проблема повторяется — возможно, у вас недостаточно RAM для текущей нагрузки, и нужно рассмотреть апгрейд или дальнейшую оптимизацию (например, уменьшение числа сервисов).",[469,2351,2353],{"id":2352},"_4-параметры-ядра-не-применяются-после-редактирования-sysctlconf","4. Параметры ядра не применяются после редактирования sysctl.conf",[22,2355,2356,2358,2359,2361,1211],{},[866,2357,1407],{},": Синтаксическая ошибка в файле или отсутствие модуля ядра.",[1267,2360],{},[866,2362,1413],{},[29,2364,2365,2371],{},[32,2366,2367,2368,2370],{},"Проверьте синтаксис: ",[45,2369,1313],{}," покажет ошибки.",[32,2372,2373,2374,2377],{},"Убедитесь, что параметр поддерживается: ",[45,2375,2376],{},"sysctl -a | grep vm.swappiness",". Если нет — возможно, старое ядро (менее 3.5). Обновите ядро или используйте альтернативные методы (например, systemd-юниты для zram).",[609,2379,2380],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":100,"searchDepth":613,"depth":613,"links":2382},[2383,2384,2385,2386,2387,2388,2389,2390,2391],{"id":853,"depth":613,"text":854},{"id":887,"depth":613,"text":888},{"id":1668,"depth":613,"text":1669},{"id":1743,"depth":613,"text":1744},{"id":1832,"depth":613,"text":1833},{"id":1896,"depth":613,"text":1897},{"id":1961,"depth":613,"text":1962},{"id":422,"depth":613,"text":423},{"id":466,"depth":613,"text":467,"children":2392},[2393,2394,2395,2396],{"id":2281,"depth":625,"text":2282},{"id":2300,"depth":625,"text":2301},{"id":2338,"depth":625,"text":2339},{"id":2352,"depth":625,"text":2353},"2026-02-17 13:54:33","Пошаговая инструкция по оптимизации использования оперативной памяти в Linux. Настройте своп, кэш и параметры ядра для улучшения отзывчивости системы уже сегодня.","medium","15-30 мин",[2402,2405,2408,2411],{"question":2403,"answer":2404},"Безопасно ли менять параметр swappiness в продакшн-сервере?","Да, но начинайте с малых изменений (например, с 10 до 5) и мониторьте использование свопа. Резкое изменение может временно ухудшить производительность.",{"question":2406,"answer":2407},"Очистка кэша памяти реально помогает или это вредно?","Кратковременная очистка полезна для тестов, но постоянно очищать кэш не рекомендуется — это замедлит систему, так как файлы будут загружаться с диска повторно.",{"question":2409,"answer":2410},"Что лучше: увеличить своп на диске или использовать zram?","Zram предпочтительнее на SSD/флеш-накопителях, так как снижает износ. На HDD традиционный своп может быть эффективнее из-за скорости последовательного чтения.",{"question":2412,"answer":2413},"Как понять, что память оптимизирована успешно?","Ключевые показатели: низкий процент использования свопа (less than 10%), стабильное значение `si/so` в vmstat близкое к 0 и отсутствие процессов в состоянии `D` (непрерываемый сон).",[2415,2418,2421,2424,2427],{"name":2416,"text":2417},"Проверка текущего состояния памяти","Запустите команды `free -h` и `vmstat 1 5`, чтобы увидеть использование RAM, свопа и активность. Обратите внимание на строки `used`, `free`, `buff/cache` и столбцы `si`/`so` (своп-ин/аут).",{"name":2419,"text":2420},"Настройка swappiness","Измените значение swappiness (напр., на 10) через `sudo sysctl vm.swappiness=10`. Для постоянного применения добавьте `vm.swappiness=10` в `/etc/sysctl.conf` и выполните `sudo sysctl -p`.",{"name":2422,"text":2423},"Очистка кэша (при необходимости)","Временно освободите кэш командой `echo 3 | sudo tee /proc/sys/vm/drop_caches`. **Не используйте это регулярно** — только для диагностики или разового освобождения памяти.",{"name":2425,"text":2426},"Настройка vfs_cache_pressure","Увеличьте значение (напр., до 200) через `sudo sysctl vm.vfs_cache_pressure=200` и сохраните в `/etc/sysctl.conf`. Это ускорит освобождение метаданных кэша при нехватке памяти.",{"name":2428,"text":2429},"Внедрение zram (рекомендуется для SSD)","Установите `zram-tools` (Debian/Ubuntu) или `zram` (Arch), настройте размер в `/etc/default/zramswap` (например, 50% RAM) и запустите службу `sudo systemctl enable --now zramswap`.","PT20M",[2432,2433,2434,2435,2436,2437,2438,2439,2440,2441],"оптимизация памяти linux","управление памятью linux","увеличить оперативную память linux","своп linux настройка","очистка кэша памяти linux","vm.swappiness параметр","улучшение производительности linux","memory usage optimization","linux memory management guide","как уменьшить использование памяти в linux",{},[2444,2445,2446],"/guides/linux/check-memory-usage","/guides/linux/tune-kernel-parameters","/guides/linux/clear-disk-space",{"title":1618,"description":2398},"guides/linux/optimize-memory-usage","Этот гайд поможет вам уменьшить потребление памяти, настроить своп и параметры ядра Linux. Вы научитесь контролировать использование RAM и повысите производительность системы без апгрейда железа.",[678,2451,2452,2453,692,1612,2454],"оптимизация","память","sysadmin","kernel","mSMRU0bGYDCr0onTGGOVgNOqZrnG1m5wngiVsvARVzc",{"id":2457,"title":2458,"appliesTo":2459,"author":12,"body":2464,"canonical":629,"code":3464,"createdAt":3465,"description":3466,"difficulty":2399,"draft":633,"estimatedTime":2400,"extension":635,"faq":3467,"howToSteps":3480,"howToTotalTime":2430,"image":629,"keywords":3496,"locale":674,"meta":3506,"navigation":676,"path":682,"platform":678,"related":3507,"section":3511,"seo":3512,"severity":3513,"stem":3514,"summary":3515,"tags":3516,"twitterCreator":629,"twitterSite":629,"type":3519,"updatedAt":3465,"__hash__":3520},"content_ru/errors/linux/out-of-memory-error.md","Out of Memory (OOM) ошибка в Linux: причины и способы решения",[2460,2461,2462,2463],"Linux (любой дистрибутив)","Systemd-based системы","Docker/Kubernetes среды","Серверы и рабочие станции",{"type":14,"value":2465,"toc":3452},[2466,2470,2485,2502,2508,2511,2515,2518,2568,2572,2576,2579,2808,2812,2815,2986,2990,2993,3212,3216,3219,3348,3352,3422,3424,3428,3449],[17,2467,2469],{"id":2468},"что-означает-ошибка-out-of-memory-oom","Что означает ошибка Out of Memory (OOM)",[22,2471,2472,2473,2476,2477,2480,2481,2484],{},"Ошибка ",[866,2474,2475],{},"Out of Memory (OOM)"," в Linux — это не сообщение в стиле Windows, а ",[866,2478,2479],{},"действие ядра операционной системы",". Когда система физически исчерпывает всю доступную оперативную память (RAM) и место в swap-файле/разделе, ядро активирует механизм ",[866,2482,2483],{},"OOM killer"," (убийца при нехватке памяти).",[22,2486,2487,2488,2491,2492,502,2495,502,2498,2501],{},"Его цель — сохранить работоспособность системы в целом, ",[866,2489,2490],{},"принудительно завершив один или несколько процессов",", которые потребляют наибольший объём памяти. Типичный симптом: процесс (например, ",[45,2493,2494],{},"java",[45,2496,2497],{},"python",[45,2499,2500],{},"mysqld",", контейнер Docker) внезапно завершается с сообщением в логах:",[95,2503,2506],{"className":2504,"code":2505,"language":130},[128],"[12345.678] Out of memory: Kill process 1234 (some_process) score 500 or sacrifice child\n[12345.679] Killed process 1234 (some_process) total-vm:1234567kB, anon-rss:987654kB, file-rss:0kB\n",[45,2507,2505],{"__ignoreMap":100},[22,2509,2510],{},"Система может стать неотзывчивой, а после завершения «виновника» — вернуться в нормальное состояние.",[17,2512,2514],{"id":2513},"причины-возникновения","Причины возникновения",[22,2516,2517],{},"Причины нехватки памяти обычно делятся на несколько категорий:",[268,2519,2520,2526,2544,2550,2556,2562],{},[32,2521,2522,2525],{},[866,2523,2524],{},"Утечки памяти (Memory Leaks) в приложениях."," Программа (например, на Java, Python, C++) постепенно выделяет память под объекты, но не освобождает её после использования. Со временем потребление растёт до критических значений.",[32,2527,2528,2531,2532,2535,2536,2539,2540,2543],{},[866,2529,2530],{},"Неправильная конфигурация приложений."," Чрезмерно большой размер кучи (heap) для JVM (",[45,2533,2534],{},"-Xmx","), кэширование слишком больших объёмов данных без ограничений, неоптимальные настройки веб-сервера (например, ",[45,2537,2538],{},"worker_processes"," + ",[45,2541,2542],{},"worker_connections"," в Nginx).",[32,2545,2546,2549],{},[866,2547,2548],{},"Физически недостаточный объём RAM."," Запуск нескольких требовательных приложений (виртуальные машины, базы данных, тяжёлые IDE) на сервере с малым количеством памяти.",[32,2551,2552,2555],{},[866,2553,2554],{},"Отсутствие или недостаточный размер swap-пространства."," Swap служит «подушкой безопасности». Если его нет или он слишком мал, первое же существенное нехватка RAM приведёт к OOM.",[32,2557,2558,2561],{},[866,2559,2560],{},"Атака или вредоносное ПО."," Например, DDoS-атака, вызывающая создание множества соединений, или скрипт, бесконечно создающий процессы/объекты в памяти.",[32,2563,2564,2567],{},[866,2565,2566],{},"«Зомби»-процессы или неосвобождаемые ресурсы ядра."," Хотя реже, но некоторые ядерные структуры (например, неосвобождённые inode или dentry) могут накапливаться.",[17,2569,2571],{"id":2570},"способы-решения","Способы решения",[469,2573,2575],{"id":2574},"способ-1-диагностика-и-мониторинг-первый-шаг-всегда","Способ 1: Диагностика и мониторинг (первый шаг всегда)",[22,2577,2578],{},"Прежде чем что-то менять, точно определите источник проблемы.",[268,2580,2581,2654,2738],{},[32,2582,2583,2586,2641,2643,2644,73,2647,1661,2650,2653],{},[866,2584,2585],{},"Проверьте системный журнал на наличие записей OOM.",[95,2587,2589],{"className":97,"code":2588,"language":99,"meta":100,"style":100},"# Поиск в логах systemd (journalctl)\njournalctl -k | grep -i -E \"killed process|out of memory\"\n\n# Или через dmesg\ndmesg | grep -i oom\n",[45,2590,2591,2596,2617,2622,2627],{"__ignoreMap":100},[104,2592,2593],{"class":106,"line":107},[104,2594,2595],{"class":1759},"# Поиск в логах systemd (journalctl)\n",[104,2597,2598,2601,2604,2606,2608,2611,2614],{"class":106,"line":613},[104,2599,2600],{"class":110},"journalctl",[104,2602,2603],{"class":113}," -k",[104,2605,1380],{"class":1379},[104,2607,1383],{"class":110},[104,2609,2610],{"class":113}," -i",[104,2612,2613],{"class":113}," -E",[104,2615,2616],{"class":191}," \"killed process|out of memory\"\n",[104,2618,2619],{"class":106,"line":625},[104,2620,2621],{"emptyLinePlaceholder":676},"\n",[104,2623,2624],{"class":106,"line":1775},[104,2625,2626],{"class":1759},"# Или через dmesg\n",[104,2628,2629,2632,2634,2636,2638],{"class":106,"line":1952},[104,2630,2631],{"class":110},"dmesg",[104,2633,1380],{"class":1379},[104,2635,1383],{"class":110},[104,2637,2610],{"class":113},[104,2639,2640],{"class":191}," oom\n",[1267,2642],{},"В выводе будет ",[866,2645,2646],{},"PID",[866,2648,2649],{},"имя процесса",[45,2651,2652],{},"some_process","), который был убит. Это ваш главный подозреваемый.",[32,2655,2656,2659],{},[866,2657,2658],{},"Оцените текущее использование памяти.",[95,2660,2662],{"className":97,"code":2661,"language":99,"meta":100,"style":100},"# Установите утилиту, если нет (для Debian/Ubuntu)\nsudo apt-get install htop\n\n# Запустите htop (нажимайте F6 для сортировки по MEM%)\nhtop\n\n# Или используйте встроенные команды\nfree -h  # Покажет общую картину RAM+Swap\nps aux --sort=-%mem | head -10  # Топ-10 процессов по памяти\n",[45,2663,2664,2669,2681,2685,2690,2695,2699,2704,2715],{"__ignoreMap":100},[104,2665,2666],{"class":106,"line":107},[104,2667,2668],{"class":1759},"# Установите утилиту, если нет (для Debian/Ubuntu)\n",[104,2670,2671,2673,2676,2678],{"class":106,"line":613},[104,2672,530],{"class":110},[104,2674,2675],{"class":191}," apt-get",[104,2677,1999],{"class":191},[104,2679,2680],{"class":191}," htop\n",[104,2682,2683],{"class":106,"line":625},[104,2684,2621],{"emptyLinePlaceholder":676},[104,2686,2687],{"class":106,"line":1775},[104,2688,2689],{"class":1759},"# Запустите htop (нажимайте F6 для сортировки по MEM%)\n",[104,2691,2692],{"class":106,"line":1952},[104,2693,2694],{"class":110},"htop\n",[104,2696,2697],{"class":106,"line":2178},[104,2698,2621],{"emptyLinePlaceholder":676},[104,2700,2701],{"class":106,"line":2188},[104,2702,2703],{"class":1759},"# Или используйте встроенные команды\n",[104,2705,2707,2709,2712],{"class":106,"line":2706},8,[104,2708,72],{"class":110},[104,2710,2711],{"class":113}," -h",[104,2713,2714],{"class":1759},"  # Покажет общую картину RAM+Swap\n",[104,2716,2718,2721,2724,2727,2729,2732,2735],{"class":106,"line":2717},9,[104,2719,2720],{"class":110},"ps",[104,2722,2723],{"class":191}," aux",[104,2725,2726],{"class":113}," --sort=-%mem",[104,2728,1380],{"class":1379},[104,2730,2731],{"class":110}," head",[104,2733,2734],{"class":113}," -10",[104,2736,2737],{"class":1759},"  # Топ-10 процессов по памяти\n",[32,2739,2740,2743,2802,2804,2805,48],{},[866,2741,2742],{},"Для контейнеров Docker/Kubernetes:",[95,2744,2746],{"className":97,"code":2745,"language":99,"meta":100,"style":100},"# Показать контейнеры с их потреблением памяти\ndocker stats --no-stream\n\n# Проверить логи контейнера на наличие OOM\ndocker logs \u003Ccontainer_id> 2>&1 | grep -i oom\n",[45,2747,2748,2753,2764,2768,2773],{"__ignoreMap":100},[104,2749,2750],{"class":106,"line":107},[104,2751,2752],{"class":1759},"# Показать контейнеры с их потреблением памяти\n",[104,2754,2755,2758,2761],{"class":106,"line":613},[104,2756,2757],{"class":110},"docker",[104,2759,2760],{"class":191}," stats",[104,2762,2763],{"class":113}," --no-stream\n",[104,2765,2766],{"class":106,"line":625},[104,2767,2621],{"emptyLinePlaceholder":676},[104,2769,2770],{"class":106,"line":1775},[104,2771,2772],{"class":1759},"# Проверить логи контейнера на наличие OOM\n",[104,2774,2775,2777,2780,2783,2786,2788,2791,2794,2796,2798,2800],{"class":106,"line":1952},[104,2776,2757],{"class":110},[104,2778,2779],{"class":191}," logs",[104,2781,2782],{"class":1379}," \u003C",[104,2784,2785],{"class":191},"container_i",[104,2787,305],{"class":1991},[104,2789,2790],{"class":1379},">",[104,2792,2793],{"class":1379}," 2>&1",[104,2795,1380],{"class":1379},[104,2797,1383],{"class":110},[104,2799,2610],{"class":113},[104,2801,2640],{"class":191},[1267,2803],{},"В Kubernetes событие OOM будет в ",[45,2806,2807],{},"kubectl describe pod \u003Cpod_name>",[469,2809,2811],{"id":2810},"способ-2-немедленные-действия-для-стабилизации-системы","Способ 2: Немедленные действия для стабилизации системы",[22,2813,2814],{},"Если система уже в кризисе, но ещё реагирует:",[268,2816,2817,2864,2914],{},[32,2818,2819,2822,2823,220,2825,2851,2853,2856,2857,2860,2861,48],{},[866,2820,2821],{},"Вручную завершите «пожирателя» памяти"," (используйте PID из логов или ",[45,2824,554],{},[95,2826,2828],{"className":97,"code":2827,"language":99,"meta":100,"style":100},"sudo kill -9 \u003CPID>\n",[45,2829,2830],{"__ignoreMap":100},[104,2831,2832,2834,2837,2840,2842,2845,2848],{"class":106,"line":107},[104,2833,530],{"class":110},[104,2835,2836],{"class":191}," kill",[104,2838,2839],{"class":113}," -9",[104,2841,2782],{"class":1379},[104,2843,2844],{"class":191},"PI",[104,2846,2847],{"class":1991},"D",[104,2849,2850],{"class":1379},">\n",[1267,2852],{},[866,2854,2855],{},"Внимание:"," ",[45,2858,2859],{},"-9"," (SIGKILL) — грубая сила. Сначала попробуйте обычный ",[45,2862,2863],{},"kill \u003CPID>",[32,2865,2866,2869,2870,2873,2874,2908,2910],{},[866,2867,2868],{},"Очистите кэши файловой системы"," (может помочь, если проблема в кэшах). ",[866,2871,2872],{},"Это безопасно",", ядро заново заполнит их по мере необходимости.",[95,2875,2877],{"className":97,"code":2876,"language":99,"meta":100,"style":100},"# Очистка только кэша страниц (pagecache), dentries и inodes\nsudo sync  # Синхронизируем данные на диск\necho 3 | sudo tee /proc/sys/vm/drop_caches\n",[45,2878,2879,2884,2894],{"__ignoreMap":100},[104,2880,2881],{"class":106,"line":107},[104,2882,2883],{"class":1759},"# Очистка только кэша страниц (pagecache), dentries и inodes\n",[104,2885,2886,2888,2891],{"class":106,"line":613},[104,2887,530],{"class":110},[104,2889,2890],{"class":191}," sync",[104,2892,2893],{"class":1759},"  # Синхронизируем данные на диск\n",[104,2895,2896,2898,2900,2902,2904,2906],{"class":106,"line":625},[104,2897,1854],{"class":113},[104,2899,1880],{"class":113},[104,2901,1380],{"class":1379},[104,2903,1862],{"class":110},[104,2905,1865],{"class":191},[104,2907,1868],{"class":191},[1267,2909],{},[2911,2912,2913],"em",{},"Не выполняйте эту команду слишком часто и не на продакшн-сервере без понимания последствий.",[32,2915,2916,2919,2920,2982,2203,2984,48],{},[866,2917,2918],{},"Временно увеличьте swap-пространство"," (если его мало или нет), чтобы дать системе «передышку».",[95,2921,2923],{"className":97,"code":2922,"language":99,"meta":100,"style":100},"# Создаём файл подкачки размером 2ГБ\nsudo fallocate -l 2G /swapfile\nsudo chmod 600 /swapfile\nsudo mkswap /swapfile\nsudo swapon /swapfile\n\n# Чтобы включить после перезагрузки, добавьте в /etc/fstab:\n# /swapfile none swap sw 0 0\n",[45,2924,2925,2930,2942,2952,2960,2968,2972,2977],{"__ignoreMap":100},[104,2926,2927],{"class":106,"line":107},[104,2928,2929],{"class":1759},"# Создаём файл подкачки размером 2ГБ\n",[104,2931,2932,2934,2936,2938,2940],{"class":106,"line":613},[104,2933,530],{"class":110},[104,2935,1022],{"class":191},[104,2937,1025],{"class":113},[104,2939,1028],{"class":191},[104,2941,1031],{"class":191},[104,2943,2944,2946,2948,2950],{"class":106,"line":625},[104,2945,530],{"class":110},[104,2947,1132],{"class":191},[104,2949,1135],{"class":113},[104,2951,1031],{"class":191},[104,2953,2954,2956,2958],{"class":106,"line":1775},[104,2955,530],{"class":110},[104,2957,1180],{"class":191},[104,2959,1031],{"class":191},[104,2961,2962,2964,2966],{"class":106,"line":1952},[104,2963,530],{"class":110},[104,2965,1223],{"class":191},[104,2967,1031],{"class":191},[104,2969,2970],{"class":106,"line":2178},[104,2971,2621],{"emptyLinePlaceholder":676},[104,2973,2974],{"class":106,"line":2188},[104,2975,2976],{"class":1759},"# Чтобы включить после перезагрузки, добавьте в /etc/fstab:\n",[104,2978,2979],{"class":106,"line":2706},[104,2980,2981],{"class":1759},"# /swapfile none swap sw 0 0\n",[1267,2983],{},[45,2985,433],{},[469,2987,2989],{"id":2988},"способ-3-настройка-поведения-oom-killer-oompolicy","Способ 3: Настройка поведения OOM killer (OOMPolicy)",[22,2991,2992],{},"Вы можете повлиять на то, какой процесс OOM killer выберет в первую очередь.",[268,2994,2995,3102],{},[32,2996,2997,3004,3005,3008,3009,3012,3013,3092,3094,3097,3098,3101],{},[866,2998,2999,3000,3003],{},"Используйте ",[45,3001,3002],{},"oom_score_adj"," для критичных процессов."," У каждого процесса есть ",[45,3006,3007],{},"oom_score"," (от 0 до 1000), рассчитанный на основе потребления памяти. Чем выше, тем вероятнее его убийство. Вы можете ",[866,3010,3011],{},"снизить"," этот балл для важных сервисов.",[95,3014,3016],{"className":97,"code":3015,"language":99,"meta":100,"style":100},"# Посмотреть текущий oom_score для процесса\ncat /proc/\u003CPID>/oom_score\n\n# Установить низкий приоритет на убийство (например, -500) для PID 1234\nsudo echo -500 > /proc/1234/oom_score_adj\n\n# Для постоянной настройки лучше использовать systemd-юнит\n# В файле сервиса /etc/systemd/system/\u003Cservice>.service добавьте:\n# [Service]\n# OOMScoreAdjust=-500\n",[45,3017,3018,3023,3042,3046,3051,3067,3071,3076,3081,3086],{"__ignoreMap":100},[104,3019,3020],{"class":106,"line":107},[104,3021,3022],{"class":1759},"# Посмотреть текущий oom_score для процесса\n",[104,3024,3025,3027,3030,3033,3035,3037,3039],{"class":106,"line":613},[104,3026,188],{"class":110},[104,3028,3029],{"class":191}," /proc/",[104,3031,3032],{"class":1379},"\u003C",[104,3034,2844],{"class":191},[104,3036,2847],{"class":1991},[104,3038,2790],{"class":1379},[104,3040,3041],{"class":191},"/oom_score\n",[104,3043,3044],{"class":106,"line":625},[104,3045,2621],{"emptyLinePlaceholder":676},[104,3047,3048],{"class":106,"line":1775},[104,3049,3050],{"class":1759},"# Установить низкий приоритет на убийство (например, -500) для PID 1234\n",[104,3052,3053,3055,3058,3061,3064],{"class":106,"line":1952},[104,3054,530],{"class":110},[104,3056,3057],{"class":191}," echo",[104,3059,3060],{"class":113}," -500",[104,3062,3063],{"class":1379}," >",[104,3065,3066],{"class":191}," /proc/1234/oom_score_adj\n",[104,3068,3069],{"class":106,"line":2178},[104,3070,2621],{"emptyLinePlaceholder":676},[104,3072,3073],{"class":106,"line":2188},[104,3074,3075],{"class":1759},"# Для постоянной настройки лучше использовать systemd-юнит\n",[104,3077,3078],{"class":106,"line":2706},[104,3079,3080],{"class":1759},"# В файле сервиса /etc/systemd/system/\u003Cservice>.service добавьте:\n",[104,3082,3083],{"class":106,"line":2717},[104,3084,3085],{"class":1759},"# [Service]\n",[104,3087,3089],{"class":106,"line":3088},10,[104,3090,3091],{"class":1759},"# OOMScoreAdjust=-500\n",[1267,3093],{},[866,3095,3096],{},"Важно:"," Не ставьте ",[45,3099,3100],{},"oom_score_adj = -1000"," (запрет на убийство) для всех процессов. Это может привести к полному зависанию системы.",[32,3103,3104,3110,3111,3114,3115,1661,3117,3120,3121,1661,3124,3127,3128,3200,3202,3204,3205,3207,3208,3211],{},[866,3105,3106,3107,220],{},"Изменение политики переcommitting памяти (",[45,3108,3109],{},"vm.overcommit_memory","\nПо умолчанию (",[45,3112,3113],{},"0",") ядро использует эвристику. Режим ",[45,3116,373],{},[45,3118,3119],{},"Always overcommit",") позволяет выделять память без ограничений, но риск OOM возрастает. Режим ",[45,3122,3123],{},"2",[45,3125,3126],{},"Don't overcommit",") строго проверяет, достаточно ли памяти+swap.",[95,3129,3131],{"className":97,"code":3130,"language":99,"meta":100,"style":100},"# Проверить текущее значение\ncat /proc/sys/vm/overcommit_memory\n\n# Временно установить режим \"не переcommittить\" (2)\nsudo sysctl vm.overcommit_memory=2\nsudo sysctl vm.overcommit_ratio=100  # % от RAM+Swap, который можно выделить\n\n# Для постоянной настройки добавьте в /etc/sysctl.conf:\n# vm.overcommit_memory = 2\n# vm.overcommit_ratio = 100\n",[45,3132,3133,3138,3145,3149,3154,3166,3181,3185,3190,3195],{"__ignoreMap":100},[104,3134,3135],{"class":106,"line":107},[104,3136,3137],{"class":1759},"# Проверить текущее значение\n",[104,3139,3140,3142],{"class":106,"line":613},[104,3141,188],{"class":110},[104,3143,3144],{"class":191}," /proc/sys/vm/overcommit_memory\n",[104,3146,3147],{"class":106,"line":625},[104,3148,2621],{"emptyLinePlaceholder":676},[104,3150,3151],{"class":106,"line":1775},[104,3152,3153],{"class":1759},"# Временно установить режим \"не переcommittить\" (2)\n",[104,3155,3156,3158,3160,3163],{"class":106,"line":1952},[104,3157,530],{"class":110},[104,3159,1290],{"class":191},[104,3161,3162],{"class":191}," vm.overcommit_memory=",[104,3164,3165],{"class":113},"2\n",[104,3167,3168,3170,3172,3175,3178],{"class":106,"line":2178},[104,3169,530],{"class":110},[104,3171,1290],{"class":191},[104,3173,3174],{"class":191}," vm.overcommit_ratio=",[104,3176,3177],{"class":113},"100",[104,3179,3180],{"class":1759},"  # % от RAM+Swap, который можно выделить\n",[104,3182,3183],{"class":106,"line":2188},[104,3184,2621],{"emptyLinePlaceholder":676},[104,3186,3187],{"class":106,"line":2706},[104,3188,3189],{"class":1759},"# Для постоянной настройки добавьте в /etc/sysctl.conf:\n",[104,3191,3192],{"class":106,"line":2717},[104,3193,3194],{"class":1759},"# vm.overcommit_memory = 2\n",[104,3196,3197],{"class":106,"line":3088},[104,3198,3199],{"class":1759},"# vm.overcommit_ratio = 100\n",[1267,3201],{},[866,3203,2855],{}," Режим ",[45,3206,3123],{}," может привести к тому, что приложения начнут падать с ",[45,3209,3210],{},"Cannot allocate memory"," ещё до срабатывания OOM killer, что иногда удобнее для отладки.",[469,3213,3215],{"id":3214},"способ-4-устранение-коренной-причины","Способ 4: Устранение коренной причины",[22,3217,3218],{},"Это самый важный и долгосрочный шаг.",[268,3220,3221,3266,3272,3325,3331],{},[32,3222,3223,3226,3227,502,3229,3232,3233,502,3236,502,3239,3242,3243],{},[866,3224,3225],{},"Для Java-приложений:"," Проверьте и уменьшите размер кучи (",[45,3228,2534],{},[45,3230,3231],{},"-Xms",") в параметрах JVM. Используйте инструменты вроде ",[45,3234,3235],{},"jstat",[45,3237,3238],{},"jmap",[45,3240,3241],{},"VisualVM"," для анализа heap dump.",[95,3244,3246],{"className":97,"code":3245,"language":99,"meta":100,"style":100},"# Пример запуска с ограничением heap до 2ГБ\njava -Xmx2g -jar your_app.jar\n",[45,3247,3248,3253],{"__ignoreMap":100},[104,3249,3250],{"class":106,"line":107},[104,3251,3252],{"class":1759},"# Пример запуска с ограничением heap до 2ГБ\n",[104,3254,3255,3257,3260,3263],{"class":106,"line":613},[104,3256,2494],{"class":110},[104,3258,3259],{"class":113}," -Xmx2g",[104,3261,3262],{"class":113}," -jar",[104,3264,3265],{"class":191}," your_app.jar\n",[32,3267,3268,3271],{},[866,3269,3270],{},"Для веб-серверов (Nginx/Apache):"," Оптимизируйте количество рабочих процессов/потоков под имеющуюся память. Убедитесь, что нет бесконечного кэширования.",[32,3273,3274,3277],{},[866,3275,3276],{},"Поиск утечек памяти:",[29,3278,3279,3288,3302,3313],{},[32,3280,3281,3284,3285,48],{},[866,3282,3283],{},"Для C/C++:"," Используйте ",[45,3286,3287],{},"valgrind --leak-check=yes",[32,3289,3290,2856,3293,502,3296,502,3299,48],{},[866,3291,3292],{},"Для Python:",[45,3294,3295],{},"tracemalloc",[45,3297,3298],{},"objgraph",[45,3300,3301],{},"memory_profiler",[32,3303,3304,2856,3307,502,3310,48],{},[866,3305,3306],{},"Для Node.js:",[45,3308,3309],{},"heapdump",[45,3311,3312],{},"clinic.js",[32,3314,3315,2856,3318,3321,3322,48],{},[866,3316,3317],{},"Общие утилиты:",[45,3319,3320],{},"smem -t -p"," (показывает PSS — Proportional Set Size), ",[45,3323,3324],{},"cat /proc/\u003CPID>/smaps",[32,3326,3327,3330],{},[866,3328,3329],{},"Апгрейд железа."," Если нагрузка закономерна и приложение оптимизировано, возможно, просто не хватает физической RAM для рабочих задач.",[32,3332,3333,3336,3337,502,3340,3343,3344,3347],{},[866,3334,3335],{},"Для контейнеров (Docker/K8s):"," Корректно задавайте лимиты памяти (",[45,3338,3339],{},"--memory",[45,3341,3342],{},"--memory-swap"," в Docker; ",[45,3345,3346],{},"resources.limits.memory"," в K8s). Без лимитов контейнер может «съесть» всю память хоста.",[17,3349,3351],{"id":3350},"профилактика","Профилактика",[268,3353,3354,3380,3389,3403,3416],{},[32,3355,3356,3359,3360],{},[866,3357,3358],{},"Внедрите мониторинг."," Настройте алерты (в Zabbix, Prometheus/Grafana, Nagios) на ключевые метрики:",[29,3361,3362,3368,3374],{},[32,3363,3364,3367],{},[45,3365,3366],{},"node_memory_MemAvailable_bytes"," (доступно памяти) \u003C 10-15%",[32,3369,3370,3373],{},[45,3371,3372],{},"node_memory_SwapTotal_bytes"," и использование swap > 50%",[32,3375,3376,3379],{},[45,3377,3378],{},"container_spec_memory_limit_bytes"," (для контейнеров)",[32,3381,3382,3385,3386,3388],{},[866,3383,3384],{},"Регулярно анализируйте логи."," Добавьте в мониторинг парсинг логов ",[45,3387,2600],{}," на наличие «Killed process».",[32,3390,3391,3394,3395,3398,3399,3402],{},[866,3392,3393],{},"Правильно настраивайте лимиты."," Для всех сервисов (особенно в Docker/K8s) задавайте как ",[45,3396,3397],{},"requests"," (гарантированный минимум), так и ",[45,3400,3401],{},"limits"," (жёсткий потолок).",[32,3404,3405,3408,3409,502,3412,3415],{},[866,3406,3407],{},"Тестируйте под нагрузкой."," Проводите нагрузочное тестирование (например, ",[45,3410,3411],{},"stress-ng",[45,3413,3414],{},"memtester",") в staging-среде, чтобы увидеть поведение приложения при росте потребления памяти.",[32,3417,3418,3421],{},[866,3419,3420],{},"Следите за версиями ПО."," Утечки памяти часто исправляются в обновлениях. Регулярно обновляйте ОС и критичные приложения.",[418,3423],{},[17,3425,3427],{"id":3426},"заключение","Заключение",[22,3429,2472,3430,3433,3434,3436,3437,3440,3441,3444,3445,3448],{},[866,3431,3432],{},"Out of Memory"," в Linux — это сигнал о том, что система исчерпала свои ресурсы. Механизм ",[866,3435,2483],{}," — это последняя линия обороны, а не решение проблемы. Ваша задача — ",[866,3438,3439],{},"диагностировать"," «пожирателя» памяти через логи, ",[866,3442,3443],{},"стабилизировать"," систему (завершив процесс или добавив swap), а затем ",[866,3446,3447],{},"устранить коренную причину",": утечку, неправильную конфигурацию или физический недостаток RAM. Профилактика через мониторинг и грамотное выделение лимитов — лучший способ избежать внезапных падений сервисов в будущем.",[609,3450,3451],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":100,"searchDepth":613,"depth":613,"links":3453},[3454,3455,3456,3462,3463],{"id":2468,"depth":613,"text":2469},{"id":2513,"depth":613,"text":2514},{"id":2570,"depth":613,"text":2571,"children":3457},[3458,3459,3460,3461],{"id":2574,"depth":625,"text":2575},{"id":2810,"depth":625,"text":2811},{"id":2988,"depth":625,"text":2989},{"id":3214,"depth":625,"text":3215},{"id":3350,"depth":613,"text":3351},{"id":3426,"depth":613,"text":3427},"OOM","2026-02-15 16:50:40","Система Linux завершает процессы из-за нехватки памяти? Узнайте, как работает OOM killer, диагностировать проблему и настроить систему для стабильной работы. Пошаговое руководство.",[3468,3471,3474,3477],{"question":3469,"answer":3470},"Что такое OOM killer и почему он завершает мои процессы?","OOM killer (Out-Of-Memory killer) — это механизм ядра Linux, который автоматически завершает один или несколько процессов, когда система физически исчерпала всю доступную оперативную память (RAM) и swap-пространство, чтобы предотвратить полный крах системы.",{"question":3472,"answer":3473},"Можно ли полностью отключить OOM killer?","Можно, но крайне не рекомендуется. Отключение (через `echo 0 > /proc/sys/vm/panic_on_oom`) приведёт к тому, что система зависнет при нехватке памяти, вместо того чтобы убить процесс. Лучше настроить параметры OOM или устранить причину нехватки памяти.",{"question":3475,"answer":3476},"Как понять, какой процесс был убит OOM killer?","Поищите записи в системном журнале (journalctl). Команда `journalctl -k | grep -i \"killed process\"` или `dmesg | grep -i oom` покажет, какой процесс (с его PID и именем) был завершён и сколько памяти он потреблял.",{"question":3478,"answer":3479},"Повышение swap-пространства всегда решает проблему OOM?","Не всегда. Swap — это медленная запись на диск. Система будет работать крайне медленно (thrashing) ещё до срабатывания OOM, если активно использует swap. Это временная мера, а не решение проблемы утечек памяти или неправильного выделения ресурсов.",[3481,3484,3487,3490,3493],{"name":3482,"text":3483},"Диагностика: проверьте журналы на наличие OOM событий","Определите, сработал ли OOM killer и какой процесс был завершён. Это ключевой первый шаг.",{"name":3485,"text":3486},"Мониторинг: оцените текущее использование памяти","Используйте утилиты в реальном времени, чтобы понять, какие процессы потребляют больше всего RAM.",{"name":3488,"text":3489},"Краткосрочное решение: освободите память","Если система ещё работает, но нестабильна, можно вручную завершить «пожирателей» памяти или очистить кэши.",{"name":3491,"text":3492},"Среднесрочное решение: настройте параметры OOM","Настройте `oom_score_adj` для критичных процессов или измените политику переcommitting памяти (`vm.overcommit_memory`).",{"name":3494,"text":3495},"Долгосрочное решение: устранение причины","Найдите и исправьте утечки памяти в приложениях, оптимизируйте конфигурации (например, JVM heap) или увеличьте объём RAM.",[3497,3498,3499,3500,3501,3502,3503,3504,3109,3505],"out of memory error linux","oom killer","нехватка памяти linux","как исправить oom linux","система завершает процессы из-за памяти","oom error ubuntu","docker out of memory","killed process linux","memory leak linux",{},[3508,3509,3510],"/errors/linux/docker-oom-killed","/guides/linux/monitor-memory-usage","/errors/linux/swap-space-issues","Ошибки Linux",{"title":2458,"description":3466},"critical","errors/linux/out-of-memory-error","Статья подробно объясняет ошибку 'Out of Memory' (OOM) в Linux, механизм работы OOM killer, основные причины нехватки оперативной памяти и предоставляет конкретные пошаговые инструкции по диагностике, немедленному исправлению и профилактике проблемы.",[3517,3498,1612,2453,692,2757,3518],"ошибки linux","monitoring","error","X2HzvnvYn7WOy3OVhIcLPPeFCXFQzL8wSC_33U6B0lQ"]