[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/errors/linux/linux-high-memory-usage":3,"mdc-oiivis-key":970,"mdc--4tuxkp-key":1008,"mdc-qpwb3u-key":1037,"mdc--x6btpb-key":1052,"mdc-cep4e2-key":1074,"mdc-ti4r1-key":1091,"mdc--km57js-key":1115,"related-/errors/linux/linux-out-of-memory-killer,/guides/linux/linux-performance-monitoring,/guides/linux/linux-memory-management":1139},{"id":4,"title":5,"appliesTo":6,"author":12,"body":13,"canonical":907,"code":908,"createdAt":909,"description":910,"difficulty":911,"draft":912,"estimatedTime":913,"extension":914,"faq":915,"howToSteps":925,"howToTotalTime":938,"image":907,"keywords":939,"locale":948,"meta":949,"navigation":463,"path":950,"platform":951,"related":952,"section":956,"seo":957,"severity":958,"stem":959,"summary":960,"tags":961,"twitterCreator":907,"twitterSite":907,"type":968,"updatedAt":909,"__hash__":969},"content_ru/errors/linux/linux-high-memory-usage.md","Высокая нагрузка на память в Linux: причины и решения",[7,8,9,10,11],"Ubuntu 20.04/22.04","Debian 11/12","CentOS 7/8","Rocky Linux 8/9","Альт Линукс","FixPedia Team",{"type":14,"value":15,"toc":881},"minimark",[16,20,25,34,38,41,87,91,96,99,121,124,132,146,150,153,183,186,218,221,247,250,287,291,294,303,305,314,332,336,339,352,363,376,379,382,386,390,393,397,400,404,407,411,418,422,425,429,433,439,517,520,540,544,553,582,585,589,690,694,697,729,736,739,756,760,763,831,835,861,865,874,877],[17,18,5],"h1",{"id":19},"высокая-нагрузка-на-память-в-linux-причины-и-решения",[21,22,24],"h2",{"id":23},"введение","Введение",[26,27,28,29,33],"p",{},"Проблема высокого потребления оперативной памяти (ОЗУ) в Linux — одна из наиболее распространённых причин замедления работы системы и сбоев приложений. Когда оперативная память исчерпывается, ядро Linux активирует механизм ",[30,31,32],"strong",{},"OOM Killer"," (Out of Memory Killer), который принудительно завершает процессы для освобождения ресурсов. В этой статье рассматриваются методы диагностики, анализа и устранения проблем с высокой нагрузкой на память.",[21,35,37],{"id":36},"симптомы-проблемы","Симптомы проблемы",[26,39,40],{},"Прежде чем переходить к диагностике, важно распознать основные признаки высокого потребления памяти:",[42,43,44,51,57,75,81],"ul",{},[45,46,47,50],"li",{},[30,48,49],{},"Замедление системы"," — приложения долго запускаются и реагируют на действия пользователя",[45,52,53,56],{},[30,54,55],{},"Частые зависания"," — система перестаёт отвечать на запросы",[45,58,59,62,63,67,68,71,72],{},[30,60,61],{},"Сообщения в логах"," — появление записей типа ",[64,65,66],"code",{},"Out of memory: Kill process"," в ",[64,69,70],{},"/var/log/messages"," или ",[64,73,74],{},"dmesg",[45,76,77,80],{},[30,78,79],{},"Активное использование swap"," — система активно работает с разделом подкачки",[45,82,83,86],{},[30,84,85],{},"Ошибки приложений"," — программы аварийно завершаются с сообщениями о нехватке памяти",[21,88,90],{"id":89},"диагностика-состояния-памяти","Диагностика состояния памяти",[92,93,95],"h3",{"id":94},"базовая-проверка-с-помощью-free","Базовая проверка с помощью free",[26,97,98],{},"Первая команда, которую следует выполнить при подозрении на проблемы с памятью:",[100,101,106],"pre",{"className":102,"code":103,"language":104,"meta":105,"style":105},"language-bash shiki shiki-themes github-light github-dark","free -h\n","bash","",[64,107,108],{"__ignoreMap":105},[109,110,113,117],"span",{"class":111,"line":112},"line",1,[109,114,116],{"class":115},"sScJk","free",[109,118,120],{"class":119},"sj4cs"," -h\n",[26,122,123],{},"Пример вывода:",[100,125,130],{"className":126,"code":128,"language":129},[127],"language-text","              total        used        free      shared  buff/cache   available\nMem:           15Gi       8.2Gi       2.1Gi       345Mi       4.6Gi       6.3Gi\nSwap:         2.0Gi       1.5Gi       500Mi\n","text",[64,131,128],{"__ignoreMap":105},[26,133,134,137,138,141,142,145],{},[30,135,136],{},"Важно понимать:"," колонка ",[64,139,140],{},"buff/cache"," показывает память, используемую системой для кэширования файлов. Это не проблема — Linux автоматически освободит эту память, когда приложениям потребуется больше ОЗУ. Ориентируйтесь на колонку ",[64,143,144],{},"available",".",[92,147,149],{"id":148},"определение-процессов-потребляющих-память","Определение процессов, потребляющих память",[26,151,152],{},"Для поиска процессов, использующих больше всего оперативной памяти, используйте:",[100,154,156],{"className":102,"code":155,"language":104,"meta":105,"style":105},"ps aux --sort=-%mem | head -n 15\n",[64,157,158],{"__ignoreMap":105},[109,159,160,163,167,170,174,177,180],{"class":111,"line":112},[109,161,162],{"class":115},"ps",[109,164,166],{"class":165},"sZZnC"," aux",[109,168,169],{"class":119}," --sort=-%mem",[109,171,173],{"class":172},"szBVR"," |",[109,175,176],{"class":115}," head",[109,178,179],{"class":119}," -n",[109,181,182],{"class":119}," 15\n",[26,184,185],{},"Вывод покажет:",[42,187,188,194,200,206,212],{},[45,189,190,193],{},[30,191,192],{},"USER"," — владелец процесса",[45,195,196,199],{},[30,197,198],{},"PID"," — идентификатор процесса",[45,201,202,205],{},[30,203,204],{},"%MEM"," — процент использования ОЗУ",[45,207,208,211],{},[30,209,210],{},"RSS"," — размер резидентной части процесса (в Кб)",[45,213,214,217],{},[30,215,216],{},"COMMAND"," — команда запуска процесса",[26,219,220],{},"Для получения информации о конкретном процессе:",[100,222,224],{"className":102,"code":223,"language":104,"meta":105,"style":105},"pmap -x \u003CPID>\n",[64,225,226],{"__ignoreMap":105},[109,227,228,231,234,237,240,244],{"class":111,"line":112},[109,229,230],{"class":115},"pmap",[109,232,233],{"class":119}," -x",[109,235,236],{"class":172}," \u003C",[109,238,239],{"class":165},"PI",[109,241,243],{"class":242},"sVt8B","D",[109,245,246],{"class":172},">\n",[26,248,249],{},"или",[100,251,253],{"className":102,"code":252,"language":104,"meta":105,"style":105},"cat /proc/\u003CPID>/status | grep -E \"VmRSS|VmSize|VmData\"\n",[64,254,255],{"__ignoreMap":105},[109,256,257,260,263,266,268,270,273,276,278,281,284],{"class":111,"line":112},[109,258,259],{"class":115},"cat",[109,261,262],{"class":165}," /proc/",[109,264,265],{"class":172},"\u003C",[109,267,239],{"class":165},[109,269,243],{"class":242},[109,271,272],{"class":172},">",[109,274,275],{"class":165},"/status",[109,277,173],{"class":172},[109,279,280],{"class":115}," grep",[109,282,283],{"class":119}," -E",[109,285,286],{"class":165}," \"VmRSS|VmSize|VmData\"\n",[92,288,290],{"id":289},"мониторинг-в-реальном-времени","Мониторинг в реальном времени",[26,292,293],{},"Интерактивные утилиты для мониторинга:",[100,295,297],{"className":102,"code":296,"language":104,"meta":105,"style":105},"htop\n",[64,298,299],{"__ignoreMap":105},[109,300,301],{"class":111,"line":112},[109,302,296],{"class":115},[26,304,249],{},[100,306,308],{"className":102,"code":307,"language":104,"meta":105,"style":105},"top\n",[64,309,310],{"__ignoreMap":105},[109,311,312],{"class":111,"line":112},[109,313,307],{"class":115},[26,315,316,317,320,321,324,325,328,329,331],{},"В ",[64,318,319],{},"htop"," нажмите ",[30,322,323],{},"M"," для сортировки по использованию памяти. В ",[64,326,327],{},"top"," используйте команду ",[30,330,323],{}," после запуска.",[92,333,335],{"id":334},"проверка-использования-swap","Проверка использования swap",[26,337,338],{},"Активное использование swap-пространства указывает на нехватку оперативной памяти:",[100,340,342],{"className":102,"code":341,"language":104,"meta":105,"style":105},"vmstat 1\n",[64,343,344],{"__ignoreMap":105},[109,345,346,349],{"class":111,"line":112},[109,347,348],{"class":115},"vmstat",[109,350,351],{"class":119}," 1\n",[26,353,354,355,358,359,362],{},"Обратите внимание на колонку ",[30,356,357],{},"si"," (swap in) и ",[30,360,361],{},"so"," (swap out). Значения, отличные от нуля в течение длительного времени, сигнализируют о проблеме.",[100,364,366],{"className":102,"code":365,"language":104,"meta":105,"style":105},"swapon --show\n",[64,367,368],{"__ignoreMap":105},[109,369,370,373],{"class":111,"line":112},[109,371,372],{"class":115},"swapon",[109,374,375],{"class":119}," --show\n",[26,377,378],{},"Эта команда покажет все swap-разделы и файлы.",[380,381],"in-article-ad",{},[21,383,385],{"id":384},"типичные-причины-высокого-потребления-памяти","Типичные причины высокого потребления памяти",[92,387,389],{"id":388},"_1-утечки-памяти-в-приложениях","1. Утечки памяти в приложениях",[26,391,392],{},"Некорректно написанные программы могут выделять память и не освобождать её. Определить утечку можно постепенным ростом потребления памяти конкретным процессом во времени.",[92,394,396],{"id":395},"_2-слишком-большое-количество-запущенных-процессов","2. Слишком большое количество запущенных процессов",[26,398,399],{},"Множество фоновых процессов, запущенных автоматически, могут суммарно потреблять значительный объём ОЗУ.",[92,401,403],{"id":402},"_3-недостаточный-объём-оперативной-памяти","3. Недостаточный объём оперативной памяти",[26,405,406],{},"Для современных задач может требоваться больше ОЗУ, чем установлено в системе.",[92,408,410],{"id":409},"_4-некорректные-настройки-свопинга","4. Некорректные настройки свопинга",[26,412,413,414,417],{},"Параметр ",[64,415,416],{},"vm.swappiness"," определяет агрессивность использования swap. Значение по умолчанию — 60, что может быть слишком высоким для серверов.",[92,419,421],{"id":420},"_5-кэширование-файловой-системы","5. Кэширование файловой системы",[26,423,424],{},"Linux активно кэширует файлы в памяти. При некорректной настройке это может приводить к проблемам.",[21,426,428],{"id":427},"методы-решения-проблем","Методы решения проблем",[92,430,432],{"id":431},"оптимизация-параметров-ядра","Оптимизация параметров ядра",[26,434,435,436,438],{},"Настройка параметра ",[64,437,416],{},":",[100,440,442],{"className":102,"code":441,"language":104,"meta":105,"style":105},"# Просмотр текущего значения\ncat /proc/sys/vm/swappiness\n\n# Временное изменение (до перезагрузки)\nsysctl vm.swappiness=10\n\n# Постоянное изменение\necho \"vm.swappiness=10\" >> /etc/sysctl.conf\nsysctl -p\n",[64,443,444,450,458,465,471,483,488,494,509],{"__ignoreMap":105},[109,445,446],{"class":111,"line":112},[109,447,449],{"class":448},"sJ8bj","# Просмотр текущего значения\n",[109,451,453,455],{"class":111,"line":452},2,[109,454,259],{"class":115},[109,456,457],{"class":165}," /proc/sys/vm/swappiness\n",[109,459,461],{"class":111,"line":460},3,[109,462,464],{"emptyLinePlaceholder":463},true,"\n",[109,466,468],{"class":111,"line":467},4,[109,469,470],{"class":448},"# Временное изменение (до перезагрузки)\n",[109,472,474,477,480],{"class":111,"line":473},5,[109,475,476],{"class":115},"sysctl",[109,478,479],{"class":165}," vm.swappiness=",[109,481,482],{"class":119},"10\n",[109,484,486],{"class":111,"line":485},6,[109,487,464],{"emptyLinePlaceholder":463},[109,489,491],{"class":111,"line":490},7,[109,492,493],{"class":448},"# Постоянное изменение\n",[109,495,497,500,503,506],{"class":111,"line":496},8,[109,498,499],{"class":119},"echo",[109,501,502],{"class":165}," \"vm.swappiness=10\"",[109,504,505],{"class":172}," >>",[109,507,508],{"class":165}," /etc/sysctl.conf\n",[109,510,512,514],{"class":111,"line":511},9,[109,513,476],{"class":115},[109,515,516],{"class":119}," -p\n",[26,518,519],{},"Рекомендуемые значения:",[42,521,522,528,534],{},[45,523,524,527],{},[30,525,526],{},"10-30"," — для серверов с достаточным объёмом ОЗУ",[45,529,530,533],{},[30,531,532],{},"60"," — значение по умолчанию",[45,535,536,539],{},[30,537,538],{},"90-100"," — для систем с очень малым объёмом ОЗУ",[92,541,543],{"id":542},"очистка-кэша-страниц","Очистка кэша страниц",[545,546,547],"blockquote",{},[26,548,549,552],{},[30,550,551],{},"Внимание:"," Не выполняйте на production-серверах без крайней необходимости.",[100,554,556],{"className":102,"code":555,"language":104,"meta":105,"style":105},"# Очистка кэша страниц (только с правами root)\nsync && echo 3 > /proc/sys/vm/drop_caches\n",[64,557,558,563],{"__ignoreMap":105},[109,559,560],{"class":111,"line":112},[109,561,562],{"class":448},"# Очистка кэша страниц (только с правами root)\n",[109,564,565,568,571,573,576,579],{"class":111,"line":452},[109,566,567],{"class":115},"sync",[109,569,570],{"class":242}," && ",[109,572,499],{"class":119},[109,574,575],{"class":119}," 3",[109,577,578],{"class":172}," >",[109,580,581],{"class":165}," /proc/sys/vm/drop_caches\n",[26,583,584],{},"Эта команда очистит кэш страниц, dentries и inode. Эффект будет временным.",[92,586,588],{"id":587},"оптимизация-запущенных-процессов","Оптимизация запущенных процессов",[590,591,592,616,643],"ol",{},[45,593,594,597],{},[30,595,596],{},"Определите ненужные процессы:",[100,598,600],{"className":102,"code":599,"language":104,"meta":105,"style":105},"systemctl list-units --type=service --state=running\n",[64,601,602],{"__ignoreMap":105},[109,603,604,607,610,613],{"class":111,"line":112},[109,605,606],{"class":115},"systemctl",[109,608,609],{"class":165}," list-units",[109,611,612],{"class":119}," --type=service",[109,614,615],{"class":119}," --state=running\n",[45,617,618,621],{},[30,619,620],{},"Отключите автозапуск ненужных сервисов:",[100,622,624],{"className":102,"code":623,"language":104,"meta":105,"style":105},"systemctl disable \u003Cservice_name>\n",[64,625,626],{"__ignoreMap":105},[109,627,628,630,633,635,638,641],{"class":111,"line":112},[109,629,606],{"class":115},[109,631,632],{"class":165}," disable",[109,634,236],{"class":172},[109,636,637],{"class":165},"service_nam",[109,639,640],{"class":242},"e",[109,642,246],{"class":172},[45,644,645,648],{},[30,646,647],{},"Остановите процессы вручную:",[100,649,651],{"className":102,"code":650,"language":104,"meta":105,"style":105},"kill -15 \u003CPID>  # мягкое завершение\nkill -9 \u003CPID>   # принудительное завершение (если не помогает)\n",[64,652,653,672],{"__ignoreMap":105},[109,654,655,658,661,663,665,667,669],{"class":111,"line":112},[109,656,657],{"class":119},"kill",[109,659,660],{"class":119}," -15",[109,662,236],{"class":172},[109,664,239],{"class":165},[109,666,243],{"class":242},[109,668,272],{"class":172},[109,670,671],{"class":448},"  # мягкое завершение\n",[109,673,674,676,679,681,683,685,687],{"class":111,"line":452},[109,675,657],{"class":119},[109,677,678],{"class":119}," -9",[109,680,236],{"class":172},[109,682,239],{"class":165},[109,684,243],{"class":242},[109,686,272],{"class":172},[109,688,689],{"class":448},"   # принудительное завершение (если не помогает)\n",[92,691,693],{"id":692},"настройка-oom-killer","Настройка OOM Killer",[26,695,696],{},"Вы можете настроить поведение OOM Killer для отдельных процессов:",[100,698,700],{"className":102,"code":699,"language":104,"meta":105,"style":105},"# Установить приоритет OOM для процесса (от -17 до 0)\necho -17 > /proc/\u003CPID>/oom_score_adj\n",[64,701,702,707],{"__ignoreMap":105},[109,703,704],{"class":111,"line":112},[109,705,706],{"class":448},"# Установить приоритет OOM для процесса (от -17 до 0)\n",[109,708,709,711,714,716,718,720,722,724,726],{"class":111,"line":452},[109,710,499],{"class":119},[109,712,713],{"class":119}," -17",[109,715,578],{"class":172},[109,717,262],{"class":165},[109,719,265],{"class":172},[109,721,239],{"class":165},[109,723,243],{"class":242},[109,725,272],{"class":172},[109,727,728],{"class":165},"/oom_score_adj\n",[26,730,731,732,735],{},"Значение ",[30,733,734],{},"-17"," полностью исключает процесс из завершения OOM Killer.",[26,737,738],{},"Для демонов и важных сервисов добавьте в systemd-юнит:",[100,740,744],{"className":741,"code":742,"language":743,"meta":105,"style":105},"language-ini shiki shiki-themes github-light github-dark","[Service]\nOOMScoreAdjust=-1000\n","ini",[64,745,746,751],{"__ignoreMap":105},[109,747,748],{"class":111,"line":112},[109,749,750],{},"[Service]\n",[109,752,753],{"class":111,"line":452},[109,754,755],{},"OOMScoreAdjust=-1000\n",[92,757,759],{"id":758},"увеличение-swap-пространства","Увеличение swap-пространства",[26,761,762],{},"Если физической памяти недостаточно, создайте дополнительный swap-файл:",[100,764,766],{"className":102,"code":765,"language":104,"meta":105,"style":105},"# Создание файла подкачки на 2 Гб\nfallocate -l 2G /swapfile\nchmod 600 /swapfile\nmkswap /swapfile\nswapon /swapfile\n\n# Добавление в fstab для постоянного монтирования\necho '/swapfile none swap sw 0 0' >> /etc/fstab\n",[64,767,768,773,787,797,804,810,814,819],{"__ignoreMap":105},[109,769,770],{"class":111,"line":112},[109,771,772],{"class":448},"# Создание файла подкачки на 2 Гб\n",[109,774,775,778,781,784],{"class":111,"line":452},[109,776,777],{"class":115},"fallocate",[109,779,780],{"class":119}," -l",[109,782,783],{"class":165}," 2G",[109,785,786],{"class":165}," /swapfile\n",[109,788,789,792,795],{"class":111,"line":460},[109,790,791],{"class":115},"chmod",[109,793,794],{"class":119}," 600",[109,796,786],{"class":165},[109,798,799,802],{"class":111,"line":467},[109,800,801],{"class":115},"mkswap",[109,803,786],{"class":165},[109,805,806,808],{"class":111,"line":473},[109,807,372],{"class":115},[109,809,786],{"class":165},[109,811,812],{"class":111,"line":485},[109,813,464],{"emptyLinePlaceholder":463},[109,815,816],{"class":111,"line":490},[109,817,818],{"class":448},"# Добавление в fstab для постоянного монтирования\n",[109,820,821,823,826,828],{"class":111,"line":496},[109,822,499],{"class":119},[109,824,825],{"class":165}," '/swapfile none swap sw 0 0'",[109,827,505],{"class":172},[109,829,830],{"class":165}," /etc/fstab\n",[21,832,834],{"id":833},"профилактика-проблем-с-памятью","Профилактика проблем с памятью",[590,836,837,843,849,855],{},[45,838,839,842],{},[30,840,841],{},"Регулярный мониторинг"," — настройте системные метрики для отслеживания использования памяти",[45,844,845,848],{},[30,846,847],{},"Оптимизация приложений"," — используйте профилировщики для поиска утечек памяти в коде",[45,850,851,854],{},[30,852,853],{},"Правильное планирование"," — выбирайте объём ОЗУ в соответствии с требованиями рабочих нагрузок",[45,856,857,860],{},[30,858,859],{},"Обновление системы"," — используйте актуальные версии ядра и системных библиотек",[21,862,864],{"id":863},"заключение","Заключение",[26,866,867,868,870,871,873],{},"Высокое потребление памяти в Linux — комплексная проблема, требующая систематического подхода к диагностике. Начните с мониторинга состояния системы с помощью команд ",[64,869,116],{}," и ",[64,872,162],{},", определите процессы-«пожиратели» памяти и оптимизируйте их работу. Настройка параметров ядра и правильная конфигурация swap помогут предотвратить проблемы в будущем.",[26,875,876],{},"Если стандартные методы не помогают, рассмотрите возможность увеличения физической оперативной памяти или оптимизации архитектуры приложений.",[878,879,880],"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}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}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":105,"searchDepth":452,"depth":452,"links":882},[883,884,885,891,898,905,906],{"id":23,"depth":452,"text":24},{"id":36,"depth":452,"text":37},{"id":89,"depth":452,"text":90,"children":886},[887,888,889,890],{"id":94,"depth":460,"text":95},{"id":148,"depth":460,"text":149},{"id":289,"depth":460,"text":290},{"id":334,"depth":460,"text":335},{"id":384,"depth":452,"text":385,"children":892},[893,894,895,896,897],{"id":388,"depth":460,"text":389},{"id":395,"depth":460,"text":396},{"id":402,"depth":460,"text":403},{"id":409,"depth":460,"text":410},{"id":420,"depth":460,"text":421},{"id":427,"depth":452,"text":428,"children":899},[900,901,902,903,904],{"id":431,"depth":460,"text":432},{"id":542,"depth":460,"text":543},{"id":587,"depth":460,"text":588},{"id":692,"depth":460,"text":693},{"id":758,"depth":460,"text":759},{"id":833,"depth":452,"text":834},{"id":863,"depth":452,"text":864},null,"MEM-HIGH","2026-02-13 20:51:01","Подробное руководство по диагностике и устранению проблем с высоким потреблением памяти в Linux. Определение процессов, использующих много ОЗУ, и методы оптимизации.","medium",false,"25-40 мин","md",[916,919,922],{"question":917,"answer":918},"Почему Linux показывает 100% использование памяти, хотя я не запускал тяжёлые приложения?","Linux использует принцип **cached memory** — система кэширует часто используемые данные в свободной оперативной памяти для ускорения доступа. Это не является проблемой: память будет освобождена при необходимости приложениями. Используйте команду `free -h` и смотрите строку **available**, а не **used**.",{"question":920,"answer":921},"Как найти процесс, который потребляет больше всего памяти?","Используйте команду `ps aux --sort=-%mem | head -n 10` для просмотра топ-10 процессов по потреблению памяти. Также можно использовать интерактивные утилиты `htop` или `top`.",{"question":923,"answer":924},"Что делать, если система уходит в своп (swap)?","Если система активно использует swap, это сигнал о нехватке ОЗУ. Решения: добавить оперативную память, оптимизировать работу приложений, настроить параметр **vm.swappiness** (значение от 0 до 100, чем меньше — тем меньше система использует swap), или увеличить размер swap-раздела.",[926,929,932,935],{"name":927,"text":928},"Проверить текущее состояние памяти","Выполните команду `free -h` для получения общей картины использования памяти. Обратите внимание на колонку **available** — это реально доступная память для приложений.",{"name":930,"text":931},"Определить топ процессов по памяти","Используйте `ps aux --sort=-%mem | head -n 15` для вывода списка процессов, потребляющих больше всего оперативной памяти.",{"name":933,"text":934},"Проанализировать использование swap","Проверьте активность свопа командой `vmstat 1` или `sar -S 1 5`. Частое использование swap указывает на нехватку ОЗУ.",{"name":936,"text":937},"Оптимизировать параметры системы","Настройте `vm.swappiness` (рекомендуется 10-30 для серверов), очистите кэш страниц `sync && echo 3 > /proc/sys/vm/drop_caches` (с осторожностью на production-системах).","PT35M",[940,941,942,943,944,945,946,947],"linux высокая нагрузка на память","linux oom killer","высокое потребление оперативной памяти linux","free memory linux","top memory linux","ps aux memory usage","linux swap usage","очистка памяти linux","ru_RU",{},"/errors/linux/linux-high-memory-usage","linux",[953,954,955],"/errors/linux/linux-out-of-memory-killer","/guides/linux/linux-performance-monitoring","/guides/linux/linux-memory-management","Ошибки Linux",{"title":5,"description":910},"high","errors/linux/linux-high-memory-usage","Проблема высокого потребления оперативной памяти в Linux-системах: диагностика процессов, анализ использования памяти и эффективные способы снижения нагрузки.",[951,962,963,964,965,966,967],"memory","performance","troubleshooting","oom","ram","optimization","error","WdRQzxwV9DyppVzqr8RMQnjIpI91V18e2sF0OMQC3kc",{"data":971,"body":972},{},{"type":973,"children":974},"root",[975],{"type":976,"tag":26,"props":977,"children":978},"element",{},[979,981,986,988,994,996,1000,1002,1007],{"type":129,"value":980},"Linux использует принцип ",{"type":976,"tag":30,"props":982,"children":983},{},[984],{"type":129,"value":985},"cached memory",{"type":129,"value":987}," — система кэширует часто используемые данные в свободной оперативной памяти для ускорения доступа. Это не является проблемой: память будет освобождена при необходимости приложениями. Используйте команду ",{"type":976,"tag":64,"props":989,"children":991},{"className":990},[],[992],{"type":129,"value":993},"free -h",{"type":129,"value":995}," и смотрите строку ",{"type":976,"tag":30,"props":997,"children":998},{},[999],{"type":129,"value":144},{"type":129,"value":1001},", а не ",{"type":976,"tag":30,"props":1003,"children":1004},{},[1005],{"type":129,"value":1006},"used",{"type":129,"value":145},{"data":1009,"body":1010},{},{"type":973,"children":1011},[1012],{"type":976,"tag":26,"props":1013,"children":1014},{},[1015,1017,1023,1025,1030,1031,1036],{"type":129,"value":1016},"Используйте команду ",{"type":976,"tag":64,"props":1018,"children":1020},{"className":1019},[],[1021],{"type":129,"value":1022},"ps aux --sort=-%mem | head -n 10",{"type":129,"value":1024}," для просмотра топ-10 процессов по потреблению памяти. Также можно использовать интерактивные утилиты ",{"type":976,"tag":64,"props":1026,"children":1028},{"className":1027},[],[1029],{"type":129,"value":319},{"type":129,"value":71},{"type":976,"tag":64,"props":1032,"children":1034},{"className":1033},[],[1035],{"type":129,"value":327},{"type":129,"value":145},{"data":1038,"body":1039},{},{"type":973,"children":1040},[1041],{"type":976,"tag":26,"props":1042,"children":1043},{},[1044,1046,1050],{"type":129,"value":1045},"Если система активно использует swap, это сигнал о нехватке ОЗУ. Решения: добавить оперативную память, оптимизировать работу приложений, настроить параметр ",{"type":976,"tag":30,"props":1047,"children":1048},{},[1049],{"type":129,"value":416},{"type":129,"value":1051}," (значение от 0 до 100, чем меньше — тем меньше система использует swap), или увеличить размер swap-раздела.",{"data":1053,"body":1054},{},{"type":973,"children":1055},[1056],{"type":976,"tag":26,"props":1057,"children":1058},{},[1059,1061,1066,1068,1072],{"type":129,"value":1060},"Выполните команду ",{"type":976,"tag":64,"props":1062,"children":1064},{"className":1063},[],[1065],{"type":129,"value":993},{"type":129,"value":1067}," для получения общей картины использования памяти. Обратите внимание на колонку ",{"type":976,"tag":30,"props":1069,"children":1070},{},[1071],{"type":129,"value":144},{"type":129,"value":1073}," — это реально доступная память для приложений.",{"data":1075,"body":1076},{},{"type":973,"children":1077},[1078],{"type":976,"tag":26,"props":1079,"children":1080},{},[1081,1083,1089],{"type":129,"value":1082},"Используйте ",{"type":976,"tag":64,"props":1084,"children":1086},{"className":1085},[],[1087],{"type":129,"value":1088},"ps aux --sort=-%mem | head -n 15",{"type":129,"value":1090}," для вывода списка процессов, потребляющих больше всего оперативной памяти.",{"data":1092,"body":1093},{},{"type":973,"children":1094},[1095],{"type":976,"tag":26,"props":1096,"children":1097},{},[1098,1100,1106,1107,1113],{"type":129,"value":1099},"Проверьте активность свопа командой ",{"type":976,"tag":64,"props":1101,"children":1103},{"className":1102},[],[1104],{"type":129,"value":1105},"vmstat 1",{"type":129,"value":71},{"type":976,"tag":64,"props":1108,"children":1110},{"className":1109},[],[1111],{"type":129,"value":1112},"sar -S 1 5",{"type":129,"value":1114},". Частое использование swap указывает на нехватку ОЗУ.",{"data":1116,"body":1117},{},{"type":973,"children":1118},[1119],{"type":976,"tag":26,"props":1120,"children":1121},{},[1122,1124,1129,1131,1137],{"type":129,"value":1123},"Настройте ",{"type":976,"tag":64,"props":1125,"children":1127},{"className":1126},[],[1128],{"type":129,"value":416},{"type":129,"value":1130}," (рекомендуется 10-30 для серверов), очистите кэш страниц ",{"type":976,"tag":64,"props":1132,"children":1134},{"className":1133},[],[1135],{"type":129,"value":1136},"sync && echo 3 > /proc/sys/vm/drop_caches",{"type":129,"value":1138}," (с осторожностью на production-системах).",[1140,2206,3510],{"id":1141,"title":1142,"appliesTo":1143,"author":12,"body":1146,"canonical":907,"code":2159,"createdAt":2160,"description":2161,"difficulty":911,"draft":912,"estimatedTime":2162,"extension":914,"faq":2163,"howToSteps":2176,"howToTotalTime":938,"image":907,"keywords":2188,"locale":948,"meta":2192,"navigation":463,"path":953,"platform":951,"related":2193,"section":956,"seo":2197,"severity":958,"stem":2198,"summary":2199,"tags":2200,"twitterCreator":907,"twitterSite":907,"type":968,"updatedAt":2160,"__hash__":2205},"content_ru/errors/linux/linux-out-of-memory-killer.md","OOM Killer в Linux: что это и как с ним бороться",[7,8,1144,1145],"CentOS 7/8 Stream","RHEL 8/9",{"type":14,"value":1147,"toc":2134},[1148,1152,1157,1168,1172,1233,1237,1241,1244,1278,1281,1319,1323,1326,1438,1442,1446,1561,1565,1570,1596,1600,1603,1622,1628,1632,1662,1666,1669,1772,1776,1875,1877,1881,1889,1898,1905,1908,1945,1952,1960,1963,1986,1990,2094,2096,2099,2128,2131],[21,1149,1151],{"id":1150},"что-такое-oom-killer-в-linux","Что такое OOM Killer в Linux?",[26,1153,1154,1156],{},[30,1155,32],{}," (Out-Of-Memory Killer) — это механизм ядра Linux, который активируется, когда система исчерпала всю доступную оперативную память (RAM) и swap-пространство, и не может выделить память для нового запроса. Его задача — принудительно завершить один или несколько процессов, чтобы освободить память и предотвратить полный крах системы.",[26,1158,1159,1160,1163,1164,1167],{},"Механизм работает на основе ",[30,1161,1162],{},"алгоритма выбора жертвы",", который оценивает каждый процесс по баллам (",[64,1165,1166],{},"oom_score","). Процесс с наивысшим баллом считается наименее важным и выбирается для завершения.",[21,1169,1171],{"id":1170},"как-работает-oom-killer","Как работает OOM Killer?",[590,1173,1174,1180,1214,1224],{},[45,1175,1176,1179],{},[30,1177,1178],{},"Критическая нехватка памяти",": Ядро определяет, что свободной памяти (включая swap) недостаточно для удовлетворения запроса.",[45,1181,1182,1185,1186,1188,1189],{},[30,1183,1184],{},"Вычисление баллов",": Для каждого процесса рассчитывается ",[64,1187,1166],{}," на основе:\n",[42,1190,1191,1194,1197,1200,1207],{},[45,1192,1193],{},"Объёма используемой памяти (RSS).",[45,1195,1196],{},"Приоритета процесса (nice value).",[45,1198,1199],{},"Времени работы (новые процессы могут иметь преимущество).",[45,1201,1202,1203,1206],{},"Является ли процесс дочерним для ",[64,1204,1205],{},"init"," (PID 1) — такие процессы менее подвержены убийству.",[45,1208,1209,1210,1213],{},"Настройки ",[64,1211,1212],{},"oom_score_adj"," (ручная корректировка).",[45,1215,1216,1219,1220,1223],{},[30,1217,1218],{},"Выбор и убийство",": Процесс с максимальным баллом получает сигнал ",[64,1221,1222],{},"SIGKILL"," и завершается.",[45,1225,1226,1229,1230,1232],{},[30,1227,1228],{},"Логирование",": Событие записывается в системный журнал ядра (",[64,1231,74],{},").",[21,1234,1236],{"id":1235},"как-диагностировать-срабатывание-oom-killer","Как диагностировать срабатывание OOM Killer?",[92,1238,1240],{"id":1239},"_1-проверка-системного-журнала","1. Проверка системного журнала",[26,1242,1243],{},"Ищите записи, содержащие ключевые слова:",[100,1245,1247],{"className":102,"code":1246,"language":104,"meta":105,"style":105},"dmesg | grep -i \"killed process\"\n# Пример вывода:\n# [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:123456kB, anon-rss:98765kB, file-rss:1234kB\n",[64,1248,1249,1263,1268,1273],{"__ignoreMap":105},[109,1250,1251,1253,1255,1257,1260],{"class":111,"line":112},[109,1252,74],{"class":115},[109,1254,173],{"class":172},[109,1256,280],{"class":115},[109,1258,1259],{"class":119}," -i",[109,1261,1262],{"class":165}," \"killed process\"\n",[109,1264,1265],{"class":111,"line":452},[109,1266,1267],{"class":448},"# Пример вывода:\n",[109,1269,1270],{"class":111,"line":460},[109,1271,1272],{"class":448},"# [12345.678] Out of memory: Kill process 1234 (some_process) score 500 or sacrifice child\n",[109,1274,1275],{"class":111,"line":467},[109,1276,1277],{"class":448},"# [12345.679] Killed process 1234 (some_process) total-vm:123456kB, anon-rss:98765kB, file-rss:1234kB\n",[26,1279,1280],{},"Также проверьте логи:",[100,1282,1284],{"className":102,"code":1283,"language":104,"meta":105,"style":105},"grep -i \"oom\" /var/log/syslog /var/log/messages\njournalctl -k | grep -i \"oom\"\n",[64,1285,1286,1302],{"__ignoreMap":105},[109,1287,1288,1291,1293,1296,1299],{"class":111,"line":112},[109,1289,1290],{"class":115},"grep",[109,1292,1259],{"class":119},[109,1294,1295],{"class":165}," \"oom\"",[109,1297,1298],{"class":165}," /var/log/syslog",[109,1300,1301],{"class":165}," /var/log/messages\n",[109,1303,1304,1307,1310,1312,1314,1316],{"class":111,"line":452},[109,1305,1306],{"class":115},"journalctl",[109,1308,1309],{"class":119}," -k",[109,1311,173],{"class":172},[109,1313,280],{"class":115},[109,1315,1259],{"class":119},[109,1317,1318],{"class":165}," \"oom\"\n",[92,1320,1322],{"id":1321},"_2-анализ-баллов-oom_score","2. Анализ баллов (oom_score)",[26,1324,1325],{},"Посмотреть текущий балл для всех процессов:",[100,1327,1329],{"className":102,"code":1328,"language":104,"meta":105,"style":105},"for pid in $(ps -e -o pid=); do\n  echo \"PID $pid ($(ps -p $pid -o comm=)): score $(cat /proc/$pid/oom_score 2>/dev/null || echo N/A)\"\ndone | sort -k3 -n -r | head -20\n",[64,1330,1331,1362,1413],{"__ignoreMap":105},[109,1332,1333,1336,1339,1342,1345,1347,1350,1353,1356,1359],{"class":111,"line":112},[109,1334,1335],{"class":172},"for",[109,1337,1338],{"class":242}," pid ",[109,1340,1341],{"class":172},"in",[109,1343,1344],{"class":242}," $(",[109,1346,162],{"class":115},[109,1348,1349],{"class":119}," -e",[109,1351,1352],{"class":119}," -o",[109,1354,1355],{"class":165}," pid=",[109,1357,1358],{"class":242},"); ",[109,1360,1361],{"class":172},"do\n",[109,1363,1364,1367,1370,1373,1376,1378,1381,1384,1386,1389,1391,1393,1395,1398,1401,1404,1407,1410],{"class":111,"line":452},[109,1365,1366],{"class":119},"  echo",[109,1368,1369],{"class":165}," \"PID ",[109,1371,1372],{"class":242},"$pid",[109,1374,1375],{"class":165}," ($(",[109,1377,162],{"class":115},[109,1379,1380],{"class":119}," -p",[109,1382,1383],{"class":242}," $pid",[109,1385,1352],{"class":119},[109,1387,1388],{"class":165}," comm=)): score $(",[109,1390,259],{"class":115},[109,1392,262],{"class":165},[109,1394,1372],{"class":242},[109,1396,1397],{"class":165},"/oom_score ",[109,1399,1400],{"class":172},"2>",[109,1402,1403],{"class":165},"/dev/null ",[109,1405,1406],{"class":172},"||",[109,1408,1409],{"class":119}," echo",[109,1411,1412],{"class":165}," N/A)\"\n",[109,1414,1415,1418,1420,1423,1426,1428,1431,1433,1435],{"class":111,"line":460},[109,1416,1417],{"class":172},"done",[109,1419,173],{"class":172},[109,1421,1422],{"class":115}," sort",[109,1424,1425],{"class":119}," -k3",[109,1427,179],{"class":119},[109,1429,1430],{"class":119}," -r",[109,1432,173],{"class":172},[109,1434,176],{"class":115},[109,1436,1437],{"class":119}," -20\n",[21,1439,1441],{"id":1440},"как-предотвратить-срабатывание-oom-killer","Как предотвратить срабатывание OOM Killer?",[92,1443,1445],{"id":1444},"_1-увеличение-доступных-ресурсов","1. Увеличение доступных ресурсов",[42,1447,1448,1454,1532],{},[45,1449,1450,1453],{},[30,1451,1452],{},"Добавление RAM"," — физическое расширение памяти.",[45,1455,1456,1459,1460],{},[30,1457,1458],{},"Настройка swap",":\n",[100,1461,1463],{"className":102,"code":1462,"language":104,"meta":105,"style":105},"sudo fallocate -l 8G /swapfile  # Создать файл подкачки 8 ГБ\nsudo chmod 600 /swapfile\nsudo mkswap /swapfile\nsudo swapon /swapfile\necho '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab\n",[64,1464,1465,1484,1495,1504,1513],{"__ignoreMap":105},[109,1466,1467,1470,1473,1475,1478,1481],{"class":111,"line":112},[109,1468,1469],{"class":115},"sudo",[109,1471,1472],{"class":165}," fallocate",[109,1474,780],{"class":119},[109,1476,1477],{"class":165}," 8G",[109,1479,1480],{"class":165}," /swapfile",[109,1482,1483],{"class":448},"  # Создать файл подкачки 8 ГБ\n",[109,1485,1486,1488,1491,1493],{"class":111,"line":452},[109,1487,1469],{"class":115},[109,1489,1490],{"class":165}," chmod",[109,1492,794],{"class":119},[109,1494,786],{"class":165},[109,1496,1497,1499,1502],{"class":111,"line":460},[109,1498,1469],{"class":115},[109,1500,1501],{"class":165}," mkswap",[109,1503,786],{"class":165},[109,1505,1506,1508,1511],{"class":111,"line":467},[109,1507,1469],{"class":115},[109,1509,1510],{"class":165}," swapon",[109,1512,786],{"class":165},[109,1514,1515,1517,1519,1521,1524,1527,1530],{"class":111,"line":473},[109,1516,499],{"class":119},[109,1518,825],{"class":165},[109,1520,173],{"class":172},[109,1522,1523],{"class":115}," sudo",[109,1525,1526],{"class":165}," tee",[109,1528,1529],{"class":119}," -a",[109,1531,830],{"class":165},[45,1533,1534,1535,1537,1538,1541,1542,1557,1558],{},"Настройка параметров ",[64,1536,416],{}," (в ",[64,1539,1540],{},"/etc/sysctl.conf","):\n",[100,1543,1545],{"className":102,"code":1544,"language":104,"meta":105,"style":105},"vm.swappiness=10  # Резерв RAM до начала использования swap (по умолчанию 60)\n",[64,1546,1547],{"__ignoreMap":105},[109,1548,1549,1551,1554],{"class":111,"line":112},[109,1550,416],{"class":115},[109,1552,1553],{"class":165},"=10",[109,1555,1556],{"class":448},"  # Резерв RAM до начала использования swap (по умолчанию 60)\n","\nПрименить: ",[64,1559,1560],{},"sudo sysctl -p",[92,1562,1564],{"id":1563},"_2-настройка-приоритетов-процессов","2. Настройка приоритетов процессов",[1566,1567,1569],"h4",{"id":1568},"временная-корректировка-через-proc","Временная корректировка через /proc",[100,1571,1573],{"className":102,"code":1572,"language":104,"meta":105,"style":105},"# Уменьшить шансы быть убитым для PID 1234 (значение от -1000 до 1000)\necho -500 | sudo tee /proc/1234/oom_score_adj\n",[64,1574,1575,1580],{"__ignoreMap":105},[109,1576,1577],{"class":111,"line":112},[109,1578,1579],{"class":448},"# Уменьшить шансы быть убитым для PID 1234 (значение от -1000 до 1000)\n",[109,1581,1582,1584,1587,1589,1591,1593],{"class":111,"line":452},[109,1583,499],{"class":119},[109,1585,1586],{"class":119}," -500",[109,1588,173],{"class":172},[109,1590,1523],{"class":115},[109,1592,1526],{"class":165},[109,1594,1595],{"class":165}," /proc/1234/oom_score_adj\n",[1566,1597,1599],{"id":1598},"постоянная-настройка-через-systemd","Постоянная настройка через systemd",[26,1601,1602],{},"Для сервиса, управляемого systemd:",[100,1604,1606],{"className":741,"code":1605,"language":743,"meta":105,"style":105},"# /etc/systemd/system/myservice.service.d/oom.conf\n[Service]\nOOMScoreAdjust=-900\n",[64,1607,1608,1613,1617],{"__ignoreMap":105},[109,1609,1610],{"class":111,"line":112},[109,1611,1612],{},"# /etc/systemd/system/myservice.service.d/oom.conf\n",[109,1614,1615],{"class":111,"line":452},[109,1616,750],{},[109,1618,1619],{"class":111,"line":460},[109,1620,1621],{},"OOMScoreAdjust=-900\n",[26,1623,1624,1625],{},"Перезагрузить: ",[64,1626,1627],{},"sudo systemctl daemon-reload && sudo systemctl restart myservice",[92,1629,1631],{"id":1630},"_3-контроль-потребления-памяти","3. Контроль потребления памяти",[42,1633,1634,1643,1657],{},[45,1635,1636,1642],{},[30,1637,1082,1638,1641],{},[64,1639,1640],{},"cgroups"," (v2)"," для ограничения памяти контейнеров/процессов.",[45,1644,1645,1648,1649,1652,1653,1656],{},[30,1646,1647],{},"Настройте лимиты в приложениях"," (например, ",[64,1650,1651],{},"JAVA_OPTS"," для Java, ",[64,1654,1655],{},"worker_processes"," для Nginx).",[45,1658,1659,145],{},[30,1660,1661],{},"Отключите ненужные сервисы",[92,1663,1665],{"id":1664},"_4-мониторинг-и-алерты","4. Мониторинг и алерты",[26,1667,1668],{},"Настройте оповещения при достижении порога (например, 80% использования RAM+swap):",[42,1670,1671,1688],{},[45,1672,1673,1674,1677,1678,1681,1682,1677,1685,145],{},"Инструменты: ",[64,1675,1676],{},"netdata",", ",[64,1679,1680],{},"prometheus"," + ",[64,1683,1684],{},"alertmanager",[64,1686,1687],{},"zabbix",[45,1689,1690,1691],{},"Простой скрипт-чек:\n",[100,1692,1694],{"className":102,"code":1693,"language":104,"meta":105,"style":105},"#!/bin/bash\nUSAGE=$(free | awk '/Mem:/ {printf(\"%.0f\"), $3/$2 * 100}')\nif [ $USAGE -gt 85 ]; then\n  echo \"Внимание: использование памяти ${USAGE}%\" | wall\n  # Дополнительные действия: отправка email, перезапуск сервиса\nfi\n",[64,1695,1696,1701,1725,1745,1762,1767],{"__ignoreMap":105},[109,1697,1698],{"class":111,"line":112},[109,1699,1700],{"class":448},"#!/bin/bash\n",[109,1702,1703,1706,1709,1712,1714,1716,1719,1722],{"class":111,"line":452},[109,1704,1705],{"class":242},"USAGE",[109,1707,1708],{"class":172},"=",[109,1710,1711],{"class":242},"$(",[109,1713,116],{"class":115},[109,1715,173],{"class":172},[109,1717,1718],{"class":115}," awk",[109,1720,1721],{"class":165}," '/Mem:/ {printf(\"%.0f\"), $3/$2 * 100}'",[109,1723,1724],{"class":242},")\n",[109,1726,1727,1730,1733,1736,1739,1742],{"class":111,"line":460},[109,1728,1729],{"class":172},"if",[109,1731,1732],{"class":242}," [ $USAGE ",[109,1734,1735],{"class":172},"-gt",[109,1737,1738],{"class":119}," 85",[109,1740,1741],{"class":242}," ]; ",[109,1743,1744],{"class":172},"then\n",[109,1746,1747,1749,1752,1754,1757,1759],{"class":111,"line":467},[109,1748,1366],{"class":119},[109,1750,1751],{"class":165}," \"Внимание: использование памяти ${",[109,1753,1705],{"class":242},[109,1755,1756],{"class":165},"}%\"",[109,1758,173],{"class":172},[109,1760,1761],{"class":115}," wall\n",[109,1763,1764],{"class":111,"line":473},[109,1765,1766],{"class":448},"  # Дополнительные действия: отправка email, перезапуск сервиса\n",[109,1768,1769],{"class":111,"line":485},[109,1770,1771],{"class":172},"fi\n",[92,1773,1775],{"id":1774},"_5-настройка-поведения-ядра-экспертно","5. Настройка поведения ядра (экспертно)",[42,1777,1778,1847],{},[45,1779,1780,1459,1785,1809],{},[30,1781,1782],{},[64,1783,1784],{},"vm.overcommit_memory",[42,1786,1787,1793,1799],{},[45,1788,1789,1792],{},[64,1790,1791],{},"0"," (по умолчанию) — heuristic overcommit.",[45,1794,1795,1798],{},[64,1796,1797],{},"1"," — всегда разрешать overcommit (риск OOM).",[45,1800,1801,1804,1805,1808],{},[64,1802,1803],{},"2"," — не разрешать overcommit, если не хватает ",[64,1806,1807],{},"vm.overcommit_ratio"," (рекомендуется для критичных систем).",[100,1810,1812],{"className":102,"code":1811,"language":104,"meta":105,"style":105},"sudo sysctl -w vm.overcommit_memory=2\nsudo sysctl -w vm.overcommit_ratio=50  # Разрешить overcommit только на 50% RAM+swap\n",[64,1813,1814,1830],{"__ignoreMap":105},[109,1815,1816,1818,1821,1824,1827],{"class":111,"line":112},[109,1817,1469],{"class":115},[109,1819,1820],{"class":165}," sysctl",[109,1822,1823],{"class":119}," -w",[109,1825,1826],{"class":165}," vm.overcommit_memory=",[109,1828,1829],{"class":119},"2\n",[109,1831,1832,1834,1836,1838,1841,1844],{"class":111,"line":452},[109,1833,1469],{"class":115},[109,1835,1820],{"class":165},[109,1837,1823],{"class":119},[109,1839,1840],{"class":165}," vm.overcommit_ratio=",[109,1842,1843],{"class":119},"50",[109,1845,1846],{"class":448},"  # Разрешить overcommit только на 50% RAM+swap\n",[45,1848,1849,1459,1854],{},[30,1850,1851],{},[64,1852,1853],{},"vm.panic_on_oom",[42,1855,1856,1861,1866],{},[45,1857,1858,1860],{},[64,1859,1791],{}," (по умолчанию) — запускать OOM Killer.",[45,1862,1863,1865],{},[64,1864,1797],{}," — паника ядра при OOM (требует перезагрузки).",[45,1867,1868,1870,1871,1874],{},[64,1869,1803],{}," — паника ядра всегда, но только если ",[64,1872,1873],{},"panic_on_oom=2"," (редко используется).",[380,1876],{},[21,1878,1880],{"id":1879},"продвинутые-инструменты","Продвинутые инструменты",[92,1882,1884,1885,1888],{"id":1883},"_1-systemd-oomd-современная-альтернатива","1. ",[64,1886,1887],{},"systemd-oomd"," (современная альтернатива)",[26,1890,1891,1892,1894,1895,145],{},"В современных дистрибутивах (Ubuntu 22.04+, Fedora) может работать демон ",[64,1893,1887],{},", который более интеллектуально управляет памятью и может завершать процессы до срабатывания ядерного OOM Killer. Настройка через ",[64,1896,1897],{},"/etc/systemd/oomd.conf",[92,1899,1901,1902],{"id":1900},"_2-earlyoom","2. ",[64,1903,1904],{},"earlyoom",[26,1906,1907],{},"Простой демон, который мониторит память и RAM+swap, и убивает процессы при достижении порогов (например, 90% и 80% соответственно). Установка:",[100,1909,1911],{"className":102,"code":1910,"language":104,"meta":105,"style":105},"sudo apt install earlyoom  # Debian/Ubuntu\nsudo systemctl enable --now earlyoom\n",[64,1912,1913,1929],{"__ignoreMap":105},[109,1914,1915,1917,1920,1923,1926],{"class":111,"line":112},[109,1916,1469],{"class":115},[109,1918,1919],{"class":165}," apt",[109,1921,1922],{"class":165}," install",[109,1924,1925],{"class":165}," earlyoom",[109,1927,1928],{"class":448},"  # Debian/Ubuntu\n",[109,1930,1931,1933,1936,1939,1942],{"class":111,"line":452},[109,1932,1469],{"class":115},[109,1934,1935],{"class":165}," systemctl",[109,1937,1938],{"class":165}," enable",[109,1940,1941],{"class":119}," --now",[109,1943,1944],{"class":165}," earlyoom\n",[26,1946,1947,1948,1951],{},"Настройка через аргументы в ",[64,1949,1950],{},"/etc/default/earlyoom"," или systemd-юнит.",[92,1953,1955,1956,1959],{"id":1954},"_3-ps_mem-анализ-использования-памяти","3. ",[64,1957,1958],{},"ps_mem"," — анализ использования памяти",[26,1961,1962],{},"Установите утилиту для точного учёта памяти процессами:",[100,1964,1966],{"className":102,"code":1965,"language":104,"meta":105,"style":105},"sudo apt install ps_mem  # Debian/Ubuntu\nps_mem\n",[64,1967,1968,1981],{"__ignoreMap":105},[109,1969,1970,1972,1974,1976,1979],{"class":111,"line":112},[109,1971,1469],{"class":115},[109,1973,1919],{"class":165},[109,1975,1922],{"class":165},[109,1977,1978],{"class":165}," ps_mem",[109,1980,1928],{"class":448},[109,1982,1983],{"class":111,"line":452},[109,1984,1985],{"class":115},"ps_mem\n",[21,1987,1989],{"id":1988},"частые-ошибки-и-их-решения","Частые ошибки и их решения",[1991,1992,1993,2009],"table",{},[1994,1995,1996],"thead",{},[1997,1998,1999,2003,2006],"tr",{},[2000,2001,2002],"th",{},"Симптом",[2000,2004,2005],{},"Возможная причина",[2000,2007,2008],{},"Решение",[2010,2011,2012,2038,2062,2073],"tbody",{},[1997,2013,2014,2024,2027],{},[2015,2016,2017,2018,71,2021],"td",{},"OOM Killer убивает ",[64,2019,2020],{},"mysqld",[64,2022,2023],{},"postgres",[2015,2025,2026],{},"Слишком большой буферный пул, нехватка RAM",[2015,2028,2029,2030,2033,2034,2037],{},"Уменьшить ",[64,2031,2032],{},"innodb_buffer_pool_size"," (MySQL) или ",[64,2035,2036],{},"shared_buffers"," (PostgreSQL), добавить RAM.",[1997,2039,2040,2043,2049],{},[2015,2041,2042],{},"OOM Killer срабатывает при компиляции",[2015,2044,2045,2048],{},[64,2046,2047],{},"make -j"," использует много памяти",[2015,2050,2051,2052,2055,2056,71,2059,145],{},"Ограничить количество параллельных задач: ",[64,2053,2054],{},"make -j$(nproc --all)"," → ",[64,2057,2058],{},"make -j2",[64,2060,2061],{},"make -j$(($(nproc --all)/2))",[1997,2063,2064,2067,2070],{},[2015,2065,2066],{},"Нет swap, система \"зависает\" перед OOM",[2015,2068,2069],{},"Ядро не может выделить память и блокирует",[2015,2071,2072],{},"Добавить swap-файл/раздел.",[1997,2074,2075,2081,2087],{},[2015,2076,2077,2078,2080],{},"Неправильный ",[64,2079,1166],{}," у процесса",[2015,2082,2083,2084,2086],{},"Ручная настройка ",[64,2085,1212],{}," или cgroups",[2015,2088,2089,2090,2093],{},"Проверить значения: ",[64,2091,2092],{},"cat /proc/\u003CPID>/oom_score_adj",". Установить адекватные значения.",[21,2095,864],{"id":863},[26,2097,2098],{},"OOM Killer — это последний рубеж защиты системы от полного истощения памяти. Хотя его срабатывание может казаться катастрофой, оно предотвращает тотальный крах. Ключевые шаги для работы с ним:",[590,2100,2101,2107,2113,2122],{},[45,2102,2103,2106],{},[30,2104,2105],{},"Мониторинг",": отслеживайте использование памяти.",[45,2108,2109,2112],{},[30,2110,2111],{},"Профилактика",": настройте swap, ограничьте потребление приложений.",[45,2114,2115,2118,2119,2121],{},[30,2116,2117],{},"Настройка",": используйте ",[64,2120,1212],{}," для защиты критичных процессов.",[45,2123,2124,2127],{},[30,2125,2126],{},"Анализ",": всегда изучайте логи после срабатывания.",[26,2129,2130],{},"Помните: лучшая защита — это иметь достаточное количество RAM + swap и контролировать поведение приложений.",[878,2132,2133],{},"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 pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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":105,"searchDepth":452,"depth":452,"links":2135},[2136,2137,2138,2142,2149,2157,2158],{"id":1150,"depth":452,"text":1151},{"id":1170,"depth":452,"text":1171},{"id":1235,"depth":452,"text":1236,"children":2139},[2140,2141],{"id":1239,"depth":460,"text":1240},{"id":1321,"depth":460,"text":1322},{"id":1440,"depth":452,"text":1441,"children":2143},[2144,2145,2146,2147,2148],{"id":1444,"depth":460,"text":1445},{"id":1563,"depth":460,"text":1564},{"id":1630,"depth":460,"text":1631},{"id":1664,"depth":460,"text":1665},{"id":1774,"depth":460,"text":1775},{"id":1879,"depth":452,"text":1880,"children":2150},[2151,2153,2155],{"id":1883,"depth":460,"text":2152},"1. systemd-oomd (современная альтернатива)",{"id":1900,"depth":460,"text":2154},"2. earlyoom",{"id":1954,"depth":460,"text":2156},"3. ps_mem — анализ использования памяти",{"id":1988,"depth":452,"text":1989},{"id":863,"depth":452,"text":864},"OOM-KILL","2026-02-14 09:36:43","Подробное руководство по работе механизма OOM Killer в Linux: причины срабатывания, диагностика, настройка и практические способы предотвращения завершения процессов из-за нехватки памяти.","15-45 мин",[2164,2167,2170,2173],{"question":2165,"answer":2166},"Как понять, что процесс был убит OOM Killer?","В системном журнале (`dmesg` или `/var/log/kern.log`) будут строки, содержащие 'Out of memory: Kill process' и 'oom-kill:'. Также в выводе команды `dmesg | grep -i kill` можно найти информацию о PID, имени процесса и балле (score).",{"question":2168,"answer":2169},"Можно ли полностью отключить OOM Killer?","Теоретически можно, установив `vm.panic_on_oom=2` (система упадёт в панику) или `vm.oom_kill_allocating_task=0` (старый подход), но это крайне не рекомендуется. Лучше настроить параметры или увеличить ресурсы. Отключение может привести к полной неработоспособности системы.",{"question":2171,"answer":2172},"Что такое `oom_score` и как его изменить?","`oom_score` — это балл, который ядро назначает каждому процессу. Чем он выше, тем выше вероятность убийства. Его можно вручную скорректировать через `/proc/\u003CPID>/oom_score_adj` (значения от -1000 до 1000). Отрицательные значения уменьшают шансы быть убитым.",{"question":2174,"answer":2175},"Почему OOM Killer убивает важный процесс, а не фоновый?","Алгоритм учитывает множество факторов: использование памяти (RSS), время работы, приоритет (nice), является ли процесс дочерним для init (PID 1) и другие. Иногда фоновый процесс может иметь более высокий балл из-за особенностей работы приложения.",[2177,2180,2183,2185],{"name":2178,"text":2179},"Диагностика: найти убитые процессы","Проверьте системный журнал на наличие записей об OOM:\n```bash\ndmesg | grep -i 'killed process'\n# или\ngrep -i 'oom' /var/log/syslog /var/log/messages\n```\n\nТакже можно использовать утилиту `oomd` (если установлена) или проверить историю через `journalctl`.",{"name":2181,"text":2182},"Настройка: изменить приоритет процесса","Чтобы снизить вероятность убийства важного процесса, настройте `oom_score_adj`. Например, для PID 1234 установить значение -900:\n```bash\necho -900 > /proc/1234/oom_score_adj\n```\n\n**Важно:** Изменение через `/proc` временное. Для постоянной настройки используйте systemd-юнит (см. шаг 3) или скрипт.",{"name":1599,"text":2184},"Создайте или отредактируйте файл юнита для сервиса (например, `/etc/systemd/system/myapp.service.d/oom.conf`):\n```ini\n[Service]\nOOMScoreAdjust=-900\n```\n\nЗатем перезагрузите демона и сервис:\n```bash\nsystemctl daemon-reload\nsystemctl restart myapp\n```",{"name":2186,"text":2187},"Профилактика: мониторинг и увеличение памяти","1. Установите алерты на использование памяти (например, через `netdata`, `prometheus`).\n2. Рассмотрите добавление swap-пространства, если его нет:\n```bash\nsudo fallocate -l 4G /swapfile\nsudo chmod 600 /swapfile\nsudo mkswap /swapfile\nsudo swapon /swapfile\n```\n3. Настройте `vm.swappiness` (например, 10-30) в `/etc/sysctl.conf`.",[32,2189,2190,2191,1166,1784],"Out of Memory","Linux память","killed process",{},[2194,2195,2196],"/errors/linux/linux-dmesg-errors","/guides/linux/monitor-memory-usage","/guides/linux/swap-file-configuration",{"title":1142,"description":2161},"errors/linux/linux-out-of-memory-killer","OOM Killer — механизм ядра Linux, который при критическом нехватке оперативной памяти принудительно завершает процессы. Статья объясняет, как определить, какой процесс был убит, настроить приоритеты и предотвратить срабатывание.",[2201,2202,2203,2204],"Ошибки","Память","Ядро Linux","Администрирование","ye8hXBigGeee8TxqAq4Tg_Z9zj8wstmXYbI9aYs_MXY",{"id":2207,"title":2208,"appliesTo":2209,"author":12,"body":2214,"canonical":907,"code":907,"createdAt":3449,"description":3450,"difficulty":911,"draft":912,"estimatedTime":3451,"extension":914,"faq":3452,"howToSteps":3465,"howToTotalTime":3484,"image":907,"keywords":3485,"locale":948,"meta":3496,"navigation":463,"path":954,"platform":951,"related":3497,"section":3500,"seo":3501,"severity":907,"stem":3502,"summary":3503,"tags":3504,"twitterCreator":907,"twitterSite":907,"type":3508,"updatedAt":3449,"__hash__":3509},"content_ru/guides/linux/linux-performance-monitoring.md","Мониторинг производительности Linux: полное руководство по инструментам",[2210,2211,2212,2213],"Ubuntu 22.04","CentOS 8","Debian 11","Fedora 36+",{"type":14,"value":2215,"toc":3412},[2216,2220,2223,2226,2230,2238,2243,2251,2254,2292,2309,2324,2330,2335,2347,2349,2355,2358,2390,2397,2404,2417,2424,2453,2465,2475,2478,2489,2500,2503,2535,2541,2551,2559,2571,2574,2600,2603,2619,2622,2631,2635,2642,2655,2658,2704,2711,2717,2724,2734,2743,2746,2784,2796,2803,2808,2838,2844,2848,2851,2874,2876,2880,2884,2931,2935,2973,2977,3021,3025,3065,3069,3077,3109,3124,3127,3150,3153,3262,3266,3270,3313,3316,3347,3351,3386,3388,3406,3409],[21,2217,2219],{"id":2218},"введение-в-мониторинг-производительности-linux","Введение в мониторинг производительности Linux",[26,2221,2222],{},"Мониторинг производительности Linux — это не просто проверка загрузки CPU. Это комплексный анализ системы: процессор, память, диски, сеть, ввод-вывод. Понимание метрик позволяет предотвратить простои, оптимизировать затраты на ресурсы и быстро реагировать на аномалии.",[26,2224,2225],{},"В этом руководстве вы освоите как базовые утилиты, так и расширенные инструменты. Мы сосредоточимся на практических сценариях: как найти «горячий» процесс, почему диск медленный, почему сеть перегружена. Все команды работают на большинстве дистрибутивов (Ubuntu, CentOS, Debian, Fedora).",[21,2227,2229],{"id":2228},"базовые-утилиты-для-ежедневного-использования","Базовые утилиты для ежедневного использования",[92,2231,2233,870,2235,2237],{"id":2232},"top-и-htop-интерактивный-мониторинг-процессов",[64,2234,327],{},[64,2236,319],{},": интерактивный мониторинг процессов",[26,2239,2240,2242],{},[64,2241,327],{}," — ваш первый инструмент при анализе. Запустите его и изучите экран:",[100,2244,2245],{"className":102,"code":307,"language":104,"meta":105,"style":105},[64,2246,2247],{"__ignoreMap":105},[109,2248,2249],{"class":111,"line":112},[109,2250,307],{"class":115},[26,2252,2253],{},"Ключевые строки:",[42,2255,2256,2274,2286],{},[45,2257,2258,2261,2262,2265,2266,2269,2270,2273],{},[64,2259,2260],{},"%Cpu(s)",": разбивка на ",[64,2263,2264],{},"us"," (пользовательские процессы), ",[64,2267,2268],{},"sy"," (системные), ",[64,2271,2272],{},"id"," (простой).",[45,2275,2276,2279,2280,1677,2282,1677,2284,145],{},[64,2277,2278],{},"KiB Mem",": использование RAM: ",[64,2281,1006],{},[64,2283,116],{},[64,2285,140],{},[45,2287,2288,2291],{},[64,2289,2290],{},"KiB Swap",": активность подкачки.",[26,2293,2294,2295,2298,2299,2301,2302,2305,2306,145],{},"Сортировка: нажмите ",[64,2296,2297],{},"P"," (по CPU), ",[64,2300,323],{}," (по памяти). Чтобы увидеть все процессы, включая потоки, добавьте ",[64,2303,2304],{},"-H"," при запуске: ",[64,2307,2308],{},"top -H",[26,2310,2311,2314,2315,2317,2318,71,2321,145],{},[30,2312,2313],{},"Совет",": ",[64,2316,319],{}," — улучшенная версия с цветами, деревом процессов и удобным управлением. Установите через ",[64,2319,2320],{},"sudo apt install htop",[64,2322,2323],{},"sudo yum install htop",[92,2325,2327,2329],{"id":2326},"vmstat-виртуальная-статистика",[64,2328,348],{},": виртуальная статистика",[26,2331,2332,2334],{},[64,2333,348],{}," даёт сводку по системе каждые N секунд. Идеален для быстрой проверки «общего здоровья».",[100,2336,2338],{"className":102,"code":2337,"language":104,"meta":105,"style":105},"vmstat 2\n",[64,2339,2340],{"__ignoreMap":105},[109,2341,2342,2344],{"class":111,"line":112},[109,2343,348],{"class":115},[109,2345,2346],{"class":119}," 2\n",[26,2348,123],{},[100,2350,2353],{"className":2351,"code":2352,"language":129},[127],"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 2  0      0 123456  78900 456789    0    0   100   200  123  456 30 10 55  5  0\n",[64,2354,2352],{"__ignoreMap":105},[26,2356,2357],{},"Расшифровка:",[42,2359,2360,2366,2374,2381],{},[45,2361,2362,2365],{},[64,2363,2364],{},"r",": процессы в очереди на выполнение. Значение > количества ядер — нехватка CPU.",[45,2367,2368,2370,2371,2373],{},[64,2369,357],{},"/",[64,2372,361],{},": страницы, перемещаемые в/из подкачки. Ненулевые значения указывают на недостаток RAM.",[45,2375,2376,2370,2378,2380],{},[64,2377,2264],{},[64,2379,2268],{},": высокие значения (>80%) говорят о нагрузке на CPU.",[45,2382,2383,2386,2387,2389],{},[64,2384,2385],{},"wa",": время, затраченное на ожидание ввода-вывода. Высокий ",[64,2388,2385],{}," (например, >20%) — проблема с дисками.",[92,2391,2393,2396],{"id":2392},"iostat-детали-по-дискам-и-cpu",[64,2394,2395],{},"iostat",": детали по дискам и CPU",[26,2398,2399,2400,2403],{},"Установите пакет ",[64,2401,2402],{},"sysstat",", если ещё не сделали. Команда:",[100,2405,2407],{"className":102,"code":2406,"language":104,"meta":105,"style":105},"iostat -x 2\n",[64,2408,2409],{"__ignoreMap":105},[109,2410,2411,2413,2415],{"class":111,"line":112},[109,2412,2395],{"class":115},[109,2414,233],{"class":119},[109,2416,2346],{"class":119},[26,2418,2419,2420,2423],{},"Ключевые метрики для дисков (",[64,2421,2422],{},"Device","):",[42,2425,2426,2432,2438],{},[45,2427,2428,2431],{},[64,2429,2430],{},"%util",": процент времени, когда диск занят операциями. Близко к 100% — диск перегружен.",[45,2433,2434,2437],{},[64,2435,2436],{},"await",": среднее время (в мс) завершения операции. Высокие значения (например, >50 мс для SSD) — проблема.",[45,2439,2440,2443,2444,2446,2447,2449,2450,2452],{},[64,2441,2442],{},"svctm",": среднее время обслуживания операции. Сравнивайте с ",[64,2445,2436],{},". Если ",[64,2448,2436],{}," >> ",[64,2451,2442],{},", очередь большая.",[26,2454,2455,2456,1677,2459,1677,2462,145],{},"Для CPU: ",[64,2457,2458],{},"%user",[64,2460,2461],{},"%system",[64,2463,2464],{},"%idle",[92,2466,2468,870,2471,2474],{"id":2467},"df-и-du-место-на-дисках",[64,2469,2470],{},"df",[64,2472,2473],{},"du",": место на дисках",[26,2476,2477],{},"Быстрая проверка свободного места:",[100,2479,2481],{"className":102,"code":2480,"language":104,"meta":105,"style":105},"df -h\n",[64,2482,2483],{"__ignoreMap":105},[109,2484,2485,2487],{"class":111,"line":112},[109,2486,2470],{"class":115},[109,2488,120],{"class":119},[26,2490,2491,2492,2495,2496,2499],{},"human-readable (",[64,2493,2494],{},"-h",") вывод в гигабайтах. Обращайте внимание на ",[64,2497,2498],{},"%Use",". Если >90% — очистите логи или увеличьте том.",[26,2501,2502],{},"Чтобы найти «пожирателей» места в конкретной папке:",[100,2504,2506],{"className":102,"code":2505,"language":104,"meta":105,"style":105},"du -sh /var/* | sort -rh | head -10\n",[64,2507,2508],{"__ignoreMap":105},[109,2509,2510,2512,2515,2518,2521,2523,2525,2528,2530,2532],{"class":111,"line":112},[109,2511,2473],{"class":115},[109,2513,2514],{"class":119}," -sh",[109,2516,2517],{"class":165}," /var/",[109,2519,2520],{"class":119},"*",[109,2522,173],{"class":172},[109,2524,1422],{"class":115},[109,2526,2527],{"class":119}," -rh",[109,2529,173],{"class":172},[109,2531,176],{"class":115},[109,2533,2534],{"class":119}," -10\n",[26,2536,2537,2538,145],{},"Это покажет 10 самых больших подпапок в ",[64,2539,2540],{},"/var",[92,2542,2544,870,2547,2550],{"id":2543},"ss-и-netstat-сетевая-активность",[64,2545,2546],{},"ss",[64,2548,2549],{},"netstat",": сетевая активность",[26,2552,2553,2555,2556,2558],{},[64,2554,2546],{}," — современная замена ",[64,2557,2549],{},". Быстрый просмотр соединений:",[100,2560,2562],{"className":102,"code":2561,"language":104,"meta":105,"style":105},"ss -tuln\n",[64,2563,2564],{"__ignoreMap":105},[109,2565,2566,2568],{"class":111,"line":112},[109,2567,2546],{"class":115},[109,2569,2570],{"class":119}," -tuln\n",[26,2572,2573],{},"Флаги:",[42,2575,2576,2582,2588,2594],{},[45,2577,2578,2581],{},[64,2579,2580],{},"-t",": TCP,",[45,2583,2584,2587],{},[64,2585,2586],{},"-u",": UDP,",[45,2589,2590,2593],{},[64,2591,2592],{},"-l",": listening,",[45,2595,2596,2599],{},[64,2597,2598],{},"-n",": numeric (без разрешения имён).",[26,2601,2602],{},"Для статистики по интерфейсам:",[100,2604,2606],{"className":102,"code":2605,"language":104,"meta":105,"style":105},"ip -s link\n",[64,2607,2608],{"__ignoreMap":105},[109,2609,2610,2613,2616],{"class":111,"line":112},[109,2611,2612],{"class":115},"ip",[109,2614,2615],{"class":119}," -s",[109,2617,2618],{"class":165}," link\n",[26,2620,2621],{},"Или для деталей по сетевым пакетам:",[100,2623,2625],{"className":102,"code":2624,"language":104,"meta":105,"style":105},"nstat\n",[64,2626,2627],{"__ignoreMap":105},[109,2628,2629],{"class":111,"line":112},[109,2630,2624],{"class":115},[21,2632,2634],{"id":2633},"расширенные-инструменты-для-глубокого-анализа","Расширенные инструменты для глубокого анализа",[92,2636,2638,2641],{"id":2637},"sar-сбор-исторических-данных",[64,2639,2640],{},"sar",": сбор исторических данных",[26,2643,2644,2646,2647,2650,2651,2654],{},[64,2645,2640],{}," (System Activity Reporter) записывает метрики каждые N минут. Данные хранятся в ",[64,2648,2649],{},"/var/log/sysstat/"," (имя файла зависит от дистрибутива, например, ",[64,2652,2653],{},"sa14"," для 14-го дня).",[26,2656,2657],{},"Просмотр данных за сегодня:",[100,2659,2661],{"className":102,"code":2660,"language":104,"meta":105,"style":105},"sar -u  # CPU\nsar -r  # Memory\nsar -b  # I/O\nsar -n DEV  # Network interfaces\n",[64,2662,2663,2673,2682,2692],{"__ignoreMap":105},[109,2664,2665,2667,2670],{"class":111,"line":112},[109,2666,2640],{"class":115},[109,2668,2669],{"class":119}," -u",[109,2671,2672],{"class":448},"  # CPU\n",[109,2674,2675,2677,2679],{"class":111,"line":452},[109,2676,2640],{"class":115},[109,2678,1430],{"class":119},[109,2680,2681],{"class":448},"  # Memory\n",[109,2683,2684,2686,2689],{"class":111,"line":460},[109,2685,2640],{"class":115},[109,2687,2688],{"class":119}," -b",[109,2690,2691],{"class":448},"  # I/O\n",[109,2693,2694,2696,2698,2701],{"class":111,"line":467},[109,2695,2640],{"class":115},[109,2697,179],{"class":119},[109,2699,2700],{"class":165}," DEV",[109,2702,2703],{"class":448},"  # Network interfaces\n",[26,2705,2706,2707,2710],{},"Пример: ",[64,2708,2709],{},"sar -u 2 5"," — CPU каждые 2 секунды, 5 раз.",[26,2712,2713,2716],{},[30,2714,2715],{},"Преимущество",": можно увидеть, что происходило в момент проблемы, даже если вы не сидели у терминала.",[92,2718,2720,2723],{"id":2719},"nmon-интерактивный-мониторинг-всех-ресурсов",[64,2721,2722],{},"nmon",": интерактивный мониторинг всех ресурсов",[26,2725,2726,2727,2729,2730,2733],{},"Установите ",[64,2728,2722],{}," (",[64,2731,2732],{},"sudo apt install nmon","). Запустите:",[100,2735,2737],{"className":102,"code":2736,"language":104,"meta":105,"style":105},"nmon\n",[64,2738,2739],{"__ignoreMap":105},[109,2740,2741],{"class":111,"line":112},[109,2742,2736],{"class":115},[26,2744,2745],{},"Клавиши:",[42,2747,2748,2754,2760,2766,2772,2778],{},[45,2749,2750,2753],{},[64,2751,2752],{},"c"," — CPU,",[45,2755,2756,2759],{},[64,2757,2758],{},"m"," — memory,",[45,2761,2762,2765],{},[64,2763,2764],{},"d"," — disks,",[45,2767,2768,2771],{},[64,2769,2770],{},"n"," — network,",[45,2773,2774,2777],{},[64,2775,2776],{},"t"," — top processes,",[45,2779,2780,2783],{},[64,2781,2782],{},"q"," — выход.",[26,2785,2786,2788,2789,2792,2793,145],{},[64,2787,2722],{}," полезен для быстрого осмотра и записи сессии (файл ",[64,2790,2791],{},".nmon","), который потом можно анализировать в Excel или через ",[64,2794,2795],{},"nmon2csv",[92,2797,2799,2802],{"id":2798},"glances-кросс-платформенный-мониторинг",[64,2800,2801],{},"glances",": кросс-платформенный мониторинг",[26,2804,2805,2807],{},[64,2806,2801],{}," — Python-утилита, которая объединяет много метрик в одном интерактивном интерфейсе. Установка:",[100,2809,2811],{"className":102,"code":2810,"language":104,"meta":105,"style":105},"pip install glances\n# или для системы:\nsudo apt install glances\n",[64,2812,2813,2823,2828],{"__ignoreMap":105},[109,2814,2815,2818,2820],{"class":111,"line":112},[109,2816,2817],{"class":115},"pip",[109,2819,1922],{"class":165},[109,2821,2822],{"class":165}," glances\n",[109,2824,2825],{"class":111,"line":452},[109,2826,2827],{"class":448},"# или для системы:\n",[109,2829,2830,2832,2834,2836],{"class":111,"line":460},[109,2831,1469],{"class":115},[109,2833,1919],{"class":165},[109,2835,1922],{"class":165},[109,2837,2822],{"class":165},[26,2839,2840,2841,2843],{},"Запуск: ",[64,2842,2801],{},". Поддерживает цвета, алерты (пороги), экспорт в JSON, InfluxDB, Elasticsearch.",[21,2845,2847],{"id":2846},"графические-и-веб-решения","Графические и веб-решения",[26,2849,2850],{},"Для долгосрочного мониторинга и визуализации используйте связки:",[590,2852,2853,2859,2868],{},[45,2854,2855,2858],{},[30,2856,2857],{},"Prometheus + Grafana",": сбор метрик через экспортеры (node_exporter) и красивый дашборд.",[45,2860,2861,2864,2865,145],{},[30,2862,2863],{},"Netdata",": «из коробки» мониторинг с веб-интерфейсом на порту 19999. Установка: ",[64,2866,2867],{},"bash \u003C(curl -Ss https://my-netdata.io/kickstart.sh)",[45,2869,2870,2873],{},[30,2871,2872],{},"Zabbix/Nagios",": для enterprise-мониторинга с алертами.",[380,2875],{},[21,2877,2879],{"id":2878},"практические-сценарии","Практические сценарии",[92,2881,2883],{"id":2882},"сценарий-1-высокая-загрузка-cpu","Сценарий 1: Высокая загрузка CPU",[590,2885,2886,2893,2900,2913,2922],{},[45,2887,2888,2889,71,2891,145],{},"Запустите ",[64,2890,327],{},[64,2892,319],{},[45,2894,2895,2896,2899],{},"Сортируйте по ",[64,2897,2898],{},"%CPU",". Найдите процесс с максимальным потреблением.",[45,2901,2902,2903,1677,2906,1677,2909,2912],{},"Если это ",[64,2904,2905],{},"java",[64,2907,2908],{},"python",[64,2910,2911],{},"node"," — проверьте логи приложения.",[45,2914,2902,2915,71,2918,2921],{},[64,2916,2917],{},"kworker",[64,2919,2920],{},"migration"," — возможно, проблема в ядре или IRQ.",[45,2923,1082,2924,2927,2928,1232],{},[64,2925,2926],{},"perf top"," для профилирования (установите ",[64,2929,2930],{},"linux-tools",[92,2932,2934],{"id":2933},"сценарий-2-диск-полностью-занят","Сценарий 2: Диск полностью занят",[590,2936,2937,2948,2958,2967],{},[45,2938,2939,2942,2943,870,2945,2947],{},[64,2940,2941],{},"iostat -x 2"," — смотрите ",[64,2944,2430],{},[64,2946,2436],{}," по дискам.",[45,2949,2950,2953,2954,2957],{},[64,2951,2952],{},"iotop"," (установите через ",[64,2955,2956],{},"sudo apt install iotop",") — показывает, какой процесс пишет/читает.",[45,2959,2960,2961,2963,2964,2966],{},"Если ",[64,2962,2436],{}," высокий, а ",[64,2965,2430],{}," низкий — возможно, проблема в сети (NFS, iSCSI).",[45,2968,2969,2970,145],{},"Проверьте очередь диска: ",[64,2971,2972],{},"cat /proc/diskstats | grep \u003Cdevice>",[92,2974,2976],{"id":2975},"сценарий-3-нехватка-памяти","Сценарий 3: Нехватка памяти",[590,2978,2979,2989,3001,3007,3014],{},[45,2980,2981,2942,2983,2985,2986,145],{},[64,2982,993],{},[64,2984,144],{}," (доступно) и ",[64,2987,2988],{},"swap",[45,2990,2960,2991,2993,2994,2370,2996,67,2998,3000],{},[64,2992,2988],{}," активно используется (",[64,2995,357],{},[64,2997,361],{},[64,2999,348],{}," >0) — недостаток RAM.",[45,3002,3003,3006],{},[64,3004,3005],{},"ps aux --sort=-%mem | head -10"," — топ-10 по памяти.",[45,3008,3009,3010,3013],{},"Проверьте кэш: ",[64,3011,3012],{},"cat /proc/meminfo | grep -E \"Cached|Buffers\"",". Большой кэш — нормально, ОС использует свободную RAM.",[45,3015,3016,3017,3020],{},"Если процесс «съедает» память — ищите утечки (например, через ",[64,3018,3019],{},"valgrind"," для C/C++).",[92,3022,3024],{"id":3023},"сценарий-4-сетевая-перегрузка","Сценарий 4: Сетевая перегрузка",[590,3026,3027,3041,3050,3056],{},[45,3028,3029,3032,3033,3036,3037,3040],{},[64,3030,3031],{},"ip -s link"," — ошибки (",[64,3034,3035],{},"errs",") и дропы (",[64,3038,3039],{},"drop",") по интерфейсу.",[45,3042,3043,3046,3047,1232],{},[64,3044,3045],{},"ss -s"," — сводка по сокетам (например, много ",[64,3048,3049],{},"TIME-WAIT",[45,3051,3052,3055],{},[64,3053,3054],{},"nethogs"," (установите) — показывает трафик по процессам.",[45,3057,3058,3061,3062,3064],{},[64,3059,3060],{},"iftop"," — аналогично ",[64,3063,327],{},", но для сети.",[21,3066,3068],{"id":3067},"автоматизация-и-алертинг","Автоматизация и алертинг",[26,3070,3071,3072,870,3075,438],{},"Для регулярного сбора данных настройте ",[64,3073,3074],{},"cron",[64,3076,2640],{},[100,3078,3080],{"className":102,"code":3079,"language":104,"meta":105,"style":105},"# Включите сбор данных (если не запущен)\nsudo systemctl enable sysstat\nsudo systemctl start sysstat\n",[64,3081,3082,3087,3098],{"__ignoreMap":105},[109,3083,3084],{"class":111,"line":112},[109,3085,3086],{"class":448},"# Включите сбор данных (если не запущен)\n",[109,3088,3089,3091,3093,3095],{"class":111,"line":452},[109,3090,1469],{"class":115},[109,3092,1935],{"class":165},[109,3094,1938],{"class":165},[109,3096,3097],{"class":165}," sysstat\n",[109,3099,3100,3102,3104,3107],{"class":111,"line":460},[109,3101,1469],{"class":115},[109,3103,1935],{"class":165},[109,3105,3106],{"class":165}," start",[109,3108,3097],{"class":165},[26,3110,3111,3112,3115,3116,3119,3120,3123],{},"Файл ",[64,3113,3114],{},"/etc/default/sysstat"," (Debian/Ubuntu) или ",[64,3117,3118],{},"/etc/sysconfig/sysstat"," (RHEL/CentOS) содержит параметры сбора (например, ",[64,3121,3122],{},"SA1_OPTIONS=\"-S XALL\""," для всех метрик).",[26,3125,3126],{},"Для алертов используйте:",[42,3128,3129,3135,3143],{},[45,3130,3131,3134],{},[64,3132,3133],{},"monit"," — простой демон, который следит за процессами, дисками, CPU.",[45,3136,3137,2370,3140,3142],{},[64,3138,3139],{},"nagios",[64,3141,1687],{}," — сложные системы с веб-интерфейсом.",[45,3144,3145,3146,3149],{},"Скрипты на Bash/Python, которые проверяют метрики и шлют уведомления (например, через ",[64,3147,3148],{},"mail"," или Telegram API).",[26,3151,3152],{},"Пример скрипта для проверки загрузки CPU:",[100,3154,3156],{"className":102,"code":3155,"language":104,"meta":105,"style":105},"#!/bin/bash\nLOAD=$(awk '{print $1}' /proc/loadavg)\nTHRESHOLD=$(nproc)  # количество ядер\nif (( $(echo \"$LOAD > $THRESHOLD\" | bc -l) )); then\n  echo \"Высокая нагрузка: $LOAD\" | mail -s \"Alert: CPU load\" admin@example.com\nfi\n",[64,3157,3158,3162,3182,3200,3234,3258],{"__ignoreMap":105},[109,3159,3160],{"class":111,"line":112},[109,3161,1700],{"class":448},[109,3163,3164,3167,3169,3171,3174,3177,3180],{"class":111,"line":452},[109,3165,3166],{"class":242},"LOAD",[109,3168,1708],{"class":172},[109,3170,1711],{"class":242},[109,3172,3173],{"class":115},"awk",[109,3175,3176],{"class":165}," '{print $1}'",[109,3178,3179],{"class":165}," /proc/loadavg",[109,3181,1724],{"class":242},[109,3183,3184,3187,3189,3191,3194,3197],{"class":111,"line":460},[109,3185,3186],{"class":242},"THRESHOLD",[109,3188,1708],{"class":172},[109,3190,1711],{"class":242},[109,3192,3193],{"class":115},"nproc",[109,3195,3196],{"class":242},")  ",[109,3198,3199],{"class":448},"# количество ядер\n",[109,3201,3202,3204,3207,3210,3213,3216,3219,3221,3223,3226,3229,3232],{"class":111,"line":467},[109,3203,1729],{"class":172},[109,3205,3206],{"class":242}," (( $(echo ",[109,3208,3209],{"class":165},"\"",[109,3211,3212],{"class":242},"$LOAD",[109,3214,3215],{"class":165}," > ",[109,3217,3218],{"class":242},"$THRESHOLD",[109,3220,3209],{"class":165},[109,3222,173],{"class":172},[109,3224,3225],{"class":242}," bc ",[109,3227,3228],{"class":172},"-",[109,3230,3231],{"class":242},"l) )); ",[109,3233,1744],{"class":172},[109,3235,3236,3238,3241,3243,3245,3247,3250,3252,3255],{"class":111,"line":473},[109,3237,1366],{"class":119},[109,3239,3240],{"class":165}," \"Высокая нагрузка: ",[109,3242,3212],{"class":242},[109,3244,3209],{"class":165},[109,3246,173],{"class":172},[109,3248,3249],{"class":115}," mail",[109,3251,2615],{"class":119},[109,3253,3254],{"class":165}," \"Alert: CPU load\"",[109,3256,3257],{"class":165}," admin@example.com\n",[109,3259,3260],{"class":111,"line":485},[109,3261,1771],{"class":172},[21,3263,3265],{"id":3264},"интерпретация-метрик-и-профилактика","Интерпретация метрик и профилактика",[92,3267,3269],{"id":3268},"ключевые-индикаторы","Ключевые индикаторы",[42,3271,3272,3280,3291,3302],{},[45,3273,3274,2314,3277,3279],{},[30,3275,3276],{},"CPU",[64,3278,2464],{}," \u003C 20% — перегрузка. Но для веб-серверов нормально 70-80% idle, если нет очереди.",[45,3281,3282,2314,3285,3287,3288,3290],{},[30,3283,3284],{},"Memory",[64,3286,144],{}," \u003C 10% от total — тревога. Следите за ",[64,3289,2988],{}," — если активен, это признак нехватки RAM.",[45,3292,3293,2314,3296,3298,3299,3301],{},[30,3294,3295],{},"Disk",[64,3297,2436],{}," > 20 мс для SSD, > 10 мс для HDD — проблема. ",[64,3300,2430],{}," > 80% — диск не справляется.",[45,3303,3304,3307,3308,2370,3310,3312],{},[30,3305,3306],{},"Network",": рост ",[64,3309,3039],{},[64,3311,3035],{}," — перегрузка или ошибка драйвера.",[92,3314,2111],{"id":3315},"профилактика",[42,3317,3318,3326,3329,3335,3338],{},[45,3319,3320,3321,1677,3324,1232],{},"Регулярно проверяйте логи (",[64,3322,3323],{},"/var/log/syslog",[64,3325,74],{},[45,3327,3328],{},"Настройте мониторинг с порогами (например, CPU > 90% 5 минут).",[45,3330,3331,3332,3334],{},"Ограничивайте процессы через ",[64,3333,1640],{}," (systemd slice, docker limits).",[45,3336,3337],{},"Обновляйте ядро и драйверы — иногда проблемы исправляются в новых версиях.",[45,3339,3340,3341,870,3344,145],{},"Для I/O-интенсивных задач используйте ",[64,3342,3343],{},"ionice",[64,3345,3346],{},"nice",[92,3348,3350],{"id":3349},"частые-ошибки-новичков","Частые ошибки новичков",[42,3352,3353,3362,3373,3383],{},[45,3354,3355,3356,3358,3359,3361],{},"Смотреть только ",[64,3357,327],{}," без учёта ",[64,3360,2385],{}," — пропустить I/O-проблему.",[45,3363,3364,3365,67,3367,3370,3371,145],{},"Считать ",[64,3366,116],{},[64,3368,3369],{},"free -m"," как «свободная память» — не учитывать кэш. Лучше ",[64,3372,144],{},[45,3374,3375,3376,2370,3378,67,3380,3382],{},"Игнорировать ",[64,3377,357],{},[64,3379,361],{},[64,3381,348],{}," — подкачка убивает производительность.",[45,3384,3385],{},"Не настраивать алерты — узнают о проблеме, когда сервер уже упал.",[21,3387,864],{"id":863},[26,3389,3390,3391,1677,3393,1677,3395,3397,3398,3400,3401,2370,3403,3405],{},"Мониторинг — это непрерывный процесс. Начните с базовых утилитий (",[64,3392,327],{},[64,3394,348],{},[64,3396,2395],{},"), затем добавьте ",[64,3399,2640],{}," для истории и ",[64,3402,2801],{},[64,3404,2722],{}," для комплексного обзора. Для production-сред обязательно настройте графические дашборды (Grafana) и алерты.",[26,3407,3408],{},"Помните: метрики без контекста бесполезны. Знайте свою нагрузку: сколько запросов в секунду, объём данных, пиковые часы. Тогда аномалии будут видны сразу.",[878,3410,3411],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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 .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 pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":105,"searchDepth":452,"depth":452,"links":3413},[3414,3415,3427,3435,3436,3442,3443,3448],{"id":2218,"depth":452,"text":2219},{"id":2228,"depth":452,"text":2229,"children":3416},[3417,3419,3421,3423,3425],{"id":2232,"depth":460,"text":3418},"top и htop: интерактивный мониторинг процессов",{"id":2326,"depth":460,"text":3420},"vmstat: виртуальная статистика",{"id":2392,"depth":460,"text":3422},"iostat: детали по дискам и CPU",{"id":2467,"depth":460,"text":3424},"df и du: место на дисках",{"id":2543,"depth":460,"text":3426},"ss и netstat: сетевая активность",{"id":2633,"depth":452,"text":2634,"children":3428},[3429,3431,3433],{"id":2637,"depth":460,"text":3430},"sar: сбор исторических данных",{"id":2719,"depth":460,"text":3432},"nmon: интерактивный мониторинг всех ресурсов",{"id":2798,"depth":460,"text":3434},"glances: кросс-платформенный мониторинг",{"id":2846,"depth":452,"text":2847},{"id":2878,"depth":452,"text":2879,"children":3437},[3438,3439,3440,3441],{"id":2882,"depth":460,"text":2883},{"id":2933,"depth":460,"text":2934},{"id":2975,"depth":460,"text":2976},{"id":3023,"depth":460,"text":3024},{"id":3067,"depth":452,"text":3068},{"id":3264,"depth":452,"text":3265,"children":3444},[3445,3446,3447],{"id":3268,"depth":460,"text":3269},{"id":3315,"depth":460,"text":2111},{"id":3349,"depth":460,"text":3350},{"id":863,"depth":452,"text":864},"2026-02-14 12:02:44","Узнайте, как использовать top, vmstat, iostat и другие утилиты для анализа нагрузки на систему. Пошаговая инструкция с примерами команд.","15-30 мин",[3453,3456,3459,3462],{"answer":3454,"question":3455},"Используйте `top` или `htop` (если установлен). Они отображают динамический список процессов с потреблением CPU, памяти и другими метриками.","Какая команда показывает загрузку CPU в реальном времени?",{"answer":3457,"question":3458},"Для свободного места на разделах — `df -h`. Для определения размера конкретных папок — `du -sh /путь/к/папке`.","Как проверить использование дискового пространства?",{"answer":3460,"question":3461},"Найдите процесс через `ps aux --sort=-%mem | head -10`, затем проанализируйте его логи или перезапустите. Если проблема повторяется — проверьте утечки памяти в коде.","Что делать, если процесс потребляет слишком много памяти?",{"answer":3463,"question":3464},"Да, через SSH можно запускать стандартные утилиты (`top`, `vmstat`, `iostat`). Для постоянного мониторинга удобнее настроить агент (например, `collectd`) или использовать веб-интерфейсы вроде `Webmin`.","Можно ли мониторить удалённый сервер без установки дополнительного ПО?",[3466,3469,3472,3475,3478,3481],{"name":3467,"text":3468},"Установите необходимые утилиты","Большинство инструментов уже в системе, но для полного набора установите пакет `sysstat` (`sudo apt install sysstat` или `sudo yum install sysstat`). Он содержит `iostat`, `mpstat`, `sar`.",{"name":3470,"text":3471},"Используйте `top` для быстрого обзора","Запустите `top` в терминале. Нажмите `P` для сортировки по CPU, `M` — по памяти. Для выхода — `q`. Ключевые поля: `%CPU`, `%MEM`, `RES`.",{"name":3473,"text":3474},"Анализируйте общую статистику через `vmstat`","Команда `vmstat 2` выводит каждые 2 секунды данные по памяти, подкачке, прерываниям и контекстным переключениям. Обращайте внимание на `si`/`so` (подкачка) и `us`/`sy` (пользовательский/системный CPU).",{"name":3476,"text":3477},"Проверьте дисковую активность с `iostat`","`iostat -x 2` показывает расширенную статистику по дискам. Важные метрики: `%util` (загрузка диска) и `await` (среднее время ожидания). Если `%util` близок к 100% — диск является узким местом.",{"name":3479,"text":3480},"Мониторьте сеть через `ss` и `netstat`","`ss -tuln` отображает открытые порты и соединения. Для статистики по интерфейсам используйте `ip -s link` или `ifconfig` (устарел). Пакетный уровень — `nstat`.",{"name":3482,"text":3483},"Собирайте историю с `sar`","`sar` сохраняет данные в `/var/log/sysstat/`. Просмотр: `sar -u 2 5` (CPU за 5 интервалов по 2 сек). Для графиков можно использовать `ksar` или `sar2graph`.","PT20M",[3486,3487,3488,3489,3490,3491,3492,3493,3494,3495],"мониторинг производительности linux","как проверить нагрузку на сервер linux","утилиты для мониторинга linux","top vmstat iostat команды","анализ загрузки цп linux","мониторинг оперативной памяти linux","дисковый ввод вывод linux","сетевые метрики linux","перформанс линукс","linux performance tuning",{},[3498,3499],"/guides/linux/linux-log-analysis","/guides/linux/linux-process-management","Гайды по Linux",{"title":2208,"description":3450},"guides/linux/linux-performance-monitoring","Этот гайд познакомит вас с основными и расширенными инструментами мониторинга Linux, покажет, как интерпретировать метрики и оперативно выявлять узкие места в производительности.",[3505,3506,963,3507,964],"мониторинг","Linux","sysadmin","guide","x1hrmedT6poFQsUlP6mMbAbjfWvMdIy3lsvt8UbgLE0",{"id":3511,"title":3512,"appliesTo":3513,"author":12,"body":3518,"canonical":907,"code":907,"createdAt":4711,"description":4712,"difficulty":911,"draft":912,"estimatedTime":4713,"extension":914,"faq":4714,"howToSteps":4727,"howToTotalTime":4746,"image":907,"keywords":4747,"locale":948,"meta":4757,"navigation":463,"path":955,"platform":951,"related":4758,"section":4761,"seo":4762,"severity":907,"stem":4763,"summary":4764,"tags":4765,"twitterCreator":907,"twitterSite":907,"type":3508,"updatedAt":4711,"__hash__":4770},"content_ru/guides/linux/linux-memory-management.md","Управление памятью Linux: диагностика и оптимизация",[3514,3515,3516,3517,2213],"Ubuntu 22.04+","Debian 11+","CentOS 8+","RHEL 9+",{"type":14,"value":3519,"toc":4694},[3520,3524,3533,3537,3653,3658,3691,3695,3700,3720,3725,3756,3761,3776,3781,3827,3831,3835,3853,3857,3957,3961,3989,3998,4002,4005,4010,4028,4033,4067,4072,4082,4092,4101,4105,4108,4241,4245,4252,4387,4391,4536,4540,4627,4630,4632,4636,4646,4681,4691],[21,3521,3523],{"id":3522},"диагностика-нехватки-оперативной-памяти-в-linux","Диагностика нехватки оперативной памяти в Linux",[26,3525,3526,3527,3529,3530,3532],{},"Перед оптимизацией необходимо точно понять, как ваша система использует память. Linux активно кэширует данные в свободной RAM для ускорения работы, поэтому показатель \"свободно\" (",[64,3528,116],{},") в выводе команды ",[64,3531,993],{}," часто бывает низким — это нормально.",[92,3534,3536],{"id":3535},"ключевые-команды-для-анализа","Ключевые команды для анализа",[100,3538,3540],{"className":102,"code":3539,"language":104,"meta":105,"style":105},"# Основная информация об использовании RAM и swap\nfree -h\n\n# Динамический мониторинг с сортировкой по памяти\ntop\n# В top: нажмите 'M' для сортировки по памяти, 'P' — по CPU\n\n# Статистика по виртуальной памяти и активности диска\nvmstat 1 5\n\n# Список процессов с сортировкой по потреблению памяти\nps aux --sort=-%mem | head -10\n\n# Подробная информация по процессу (замените \u003CPID>)\ncat /proc/\u003CPID>/status | grep -E \"Vm(RSS|Swap|Size)\"\n",[64,3541,3542,3547,3553,3557,3562,3566,3571,3575,3580,3590,3595,3601,3616,3621,3627],{"__ignoreMap":105},[109,3543,3544],{"class":111,"line":112},[109,3545,3546],{"class":448},"# Основная информация об использовании RAM и swap\n",[109,3548,3549,3551],{"class":111,"line":452},[109,3550,116],{"class":115},[109,3552,120],{"class":119},[109,3554,3555],{"class":111,"line":460},[109,3556,464],{"emptyLinePlaceholder":463},[109,3558,3559],{"class":111,"line":467},[109,3560,3561],{"class":448},"# Динамический мониторинг с сортировкой по памяти\n",[109,3563,3564],{"class":111,"line":473},[109,3565,307],{"class":115},[109,3567,3568],{"class":111,"line":485},[109,3569,3570],{"class":448},"# В top: нажмите 'M' для сортировки по памяти, 'P' — по CPU\n",[109,3572,3573],{"class":111,"line":490},[109,3574,464],{"emptyLinePlaceholder":463},[109,3576,3577],{"class":111,"line":496},[109,3578,3579],{"class":448},"# Статистика по виртуальной памяти и активности диска\n",[109,3581,3582,3584,3587],{"class":111,"line":511},[109,3583,348],{"class":115},[109,3585,3586],{"class":119}," 1",[109,3588,3589],{"class":119}," 5\n",[109,3591,3593],{"class":111,"line":3592},10,[109,3594,464],{"emptyLinePlaceholder":463},[109,3596,3598],{"class":111,"line":3597},11,[109,3599,3600],{"class":448},"# Список процессов с сортировкой по потреблению памяти\n",[109,3602,3604,3606,3608,3610,3612,3614],{"class":111,"line":3603},12,[109,3605,162],{"class":115},[109,3607,166],{"class":165},[109,3609,169],{"class":119},[109,3611,173],{"class":172},[109,3613,176],{"class":115},[109,3615,2534],{"class":119},[109,3617,3619],{"class":111,"line":3618},13,[109,3620,464],{"emptyLinePlaceholder":463},[109,3622,3624],{"class":111,"line":3623},14,[109,3625,3626],{"class":448},"# Подробная информация по процессу (замените \u003CPID>)\n",[109,3628,3630,3632,3634,3636,3638,3640,3642,3644,3646,3648,3650],{"class":111,"line":3629},15,[109,3631,259],{"class":115},[109,3633,262],{"class":165},[109,3635,265],{"class":172},[109,3637,239],{"class":165},[109,3639,243],{"class":242},[109,3641,272],{"class":172},[109,3643,275],{"class":165},[109,3645,173],{"class":172},[109,3647,280],{"class":115},[109,3649,283],{"class":119},[109,3651,3652],{"class":165}," \"Vm(RSS|Swap|Size)\"\n",[26,3654,3655],{},[30,3656,3657],{},"На что смотреть:",[42,3659,3660,3672,3681],{},[45,3661,3662,3665,3666,3668,3669,3671],{},[64,3663,3664],{},"Mem:"," строка в ",[64,3667,116],{},". Поле ",[64,3670,144],{}," показывает память, доступную для новых приложений без свопа.",[45,3673,3674,2370,3676,67,3678,3680],{},[64,3675,357],{},[64,3677,361],{},[64,3679,348],{}," (swap in/out). Постоянные значения > 0 указывают на активное использование swap — признак нехватки RAM.",[45,3682,3683,3684,3686,3687,71,3689,145],{},"Высокий ",[64,3685,204],{}," у конкретных процессов в ",[64,3688,327],{},[64,3690,162],{},[21,3692,3694],{"id":3693},"способ-1-настройка-параметра-swappiness","Способ 1: Настройка параметра swappiness",[26,3696,3697,3699],{},[64,3698,416],{}," контролирует склонность ядра использовать swap. Значение от 0 до 100.",[42,3701,3702,3708,3714],{},[45,3703,3704,3707],{},[30,3705,3706],{},"0:"," Ядро будет избегать swap, пока не исчерпается физическая RAM и кеш.",[45,3709,3710,3713],{},[30,3711,3712],{},"60 (по умолчанию):"," Агрессивное использование swap.",[45,3715,3716,3719],{},[30,3717,3718],{},"100:"," Активное вытеснение неактивных страниц в swap.",[26,3721,3722],{},[30,3723,3724],{},"Рекомендации:",[42,3726,3727,3737,3746],{},[45,3728,3729,3732,3733,3736],{},[30,3730,3731],{},"Серверы (базы данных, веб-серверы):"," ",[64,3734,3735],{},"10-20",". Минимизируют latency.",[45,3738,3739,3732,3742,3745],{},[30,3740,3741],{},"Настольные системы:",[64,3743,3744],{},"10-15",". Обеспечивают отзывчивость.",[45,3747,3748,3751,3752,3755],{},[30,3749,3750],{},"Системы с гибернацией:"," Установите значение ",[64,3753,3754],{},"100"," или близкое к нему, чтобы гарантировать место для сохранения состояния в swap.",[26,3757,3758],{},[30,3759,3760],{},"Как изменить временно (до перезагрузки):",[100,3762,3764],{"className":102,"code":3763,"language":104,"meta":105,"style":105},"sudo sysctl vm.swappiness=10\n",[64,3765,3766],{"__ignoreMap":105},[109,3767,3768,3770,3772,3774],{"class":111,"line":112},[109,3769,1469],{"class":115},[109,3771,1820],{"class":165},[109,3773,479],{"class":165},[109,3775,482],{"class":119},[26,3777,3778],{},[30,3779,3780],{},"Как изменить навсегда:",[590,3782,3783,3802,3811],{},[45,3784,3785,3786,1459,3788],{},"Отредактируйте ",[64,3787,1540],{},[100,3789,3791],{"className":102,"code":3790,"language":104,"meta":105,"style":105},"sudo nano /etc/sysctl.conf\n",[64,3792,3793],{"__ignoreMap":105},[109,3794,3795,3797,3800],{"class":111,"line":112},[109,3796,1469],{"class":115},[109,3798,3799],{"class":165}," nano",[109,3801,508],{"class":165},[45,3803,3804,3805],{},"Добавьте строку:\n",[100,3806,3809],{"className":3807,"code":3808,"language":129},[127],"vm.swappiness=10\n",[64,3810,3808],{"__ignoreMap":105},[45,3812,3813,3814],{},"Примените изменения:\n",[100,3815,3817],{"className":102,"code":3816,"language":104,"meta":105,"style":105},"sudo sysctl -p\n",[64,3818,3819],{"__ignoreMap":105},[109,3820,3821,3823,3825],{"class":111,"line":112},[109,3822,1469],{"class":115},[109,3824,1820],{"class":165},[109,3826,516],{"class":119},[21,3828,3830],{"id":3829},"способ-2-управление-swap-пространством","Способ 2: Управление swap-пространством",[92,3832,3834],{"id":3833},"проверка-существующих-swap-областей","Проверка существующих swap-областей",[100,3836,3838],{"className":102,"code":3837,"language":104,"meta":105,"style":105},"swapon --show\ncat /proc/swaps\n",[64,3839,3840,3846],{"__ignoreMap":105},[109,3841,3842,3844],{"class":111,"line":112},[109,3843,372],{"class":115},[109,3845,375],{"class":119},[109,3847,3848,3850],{"class":111,"line":452},[109,3849,259],{"class":115},[109,3851,3852],{"class":165}," /proc/swaps\n",[92,3854,3856],{"id":3855},"создание-swap-файла-если-swap-недостаточно-или-отсутствует","Создание swap-файла (если swap недостаточно или отсутствует)",[100,3858,3860],{"className":102,"code":3859,"language":104,"meta":105,"style":105},"# 1. Создайте файл нужного размера (например, 2 ГБ)\nsudo fallocate -l 2G /swapfile\n\n# 2. Установите правильные права доступа\nsudo chmod 600 /swapfile\n\n# 3. Создайте swap-область\nsudo mkswap /swapfile\n\n# 4. Включите swap-файл немедленно\nsudo swapon /swapfile\n\n# 5. Добавьте в /etc/fstab для монтирования при загрузке\necho '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab\n",[64,3861,3862,3867,3879,3883,3888,3898,3902,3907,3915,3919,3924,3932,3936,3941],{"__ignoreMap":105},[109,3863,3864],{"class":111,"line":112},[109,3865,3866],{"class":448},"# 1. Создайте файл нужного размера (например, 2 ГБ)\n",[109,3868,3869,3871,3873,3875,3877],{"class":111,"line":452},[109,3870,1469],{"class":115},[109,3872,1472],{"class":165},[109,3874,780],{"class":119},[109,3876,783],{"class":165},[109,3878,786],{"class":165},[109,3880,3881],{"class":111,"line":460},[109,3882,464],{"emptyLinePlaceholder":463},[109,3884,3885],{"class":111,"line":467},[109,3886,3887],{"class":448},"# 2. Установите правильные права доступа\n",[109,3889,3890,3892,3894,3896],{"class":111,"line":473},[109,3891,1469],{"class":115},[109,3893,1490],{"class":165},[109,3895,794],{"class":119},[109,3897,786],{"class":165},[109,3899,3900],{"class":111,"line":485},[109,3901,464],{"emptyLinePlaceholder":463},[109,3903,3904],{"class":111,"line":490},[109,3905,3906],{"class":448},"# 3. Создайте swap-область\n",[109,3908,3909,3911,3913],{"class":111,"line":496},[109,3910,1469],{"class":115},[109,3912,1501],{"class":165},[109,3914,786],{"class":165},[109,3916,3917],{"class":111,"line":511},[109,3918,464],{"emptyLinePlaceholder":463},[109,3920,3921],{"class":111,"line":3592},[109,3922,3923],{"class":448},"# 4. Включите swap-файл немедленно\n",[109,3925,3926,3928,3930],{"class":111,"line":3597},[109,3927,1469],{"class":115},[109,3929,1510],{"class":165},[109,3931,786],{"class":165},[109,3933,3934],{"class":111,"line":3603},[109,3935,464],{"emptyLinePlaceholder":463},[109,3937,3938],{"class":111,"line":3618},[109,3939,3940],{"class":448},"# 5. Добавьте в /etc/fstab для монтирования при загрузке\n",[109,3942,3943,3945,3947,3949,3951,3953,3955],{"class":111,"line":3623},[109,3944,499],{"class":119},[109,3946,825],{"class":165},[109,3948,173],{"class":172},[109,3950,1523],{"class":115},[109,3952,1526],{"class":165},[109,3954,1529],{"class":119},[109,3956,830],{"class":165},[92,3958,3960],{"id":3959},"удаление-ненужного-swap-файла","Удаление ненужного swap-файла",[100,3962,3964],{"className":102,"code":3963,"language":104,"meta":105,"style":105},"sudo swapoff /swapfile\nsudo rm /swapfile\n# Удалите соответствующую строку из /etc/fstab\n",[64,3965,3966,3975,3984],{"__ignoreMap":105},[109,3967,3968,3970,3973],{"class":111,"line":112},[109,3969,1469],{"class":115},[109,3971,3972],{"class":165}," swapoff",[109,3974,786],{"class":165},[109,3976,3977,3979,3982],{"class":111,"line":452},[109,3978,1469],{"class":115},[109,3980,3981],{"class":165}," rm",[109,3983,786],{"class":165},[109,3985,3986],{"class":111,"line":460},[109,3987,3988],{"class":448},"# Удалите соответствующую строку из /etc/fstab\n",[545,3990,3991],{},[26,3992,3993,3994,3997],{},"⚠️ ",[30,3995,3996],{},"Важно:"," Использование swap на SSD сокращает его срок службы. Для серверов с большим объёмом RAM (32+ ГБ) swap часто не требуется.",[21,3999,4001],{"id":4000},"способ-3-очистка-файлового-кеша-pagecache-dentries-inodes","Способ 3: Очистка файлового кеша (Pagecache, Dentries, Inodes)",[26,4003,4004],{},"Ядро Linux автоматически управляет кешем, освобождая память под новые процессы. Однако в редких случаях (например, после массового удаления миллионов мелких файлов) принудительная очистка может помочь освободить память немедленно.",[26,4006,4007],{},[30,4008,4009],{},"Уровни очистки:",[590,4011,4012,4017,4022],{},[45,4013,4014,4016],{},[64,4015,1797],{}," — Очистить только pagecache.",[45,4018,4019,4021],{},[64,4020,1803],{}," — Очистить pagecache и dentries.",[45,4023,4024,4027],{},[64,4025,4026],{},"3"," — Очистить pagecache, dentries и inodes (самый полный).",[26,4029,4030],{},[30,4031,4032],{},"Команда для очистки (уровень 3):",[100,4034,4036],{"className":102,"code":4035,"language":104,"meta":105,"style":105},"# Сначала синхронизируйте данные с диска на всякий случай\nsync\n# Очистите все типы кеша\necho 3 | sudo tee /proc/sys/vm/drop_caches\n",[64,4037,4038,4043,4048,4053],{"__ignoreMap":105},[109,4039,4040],{"class":111,"line":112},[109,4041,4042],{"class":448},"# Сначала синхронизируйте данные с диска на всякий случай\n",[109,4044,4045],{"class":111,"line":452},[109,4046,4047],{"class":115},"sync\n",[109,4049,4050],{"class":111,"line":460},[109,4051,4052],{"class":448},"# Очистите все типы кеша\n",[109,4054,4055,4057,4059,4061,4063,4065],{"class":111,"line":467},[109,4056,499],{"class":119},[109,4058,575],{"class":119},[109,4060,173],{"class":172},[109,4062,1523],{"class":115},[109,4064,1526],{"class":165},[109,4066,581],{"class":165},[26,4068,4069],{},[30,4070,4071],{},"Проверьте результат:",[100,4073,4074],{"className":102,"code":103,"language":104,"meta":105,"style":105},[64,4075,4076],{"__ignoreMap":105},[109,4077,4078,4080],{"class":111,"line":112},[109,4079,116],{"class":115},[109,4081,120],{"class":119},[26,4083,4084,4085,4088,4089,4091],{},"Поле ",[64,4086,4087],{},"cached"," должно значительно уменьшиться, а ",[64,4090,144],{}," — увеличиться.",[545,4093,4094],{},[26,4095,4096,4097,4100],{},"💡 ",[30,4098,4099],{},"Совет:"," Выполняйте очистку только в periods низкой нагрузки (ночью, в выходные). Не делайте это частью регулярного обслуживания.",[21,4102,4104],{"id":4103},"способ-4-управление-процессами-и-их-памятью","Способ 4: Управление процессами и их памятью",[26,4106,4107],{},"Если конкретный процесс \"съедает\" память, рассмотрите следующие действия:",[590,4109,4110,4138,4178,4209],{},[45,4111,4112,4115,4116],{},[30,4113,4114],{},"Перезапуск сервиса:"," Часто помогает освободить утечки памяти (memory leaks).\n",[100,4117,4119],{"className":102,"code":4118,"language":104,"meta":105,"style":105},"sudo systemctl restart \u003Cservice_name>\n",[64,4120,4121],{"__ignoreMap":105},[109,4122,4123,4125,4127,4130,4132,4134,4136],{"class":111,"line":112},[109,4124,1469],{"class":115},[109,4126,1935],{"class":165},[109,4128,4129],{"class":165}," restart",[109,4131,236],{"class":172},[109,4133,637],{"class":165},[109,4135,640],{"class":242},[109,4137,246],{"class":172},[45,4139,4140,4143,4144],{},[30,4141,4142],{},"Ограничение памяти через cgroups:"," Для недоверенных или непредсказуемых процессов.\n",[100,4145,4147],{"className":102,"code":4146,"language":104,"meta":105,"style":105},"# Создание cgroup и установка лимита (например, 500M)\nsudo systemd-run --scope -p MemoryMax=500M \u003Ccommand>\n",[64,4148,4149,4154],{"__ignoreMap":105},[109,4150,4151],{"class":111,"line":112},[109,4152,4153],{"class":448},"# Создание cgroup и установка лимита (например, 500M)\n",[109,4155,4156,4158,4161,4164,4166,4169,4171,4174,4176],{"class":111,"line":452},[109,4157,1469],{"class":115},[109,4159,4160],{"class":165}," systemd-run",[109,4162,4163],{"class":119}," --scope",[109,4165,1380],{"class":119},[109,4167,4168],{"class":165}," MemoryMax=500M",[109,4170,236],{"class":172},[109,4172,4173],{"class":165},"comman",[109,4175,2764],{"class":242},[109,4177,246],{"class":172},[45,4179,4180,4186],{},[30,4181,4182,4183,438],{},"Использование ",[64,4184,4185],{},"ulimit",[100,4187,4189],{"className":102,"code":4188,"language":104,"meta":105,"style":105},"# Установка лимита на размер памяти для текущей сессии\nulimit -v 500000  # в килобайтах\n",[64,4190,4191,4196],{"__ignoreMap":105},[109,4192,4193],{"class":111,"line":112},[109,4194,4195],{"class":448},"# Установка лимита на размер памяти для текущей сессии\n",[109,4197,4198,4200,4203,4206],{"class":111,"line":452},[109,4199,4185],{"class":119},[109,4201,4202],{"class":119}," -v",[109,4204,4205],{"class":119}," 500000",[109,4207,4208],{"class":448},"  # в килобайтах\n",[45,4210,4211,4214],{},[30,4212,4213],{},"Завершение проблемного процесса:",[100,4215,4217],{"className":102,"code":4216,"language":104,"meta":105,"style":105},"# Найдите PID и завершите (осторожно!)\nsudo kill -9 \u003CPID>\n",[64,4218,4219,4224],{"__ignoreMap":105},[109,4220,4221],{"class":111,"line":112},[109,4222,4223],{"class":448},"# Найдите PID и завершите (осторожно!)\n",[109,4225,4226,4228,4231,4233,4235,4237,4239],{"class":111,"line":452},[109,4227,1469],{"class":115},[109,4229,4230],{"class":165}," kill",[109,4232,678],{"class":119},[109,4234,236],{"class":172},[109,4236,239],{"class":165},[109,4238,243],{"class":242},[109,4240,246],{"class":172},[21,4242,4244],{"id":4243},"способ-5-анализ-и-настройка-oom-killer","Способ 5: Анализ и настройка OOM Killer",[26,4246,4247,4248,4251],{},"Если система полностью исчерпала RAM и swap, ядро активирует ",[30,4249,4250],{},"OOM (Out-Of-Memory) Killer",", который принудительно завершает процессы для освобождения памяти.",[590,4253,4254,4303],{},[45,4255,4256,4259,4297,4300,4301,145],{},[30,4257,4258],{},"Проверьте логи OOM Killer:",[100,4260,4262],{"className":102,"code":4261,"language":104,"meta":105,"style":105},"sudo grep -i 'killed process' /var/log/syslog\nsudo journalctl -xe | grep -i oom\n",[64,4263,4264,4278],{"__ignoreMap":105},[109,4265,4266,4268,4270,4272,4275],{"class":111,"line":112},[109,4267,1469],{"class":115},[109,4269,280],{"class":165},[109,4271,1259],{"class":119},[109,4273,4274],{"class":165}," 'killed process'",[109,4276,4277],{"class":165}," /var/log/syslog\n",[109,4279,4280,4282,4285,4288,4290,4292,4294],{"class":111,"line":452},[109,4281,1469],{"class":115},[109,4283,4284],{"class":165}," journalctl",[109,4286,4287],{"class":119}," -xe",[109,4289,173],{"class":172},[109,4291,280],{"class":115},[109,4293,1259],{"class":119},[109,4295,4296],{"class":165}," oom\n",[4298,4299],"br",{},"Лог покажет, какой процесс был убит и его ",[64,4302,1166],{},[45,4304,4305,4310,4311,4376,4378,4379,4382,4383,4386],{},[30,4306,1123,4307,4309],{},[64,4308,1212],{}," для критичных процессов:","\nЗначение от -1000 (максимальная защита) до +1000 (максимальный приоритет на убийство).",[100,4312,4314],{"className":102,"code":4313,"language":104,"meta":105,"style":105},"# Установить низкий приоритет на убийство для Nginx\nsudo systemctl set-property --runtime nginx.service OOMScoreAdjust=-900\n\n# Для уже запущенного процесса (по PID)\necho -900 | sudo tee /proc/\u003CPID>/oom_score_adj\n",[64,4315,4316,4321,4342,4346,4351],{"__ignoreMap":105},[109,4317,4318],{"class":111,"line":112},[109,4319,4320],{"class":448},"# Установить низкий приоритет на убийство для Nginx\n",[109,4322,4323,4325,4327,4330,4333,4336,4339],{"class":111,"line":452},[109,4324,1469],{"class":115},[109,4326,1935],{"class":165},[109,4328,4329],{"class":165}," set-property",[109,4331,4332],{"class":119}," --runtime",[109,4334,4335],{"class":165}," nginx.service",[109,4337,4338],{"class":165}," OOMScoreAdjust=",[109,4340,4341],{"class":119},"-900\n",[109,4343,4344],{"class":111,"line":460},[109,4345,464],{"emptyLinePlaceholder":463},[109,4347,4348],{"class":111,"line":467},[109,4349,4350],{"class":448},"# Для уже запущенного процесса (по PID)\n",[109,4352,4353,4355,4358,4360,4362,4364,4366,4368,4370,4372,4374],{"class":111,"line":473},[109,4354,499],{"class":119},[109,4356,4357],{"class":119}," -900",[109,4359,173],{"class":172},[109,4361,1523],{"class":115},[109,4363,1526],{"class":165},[109,4365,262],{"class":165},[109,4367,265],{"class":172},[109,4369,239],{"class":165},[109,4371,243],{"class":242},[109,4373,272],{"class":172},[109,4375,728],{"class":165},[4298,4377],{},"Чтобы изменения сохранились после перезагрузки, используйте ",[64,4380,4381],{},"systemctl set-property"," без ",[64,4384,4385],{},"--runtime"," или настройте в юните systemd.",[21,4388,4390],{"id":4389},"способ-6-профилактика-и-долгосрочные-решения","Способ 6: Профилактика и долгосрочные решения",[590,4392,4393,4492,4501],{},[45,4394,4395,4398,4399,870,4401,4403,4404],{},[30,4396,4397],{},"Регулярный мониторинг:"," Настройте алерты в Prometheus/Grafana, Zabbix или даже простой скрипт с ",[64,4400,3074],{},[64,4402,3148],{},".\n",[100,4405,4407],{"className":102,"code":4406,"language":104,"meta":105,"style":105},"# Пример скрипта для проверки, если available \u003C 10%\n# (сохраните как /usr/local/bin/check_mem.sh)\nif [ $(free | awk '/Mem:/ {print $7}') -lt $(free | awk '/Mem:/ {print $2}') * 0.1 ]; then\n    echo \"ALERT: Low memory on $(hostname)\" | mail -s \"Memory Alert\" admin@example.com\nfi\n",[64,4408,4409,4414,4419,4463,4488],{"__ignoreMap":105},[109,4410,4411],{"class":111,"line":112},[109,4412,4413],{"class":448},"# Пример скрипта для проверки, если available \u003C 10%\n",[109,4415,4416],{"class":111,"line":452},[109,4417,4418],{"class":448},"# (сохраните как /usr/local/bin/check_mem.sh)\n",[109,4420,4421,4423,4426,4428,4430,4432,4435,4438,4441,4443,4445,4447,4449,4452,4454,4456,4459,4461],{"class":111,"line":460},[109,4422,1729],{"class":172},[109,4424,4425],{"class":242}," [ $(",[109,4427,116],{"class":115},[109,4429,173],{"class":172},[109,4431,1718],{"class":115},[109,4433,4434],{"class":165}," '/Mem:/ {print $7}'",[109,4436,4437],{"class":242},") ",[109,4439,4440],{"class":172},"-lt",[109,4442,1344],{"class":242},[109,4444,116],{"class":115},[109,4446,173],{"class":172},[109,4448,1718],{"class":115},[109,4450,4451],{"class":165}," '/Mem:/ {print $2}'",[109,4453,4437],{"class":242},[109,4455,2520],{"class":172},[109,4457,4458],{"class":119}," 0.1",[109,4460,1741],{"class":242},[109,4462,1744],{"class":172},[109,4464,4465,4468,4471,4474,4477,4479,4481,4483,4486],{"class":111,"line":467},[109,4466,4467],{"class":119},"    echo",[109,4469,4470],{"class":165}," \"ALERT: Low memory on $(",[109,4472,4473],{"class":115},"hostname",[109,4475,4476],{"class":165},")\"",[109,4478,173],{"class":172},[109,4480,3249],{"class":115},[109,4482,2615],{"class":119},[109,4484,4485],{"class":165}," \"Memory Alert\"",[109,4487,3257],{"class":165},[109,4489,4490],{"class":111,"line":473},[109,4491,1771],{"class":172},[45,4493,4494,4497,4498,4500],{},[30,4495,4496],{},"Апгрейд RAM:"," Самый эффективный и надёжный способ. Оцените пиковое потребление за несколько недель (",[64,4499,993],{}," в момент максимальной нагрузки) и добавьте запас.",[45,4502,4503,4506],{},[30,4504,4505],{},"Оптимизация приложений:",[42,4507,4508,4515,4523],{},[45,4509,4510,4511,4514],{},"Для Java-приложений: настройте ",[64,4512,4513],{},"-Xmx"," (максимум heap) в соответствии с доступной RAM.",[45,4516,4517,4518,1677,4520,1232],{},"Для веб-серверов (Nginx/Apache): настройте ограничения на количество рабочих процессов (",[64,4519,1655],{},[64,4521,4522],{},"max_connections",[45,4524,4525,4526,4529,4530,1677,4533,1232],{},"Для кэшей (Redis, Memcached): установите ",[64,4527,4528],{},"maxmemory"," и политику вытеснения (",[64,4531,4532],{},"allkeys-lru",[64,4534,4535],{},"volatile-lru",[21,4537,4539],{"id":4538},"сводная-таблица-действий","Сводная таблица действий",[1991,4541,4542,4555],{},[1994,4543,4544],{},[1997,4545,4546,4549,4552],{},[2000,4547,2002],{"align":4548},"left",[2000,4550,4551],{"align":4548},"Первое действие",[2000,4553,4554],{"align":4548},"Следующие шаги",[2010,4556,4557,4583,4600,4613],{},[1997,4558,4559,4569,4576],{},[2015,4560,4561,4562,2370,4564,4566,4567],{"align":4548},"Медленная работа, ",[64,4563,357],{},[64,4565,361],{}," > 0 в ",[64,4568,348],{},[2015,4570,4571,4572,1677,4574],{"align":4548},"Проверить ",[64,4573,993],{},[64,4575,327],{},[2015,4577,4578,4579,4582],{"align":4548},"Настроить ",[64,4580,4581],{},"swappiness",", добавить/увеличить swap, найти прожорливые процессы.",[1997,4584,4585,4592,4597],{},[2015,4586,3683,4587,67,4589,4591],{"align":4548},[64,4588,4087],{},[64,4590,116],{},", но приложения тормозят",[2015,4593,4594,4595,145],{"align":4548},"Обычно это нормально. Проверить ",[64,4596,144],{},[2015,4598,4599],{"align":4548},"Не трогать кеш. Искать原因 в I/O или CPU.",[1997,4601,4602,4605,4608],{},[2015,4603,4604],{"align":4548},"Регулярные сообщения \"Killed process\" в логах",[2015,4606,4607],{"align":4548},"Проверить логи OOM.",[2015,4609,4578,4610,4612],{"align":4548},[64,4611,1212],{}," для критичных сервисов, добавить RAM.",[1997,4614,4615,4618,4624],{},[2015,4616,4617],{"align":4548},"Свободная RAM есть, но приложение не может выделить память",[2015,4619,4620,4621,4623],{"align":4548},"Проверить лимиты (",[64,4622,4185],{},", cgroups).",[2015,4625,4626],{"align":4548},"Увеличить лимиты, проверить на утечки памяти в приложении.",[4628,4629],"hr",{},[380,4631],{},[21,4633,4635],{"id":4634},"заключительные-рекомендации","Заключительные рекомендации",[26,4637,4638,4639,1677,4641,1677,4643,4645],{},"Управление памятью в Linux — это баланс между автоматическими механизмами ядра и ручной настройкой. Начните с диагностики (",[64,4640,116],{},[64,4642,327],{},[64,4644,348],{},"), затем:",[590,4647,4648,4657,4663,4669,4675],{},[45,4649,4650,4653,4654,4656],{},[30,4651,4652],{},"Для большинства десктопов и серверов"," достаточно настройки ",[64,4655,416],{}," на значение 10-20.",[45,4658,4659,4662],{},[30,4660,4661],{},"Swap-файл"," — простой способ добавить \"буфер\" без переразметки дисков.",[45,4664,4665,4668],{},[30,4666,4667],{},"Очистка кеша"," — крайняя мера, а не рутинная операция.",[45,4670,4671,4674],{},[30,4672,4673],{},"Если проблема в конкретном приложении"," — настройте его лимиты или рассмотрите его замену/оптимизацию.",[45,4676,4677,4680],{},[30,4678,4679],{},"Постоянная нехватка памяти"," — сигнал к увеличению физической RAM.",[26,4682,4683,4684,4687,4688,4690],{},"Помните: Linux использует свободную RAM для кеширования диска, что ",[30,4685,4686],{},"увеличивает общую производительность",". Цель — не иметь 100% \"свободной\" RAM, а иметь достаточное количество ",[64,4689,144],{}," памяти для новых процессов и избегать активного использования swap.",[878,4692,4693],{},"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 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}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);}",{"title":105,"searchDepth":452,"depth":452,"links":4695},[4696,4699,4700,4705,4706,4707,4708,4709,4710],{"id":3522,"depth":452,"text":3523,"children":4697},[4698],{"id":3535,"depth":460,"text":3536},{"id":3693,"depth":452,"text":3694},{"id":3829,"depth":452,"text":3830,"children":4701},[4702,4703,4704],{"id":3833,"depth":460,"text":3834},{"id":3855,"depth":460,"text":3856},{"id":3959,"depth":460,"text":3960},{"id":4000,"depth":452,"text":4001},{"id":4103,"depth":452,"text":4104},{"id":4243,"depth":452,"text":4244},{"id":4389,"depth":452,"text":4390},{"id":4538,"depth":452,"text":4539},{"id":4634,"depth":452,"text":4635},"2026-02-14 11:04:27","Подробное руководство по мониторингу и настройке RAM в Linux. Узнайте, как использовать free, top, vmstat и tune swappiness для повышения производительности системы.","20-30 мин",[4715,4718,4721,4724],{"question":4716,"answer":4717},"Чем отличаются RAM и swap в Linux?","RAM — это быстрая физическая память. Swap (своп) — это область на диске, которая используется как расширение RAM при её нехватке, но работает значительно медленнее.",{"question":4719,"answer":4720},"Безопасно ли вручную очищать кеш памяти?","Да, очистка кеша (pagecache, dentries, inodes) через `echo 3 > /proc/sys/vm/drop_caches` безопасна. Ядро Linux автоматически управляет кешем, но принудительная очистка может помочь в специфичных случаях, например, после массового удаления файлов.",{"question":4722,"answer":4723},"Какой оптимальный размер swap для сервера?","Для серверов с большим объёмом RAM (16+ ГБ) достаточно swap размером 1-2 ГБ или даже его отсутствия. Для настольных систем и систем с гибернацией рекомендуется размер swap равен 1-1.5x от объёма RAM.",{"question":4725,"answer":4726},"Почему после очистки кеша система стала медленнее?","Кеш ускоряет доступ к часто используемым файлам. Его полная очистка заставляет систему заново читать данные с диска, что временно снижает производительность. Очищайте кеш только при необходимости и не делайте это регулярно.",[4728,4731,4734,4737,4740,4743],{"name":4729,"text":4730},"Проверьте текущее использование памяти","Выполните команды `free -h`, `top` и `vmstat 1 5` для получения полной картины использования RAM, swap и активности ввода-вывода.",{"name":4732,"text":4733},"Проанализируйте процессы-потребители","В `top` нажмите `M` для сортировки по памяти. Или используйте `ps aux --sort=-%mem | head -10`, чтобы найти топ-10 самых прожорливых процессов.",{"name":4735,"text":4736},"Настройте параметр swappiness","Измените значение `vm.swappiness` (по умолчанию 60) на 10-20 для серверов или 10 для десктопов, чтобы ядро реже использовало swap. Добавьте `vm.swappiness=10` в `/etc/sysctl.conf` и примените `sysctl -p`.",{"name":4738,"text":4739},"Оптимизируйте или добавьте swap","Если swap недостаточно, создайте swap-файл: `fallocate -l 2G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile`. Добавьте запись в `/etc/fstab` для постоянного монтирования.",{"name":4741,"text":4742},"Очистите кеш файловой системы (при необходимости)","Для принудительной очистки неиспользуемого кеша выполните `sync; echo 3 > /proc/sys/vm/drop_caches`. Выполняйте только при наличии свободной RAM и после важных операций с диском.",{"name":4744,"text":4745},"Настройте OOM Killer или добавьте RAM","Если система регулярно убивает процессы (OOM), настройте `oom_score_adj` для критичных сервисов или рассмотрите физическое увеличение RAM как самое надёжное решение.","PT25M",[4748,4749,4750,4751,4752,4753,4754,4755,4756],"управление памятью linux","диагностика памяти linux","очистка кеша памяти linux","оптимизация свопа swappiness","команда free linux","top linux память","не хватает памяти ubuntu","увеличить swap linux","ошибка cannot allocate memory",{},[4759,3499,4760],"/guides/linux/linux-disk-space-cleanup","/errors/linux/oom-killer-error","Гайды Linux",{"title":3512,"description":4712},"guides/linux/linux-memory-management","Этот гайд научит вас диагностировать нехватку оперативной памяти в Linux и применять проверенные методы её оптимизации: от настройки свопа до управления кешем и процессами.",[951,4766,4767,3507,4768,104,4769],"memory management","performance tuning","ubuntu","monitoring","2-f6MAPpmvfjJfa7JuP8UTHmWVIVOGqT8gsnDLU4nZQ"]