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