.\" -*- coding: UTF-8 -*- .\" Copyright (C) 1994, 1995, Daniel Quinlan .\" Copyright (C) 2002-2008, 2017, Michael Kerrisk .\" Copyright (C) , Andries Brouwer .\" Copyright (C) 2023, Alejandro Colomar .\" .\" SPDX-License-Identifier: GPL-3.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH proc_sys_vm 5 "2 мая 2024 г." "Справочные страницы Linux 6.9.1" .SH ИМЯ /proc/sys/vm/ \- virtual memory subsystem .SH ОПИСАНИЕ .TP \fI/proc/sys/vm/\fP Этот каталог содержит файлы для тонкой настройки управления памятью, буферами и кэшем. .TP \fI/proc/sys/vm/overcommit_kbytes\fP (начиная с Linux 3.10) .\" commit 4eeab4f5580d11bffedc697684b91b0bca0d5009 В данном файле задаётся количество свободной памяти (в КиБ) в системе, которое должно быть зарезервировано для пользователей с мандатом \fBCAP_SYS_ADMIN\fP. .IP Значение по умолчанию равно минимум от [3% свободных страниц, 8МиБ], выраженное в КиБ. Этого достаточно для того, чтобы суперпользователь смог войти и удалить процесс, если нужно, когда система работает в режиме по умолчанию — «угадывание» перерасхода (т. е., 0 в \fI/proc/sys/vm/overcommit_memory\fP). .IP Для систем, работающих в режиме «без перерасхода» (overcommit never) (т. е., 2 в \fI/proc/sys/vm/overcommit_memory\fP) нужно увеличить значение в этом файле с учётом полного размера виртуальной памяти для программ, используемых при восстановлении (например, \fBlogin\fP(1) \fBssh\fP(1) и \fBtop\fP(1)). В противном случае суперпользователь не сможет войти для восстановления системы. Например, на x86\-64 подходящим значением будет 131072 (резервируется 128 МиБ). .IP Изменение этого значения влияет на последующие запросы памяти приложениями. .TP \fI/proc/sys/vm/compact_memory\fP (начиная с Linux 2.6.35) При записи в этот файл 1 все зоны уплотняются так, чтобы свободная память была непрерывными блоками насколько это возможно. Результат этого действия можно оценить по файлу \fI/proc/buddyinfo\fP. .IP Доступен только, если ядро собрано с параметром \fBCONFIG_COMPACTION\fP. .TP \fI/proc/sys/vm/drop_caches\fP (начиная с Linux 2.6.16) Запись в этот файл заставляет ядро сбросить чистые кэши, dentries и индексные дескрипторы из памяти, тем самым освобождая её. Это может быть полезно для тестирования управления памятью и выполнения воспроизводимых тестов производительности файловой системы. Так как запись в этот файл вызывает потерю преимуществ кэширования, это может снизить производительность системы в целом. .IP Для освобождения страничного кэша (pagecache) используйте: .IP .in +4n .EX echo 1 > /proc/sys/vm/drop_caches .EE .in .IP Для освобождения dentries и индексных дескрипторов используйте: .IP .in +4n .EX echo 2 > /proc/sys/vm/drop_caches .EE .in .IP Для освобождения страничного кэша, dentries и индексных дескрипторов используйте: .IP .in +4n .EX echo 3 > /proc/sys/vm/drop_caches .EE .in .IP Так как запись в этот файл — неразрушающая операция и изменившиеся (dirty) объекты не свободны, пользователь сначала должен запустить команду \fBsync\fP(1). .TP \fI/proc/sys/vm/sysctl_hugetlb_shm_group\fP (начиная с Linux 2.6.7) This writable file contains a group ID that is allowed to allocate memory using huge pages. If a process has a filesystem group ID or any supplementary group ID that matches this group ID, then it can make huge\-page allocations without holding the \fBCAP_IPC_LOCK\fP capability; see \fBmemfd_create\fP(2), \fBmmap\fP(2), and \fBshmget\fP(2). .TP \fI/proc/sys/vm/legacy_va_layout\fP (начиная с Linux 2.6.9) .\" The following is from Documentation/filesystems/proc.txt Если не равно нулю, то новая раскладка 32\-битного отображения памяти выключается; ядро будет использовать старую (2.4) раскладку для всех процессов. .TP \fI/proc/sys/vm/memory_failure_early_kill\fP (начиная с Linux 2.6.32) .\" The following is based on the text in Documentation/sysctl/vm.txt Управляет, как завершать процессы, когда неисправленная ошибка памяти (обычно, 2\-битная ошибка в модуле памяти), которая не может быть обработана ядром, обнаружена в фоновом режиме аппаратным обеспечением. В некоторых случаях (например, когда страница имеет правильную копию на диске), ядро может может прозрачно исправить ошибку без влияния на приложения. Но если актуальной копии данных нет, то ядро завершит процесс, чтобы остановить распространение повреждения данных. .IP В файле содержатся следующие значения: .RS .TP \fB1\fP При обнаружении завершать все процессы, у которых есть повреждённые и не восстановимые с диска страницы. Заметим, что это поддерживается не для всех типов страниц, например для внутренних данных ядра или кэша подкачки, но работает для большинства пользовательских страниц. .TP \fB0\fP Отключить отображение повреждённой страницы у всех процессов и завершать процессы, только если они пытаются к ней обратиться. .RE .IP Такое завершение выполняется с использованием сигнала \fBSIGBUS\fP с установления значения \fIsi_code\fP равным \fBBUS_MCEERR_AO\fP. Процессы могут обработать такую ситуацию, если захотят; подробней см. \fBsigaction\fP(2). .IP Это свойство активно только на архитектурах/платформах с дополнительными проверки и зависит от возможностей аппаратного обеспечения. .IP Приложения могут изменить настройку \fImemory_failure_early_kill\fP для себя с помощью операции \fBPR_MCE_KILL\fP вызова \fBprctl\fP(2). .IP Доступен только, если ядро собрано с параметром \fBCONFIG_MEMORY_FAILURE\fP. .TP \fI/proc/sys/vm/memory_failure_recovery\fP (начиная с Linux 2.6.32) .\" The following is based on the text in Documentation/sysctl/vm.txt Включает восстановление отказов памяти (если поддерживается платформой). .RS .TP \fB1\fP Пытаться восстановить. .TP \fB0\fP При отказе памяти всегда доводить до паники. .RE .IP Доступен только, если ядро собрано с параметром \fBCONFIG_MEMORY_FAILURE\fP. .TP \fI/proc/sys/vm/oom_dump_tasks\fP (начиная с Linux 2.6.25) .\" The following is from Documentation/sysctl/vm.txt Включает системный дамп задач (исключая ядерные нити), который создаётся когда ядро выполняет OOM\-killing. Дамп включает следующую информацию по каждой задаче (нити, процессу): ID нити, реальный ID пользователя, ID группы нитей (ID процесса), размер виртуальной памяти, размер резидентной настройки, процессор, на котором работала задача, счётчик oom_adj (описание смотрите в \fI/proc/\fPpid\fI/oom_adj\fP) и имя команды. Эти данные полезны для определения того, почему был вызван OOM\-killer и нахождения экземпляра задачи, его вызвавшего. .IP Если в файле содержится нулевое значение, то информация не выдаётся. На очень больших системах с тысячами задач дамп информации о состоянии памяти может быть неосуществим по каждой задаче. Системы не должны страдать от потери производительности из\-за возникновения ситуаций с OOM, если такая информация ненужна. .IP Если задано ненулевое значение, то эта информация показывается в момент когда OOM\-killer завершает захватившую память задачу. .IP Значение по умолчанию равно 0. .TP \fI/proc/sys/vm/oom_kill_allocating_task\fP (начиная с Linux 2.6.24) .\" The following is from Documentation/sysctl/vm.txt Включает или выключает задачу завершения при OOM (исчерпание свободной памяти). .IP Если это значение равно нулю, то OOM\-killer будет сканировать весь список задач и выбирать задачу для завершения на основе набора эвристических правил. Обычно выбирается задача, которая больше всех захватила памяти, что при её завершении позволит освободить огромное количество памяти. .IP Если это значение не равно нулю, то OOM\-killer просто завершит задачу, из\-за которой возникла ситуация нехватки памяти. Это позволяет избежать затратной операции сканирования списка задач. .IP Если \fI/proc/sys/vm/panic_on_oom\fP не равно нулю, то оно имеет приоритет над значением из \fI/proc/sys/vm/oom_kill_allocating_task\fP. .IP Значение по умолчанию равно 0. .TP \fI/proc/sys/vm/overcommit_kbytes\fP (начиная с Linux 3.14) .\" commit 49f0ce5f92321cdcf741e35f385669a421013cb7 Данный, доступный на запись файл является альтернативой управлению \fICommitLimit\fP через \fI/proc/sys/vm/overcommit_ratio\fP, когда \fI/proc/sys/vm/overcommit_memory\fP содержит значение 2. Это позволяет задать количество перерасходуемой памяти (memory overcommitting) абсолютным значением (в КБ), а не в виде процента, как это делается через \fIovercommit_ratio\fP. Это предоставляет более точный контроль \fICommitLimit\fP в системах с очень большим объёмом памяти. .IP Может задействовать либо \fIovercommit_kbytes\fP, либо \fIovercommit_ratio\fP: если значение \fIovercommit_kbytes\fP не равно нулю, то оно используется для вычисления, в противном случае используется \fIovercommit_ratio\fP. Запись значения в один из этих файлов приводит к обнулению значения в другом файле. .TP \fI/proc/sys/vm/overcommit_memory\fP Этот файл содержит значение режима учёта виртуальной памяти ядра. Значения: .RS .IP 0: эвристический перерасход (значение по умолчанию) .br 1: всегда разрешать перерасход, не проверять .br 2: всегда проверять, запретить перерасход .RE .IP В режиме 0 вызов \fBmmap\fP(2) с \fBMAP_NORESERVE\fP не проверяется, и проверка по умолчанию очень поверхностная, что может привести к завершению процесса с помощью OOM\-killer. .IP In mode 1, the kernel pretends there is always enough memory, until memory actually runs out. One use case for this mode is scientific computing applications that employ large sparse arrays. Before Linux 2.6.0, any nonzero value implies mode 1. .IP В режиме 2 (доступен начиная с Linux 2.6), общее виртуальное адресное пространство, которое можно выделить (\fICommitLimit\fP в \fI/proc/meminfo\fP) вычисляется по формуле .IP .in +4n .EX CommitLimit = (total_RAM \- total_huge_TLB) * overcommit_ratio / 100 + total_swap .EE .in .IP где: .RS .IP \[bu] 3 \fItotal_RAM\fP — общее количество физической памяти в системе; .IP \[bu] \fItotal_huge_TLB\fP — количество памяти без учёта огромных страниц; .IP \[bu] \fIovercommit_ratio\fP — значение в \fI/proc/sys/vm/overcommit_ratio\fP; и .IP \[bu] \fItotal_swap\fP — размер пространства подкачки. .RE .IP Например, в системе с 16 ГБ физической памяти, 16 ГБ подкачки, без выделения огромных страниц и с \fIovercommit_ratio\fP равным 50 по этой формуле значение \fICommitLimit\fP равно 24 ГБ. .IP Начиная с Linux 3.14, если значение в \fI/proc/sys/vm/overcommit_kbytes\fP не равно нулю, то \fICommitLimit\fP вычисляется так: .IP .in +4n .EX CommitLimit = overcommit_kbytes + total_swap .EE .in .IP Также смотрите описание \fI/proc/sys/vm/admin_reserve_kbytes\fP и \fI/proc/sys/vm/user_reserve_kbytes\fP. .TP \fI/proc/sys/vm/overcommit_ratio\fP (начиная с Linux 2.6.0) Доступный на запись файл содержит процент памяти, который может быть перерасходован (overcommitted). Значение по умолчанию равно 50. Смотрите описание \fI/proc/sys/vm/overcommit_memory\fP. .TP \fI/proc/sys/vm/panic_on_oom\fP (начиная с Linux 2.6.18) .\" The following is adapted from Documentation/sysctl/vm.txt Включает или отключает панику ядра при нехватке памяти. .IP Если значение равно 0, то ядерный OOM\-killer завершит какой\-нибудь вышедший из подчинения процесс. Обычно, OOM\-killer способен завершить такой процесс и система продолжит работу. .IP Если значение в файле равно 1, то ядро, обычно, переходит в состояние паники при нехватке памяти. Однако, если процесс ограничен в выделении определённых элементов (nodes) согласно политике памяти (\fBmbind\fP(2) \fBMPOL_BIND\fP) или процессора (\fBcpuset\fP(7)) и предел таких элементов памяти был достигнут, то такой процесс может быть завершён OOM\-killer. В этом случае состояние паники не возникнет, так как другие элементы памяти могут освободиться, что означает, что система в целом может не прийти к ситуации нехватки памяти. .IP Если значение в файле равно 2, то ядро всегда переходит в состояние паники, когда возникает нехватка памяти. .IP Значение по умолчанию равно 0. Значение 1 и 2 используются для отказоустойчивости кластеров. Выберите любое согласно вашей политике отказоустойчивости. .TP \fI/proc/sys/vm/swappiness\fP .\" The following is from Documentation/sysctl/vm.txt Значение в этом файле определяет, насколько активно ядро будет вытеснять страницы в пространство подкачки. Большие значения увеличивают активность, меньшие значения сокращают активность. По умолчанию значение равно 60. .TP \fI/proc/sys/vm/user_reserve_kbytes\fP (начиная с Linux 3.10) .\" commit c9b1d0981fcce3d9976d7b7a56e4e0503bc610dd Задаёт количество памяти (в КиБ), которая резервируется под процессы пользователя. Предназначена для предотвращения запуска пользовательского процесса, который бы один съел всю память и это нельзя прекратить (завершить такой процесс). Это значение учитывается только, если значение в \fI/proc/sys/vm/overcommit_memory\fP равно 2 (режим «без перерасхода»). В этом случае система резервирует количество памяти, равное, минимум [3% от размера текущего процесса, \fIuser_reserve_kbytes\fP]. .IP Значение по умолчанию равно минимум [3% свободных страниц, 128 МиБ], выражается в КиБ. .IP Если значение в файле равно нулю, то пользователю разрешено выделять всю память под один процесс (за минусом резерва из \fI/proc/sys/vm/admin_reserve_kbytes\fP). Любая последующая попытка выполнить команду будет завершаться «fork: невозможно выделить память». .IP Изменение этого значения влияет на последующие запросы памяти приложениями. .TP \fI/proc/sys/vm/unprivileged_userfaultfd\fP (начиная с Linux 5.2) .\" cefdca0a86be517bc390fc4541e3674b8e7803b0 This (writable) file exposes a flag that controls whether unprivileged processes are allowed to employ \fBuserfaultfd\fP(2). If this file has the value 1, then unprivileged processes may use \fBuserfaultfd\fP(2). If this file has the value 0, then only processes that have the \fBCAP_SYS_PTRACE\fP capability may employ \fBuserfaultfd\fP(2). The default value in this file is 1. .SH "СМОТРИТЕ ТАКЖЕ" \fBproc\fP(5), \fBproc_sys\fP(5) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) Alexey, Azamat Hackimov , kogamatranslator49 , Darima Kogan , Max Is , Yuri Kozlov и Иван Павлов . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .