Управление памятью в linux

Команда !thread и анализ драйверов

Самая распространенная причина возникновения BSOD – это сторонние драйверы (производителей устройств). Для того, чтобы увидеть фигурирует ли драйвер устройства в дампе нам понадобится просмотреть стек.Выполните команду !thread и найдите в результатах ее выполнения Base и Limit, и их шестнадцатеричные значения.В рассматриваемом примере они такие:Base fffff80000b9b000 Limit fffff80000b95000

В командной строке напечатайте dps затем через пробел шестнацатеричное значение Limit, а за ним значение Base. В данном случае важен порядок указания значений – он должен быть обратным отображаемому в результате выполнения команды !thread.

Когда стек будет загружен вы увидите множество строк с текстом и значениями. Среди результатов выполнения команды поищите сообщения об ошибках с указанием на драйверы. В рассматриваемом примере это драйвер igdkmd64.sys и iaStorA.sys а в отладчике это выглядит так:

Поищите на компьютере указанные драйверы. Это не обязательно, но желательно сделать т.к. после удаления драйвера из диспетчера устройств или при помощи программы удаления производителя устройства драйвер может быть не удален, в таком случае его можно будет удалить вручную. Вторая причина заключается в том, что это может быть файл вредоносной программы (вирус, троян, майнер и т.д.), и в таких случаях драйвер как правило располагается в необычных для этого папках.Для упрощения процедуры выполните в командной строке, запущенной от имени администратора следующую команду:

После выполнения команды на рабочем столе будет создан файл drivers.txt, содержащий подробную информацию обо всех установленных в системе драйверах, с их описанием и путями расположения файла драйвера.

В рассматриваемом примере вероятными виновниками возникновения BSOD оказались драйверы видеокарты Intel (igdkmd64.sys) и SATA/AHCI-контроллера (iaStorA.sys).

Стоит отметить, что не всегда причиной возникновения BSOD являются драйверы, это также может быть следствием неисправности оборудования, но если код ошибки указывает на проблему с драйвером, то рекомендуется воспользоваться средством проверки драйверов Windows.

Как посмотреть swap в Linux

Прежде чем приступить к процессу добавления, настройки или удаление файла подкачки, необходимо проверить его наличие. Для этого проще всего использовать приведенную ниже команду. В нашем случае она выглядит так:

Используемая команда отображает размер файла подкачки вашей операционной системы. Однако, по ее результатам мы не можем определить – это файл подкачки или раздел подкачки. Поэтому будем использовать дополнительный другую команду, чтобы посмотреть swap linux. Вводим в терминал следующее:

Как видите, в нашем случае под swap выделено 1.4 Гб и это файл. То есть, он находится не на отдельном разделе, а на том же диске, на котором установлена операционная система.

Если это будет отдельный логический том, то под надписью «TYPE» мы увидим слово «partition».

Если бы файл подкачки в вашей операционной системе отсутствовал, результат работы команды free -h выглядел бы примерно так:

То есть, вместо каких-либо данных о файле подкачки вы увидите нули.

Создание резервных копий

Команда dump сканирует файл /etc/dumpdates на предмет того, как давно создавался последний архив. С помощью ключа -u можно заставить dump самостоятельно после завершения резервного копирования обновлять вышеуказанный файл, занося в него информацию о дате, имени файловой системы и уровне архива. Без использования ключа -u (если он вообще ни разу не использовался) все архивы будут иметь нулевой уровень.

Для выбора внешнего устройства для хранения резервной копии существует ключ -f, иначе будет использоваться устройство по-умолчанию, как правило, это ленточный носитель.

Итак, для создания резервной копии утилитой dump нужно дать следующую команду:

$ sudo dump -0u -f /dev/sdd1 /home

Или для варианта с ленточным носителем:

$ sudo dump -0u -f stationone:/dev/nst0 /home

Здесь с ключом -u задаётся нулевой уровень архива (0), а ключом -f – устройство /dev/sdd1 для сохранения резервной копии файловой системы /home. Удалённый носитель (во втором примере ленточный носитель nst0) задаётся в формате имя_компьютера:устройство.

Настройка создания дампов памяти при ошибках Windows 10

Для того, чтобы включить автоматическое сохранение файла дампа памяти системных ошибок достаточно выполнить следующие простые шаги.

Опция «Автоматический дамп памяти» сохраняет снимок памяти ядра Windows 10 с необходимой отладочной информацией, а также память, выделенную для устройств, драйверов и ПО, работающего на уровне ядра. Также, при выборе автоматического дампа памяти, в папке C:WindowsMinidump сохраняются малые дампы памяти. В большинстве случаев этот параметр оптимален.

Помимо «Автоматический дамп памяти» в параметрах сохранения отладочной информации есть и другие варианты:

В случае, если вам нужно удалить дамп памяти, вы можете сделать это вручную, удалив файл MEMORY.DMP в системной папке Windows и файлы, содержащиеся в папке Minidump. Также можно использовать утилиту «Очистка диска» Windows (нажать клавиши Win+R, ввести cleanmgr и нажать Enter). В «Очистке диска» нажмите кнопку «Очистить системные файлы», а затем в списке отметьте файла дампа памяти для системных ошибок, чтобы удалить их (при отсутствии таких пунктов можно предположить, что дампы памяти пока не создавались).

Ну и в завершение о том, почему может быть отключено создание дампов памяти (или отключаться само после включения): чаще всего причиной являются программы для очистки компьютера и оптимизации работы системы, а также софт для оптимизации работы SSD, который также может отключать их создание.

Получение информацию о компьютере

Для начала надо искать информа­цию о:

  • про­цес­сах;
  • ис­тории бра­узе­ра;
  • ис­тории запущен­ных команд в кон­соли.

Этих 3 пун­ктов хва­тит для опре­деле­ния направления даль­нейшей раз­ведки.

Процессы

Что­бы най­ти про­цес­сы, нам дос­таточ­но исполь­зовать коман­ду pstree. Есть еще pslist, но пер­вая коман­да удоб­нее, потому что показы­вает про­цес­сы в виде дерева — так нам­ного про­ще понять, на какие из них сто­ит обра­тить вни­мание.

1 $vol.py-fchallenge.vmem—profile Win10x64_18362 pstree

Ни­чего бро­сающе­гося в гла­за, вро­де pswd_manager.exe или not_a_virus.exe, не вид­но, поэто­му про­дол­жим нашу раз­ведку.

История браузера

Хоть в хин­те (см. первый скрин) и говори­лось, что «уда­лен­ный» не обя­затель­но зна­чит «бра­узер», мы про­верим этот век­тор. В Volatility есть готовый пла­гин для прос­мотра исто­рии Internet Explorer — iehistory. И не говорите, что им уже ник­то не поль­зует­ся!

1 $vol.py-fchallenge.vmem—profile Win10x64_18362 iehistory

Ко­ман­да работа­ла слиш­ком дол­го на моей машине (поряд­ка 20 минут) и завер­шать­ся не пла­ниро­вала. Это не счи­тает­ся нор­маль­ным поведе­нием для Volatility, сле­дова­тель­но, тут искать нечего.

Ес­ли вы подума­ете сос­тавлять задач­ки для CTF — имейте в виду, что задачи, в которых надо по пол­часа бру­тить извра­щен­ные пароли или искать неуло­вимый API endpoint, ник­то не любит, и сле­дующую задачу вам доверят делать еще не ско­ро.

Список команд в консоли

Есть еще одна удоб­ная фун­кция для про­вер­ки всех вве­ден­ных в кон­соль команд. Воз­можно, поль­зователь запус­кал что‑нибудь из кон­соли или хра­нил там важ­ные дан­ные (нап­ример, флаг). Про­верить все из кон­соли мож­но с помощью коман­ды cmdscan.

1 $vol.py-fchallenge.vmem—profile Win10x6_18362 cmdscan

Тут чис­то — сле­дова­тель­но, тер­минал тоже не при делах.

Полезный прием при анализе оперативной памяти

Пос­коль­ку до сих пор не наш­лось ничего инте­рес­ного — мы что‑то упус­тили. Мож­но при­менить еще один полез­ный при­ем при ана­лизе опе­ратив­ной памяти — пос­мотреть на скрин­шот рабоче­го сто­ла. Помога­ет он не силь­но час­то, но поз­воля­ет уви­деть более пол­ную кар­тину.

Сде­лать скрин­шот всех окон про­цес­сов в сис­теме мож­но с помощью коман­ды screenshot. Обя­затель­но нуж­но ука­зать сущес­тву­ющую конеч­ную дирек­торию, где будут находить­ся все сним­ки.

Важ­но понимать, что боль­шинс­тво кар­тинок будут пус­тыми: это свя­зано с тем, что не все окна вооб­ще могут отоб­ражать­ся (для луч­шего понима­ния рекомен­дую озна­комить­ся с до­кумен­таци­ей).

1 $vol.py-fchallenge.vmem—profile Win10x64_18362 screenshot-Dshot/

К сожале­нию, коман­да закан­чива­ется с ошиб­кой, так что этот трюк тоже не про­шел и нам сто­ит вер­нуть­ся к самому началу.

vmstat

Утилита командной строки vmstat отображает статистические данные по использованию CPU, памяти, прерываний и ввода вывода на диск. Команда показывает не только физическую память (всего, использовано, кэшировано, буферизировано), но и статистику по виртуальной памяти (количество страниц в подкачке и т д)

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux интересуюсь всем, что связано с информационными технологиями и современной наукой.

9 комментариев

Ваш сайт все интереснее от стать к статье.

Возможно не совсем в тему. Подскажите пожалуйста почему Linux Mint 17, может не видеть оперативную память? В биосе определяется 2 Гб, Win XP, установленная на этом же компьютере, тоже определяет 2 Гб, Mint, упорно показывает 1. В какую сторону думать?

Даже не знаю. попробуйте поспрашивать на специализированных форумах по аппаратному обеспечению.

Я грешу на опцию ядра highmem, но как проверить не знаю. Может попробывать другую версию ядра, сейчас стоит 3.13.0.24, не подскажите какое ядро лучше поставить?

Ставьте 4.4 или 4.6. Обычно во всех современных дистрибутивах ядро собрано с поддержкой highmem, но можете попробовать пересобрать. Также можно попробовать указать количество памяти в параметрах загрузки ядра с помощью опции mem (в мегабайтах)

Это в файле /boot/grub/grub.cfg?

Здравствуйте! Почему используется виртуальная память, когда ещё физической (озу) достаточно? В sysctl.conf добавил vm.swappiness = 10 vm.vfs_cache_pressure = 1000 ОЗУ 8ГБ, при 1-1,5ГБ уже используется swap, хотя должен при 10% свободной. Linux Debian 8. На Ubuntu Server 14.04 LTS эти же настройки работали.

Сервер на debian 14.04 на борту MySQL и nginx с виртуальными хостами Ужасно тормозят сайты использующие локальную БД (одна страница может открываться до 60 секунд) При таком раскладе это нормально (дело в нехватки ОЗУ? ведь в кэше 2549976 kB) или ковырять конфиги MySQL?

MemTotal: 4043988 kB MemFree: 246324 kB MemAvailable: 2816676 kB Buffers: 217996 kB Cached: 2549976 kB SwapCached: 0 kB Active: 2036160 kB Inactive: 1559340 kB Active(anon): 442784 kB Inactive(anon): 453880 kB Active(file): 1593376 kB Inactive(file): 1105460 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 8388604 kB SwapFree: 8388352 kB Dirty: 100 kB Writeback: 0 kB AnonPages: 827528 kB Mapped: 100952 kB Shmem: 69136 kB Slab: 166384 kB SReclaimable: 149268 kB SUnreclaim: 17116 kB KernelStack: 2608 kB PageTables: 11508 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 10410596 kB Committed_AS: 1655292 kB VmallocTotal: 34359738367 kB VmallocUsed: 0 kB VmallocChunk: 0 kB HardwareCorrupted: 0 kB AnonHugePages: 690176 kB CmaTotal: 0 kB CmaFree: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 58944 kB DirectMap2M: 4132864 kB

total used free shared buffers cached Mem: 3.9G 3.6G 232M 67M 213M 2.4G -/+ buffers/cache: 1.0G 2.9G Swap: 8.0G 252K 8.0G

Оперативная память (ОЗУ — оперативное запоминающее устройство или RAM — Random Access Memory ) — это та память, в которой хранятся исполняемые процессором программы — машинный код, файлы и любые данные для оперативной работы с ними, она энергозависима, то есть очищается при перезапуске или выключении ПК. При сохранении файла, после оперативной работы с ним, происходит его запись в ПЗУ — постоянное запоминающее устройство — жесткий диск или любой другой энергонезависимый накопитель.

От объема «оперативки» зависит количество программ или же, например, вкладок браузера, которые могут быть запущены одновременно в системе. Что интересно: при переходе компьютера в режим сна операционная система записывает весь массив данных, содержащихся в ОЗУ, в полном объеме (дамп) на жесткий диск, а после пробуждения эти данные возвращаются в «оперативку». Именно поэтому после выхода из режима сна мы получаем рабочее окружение с уже запущенными программами, которые были активны перед переходом в режим гибернации (сна).

Исходя из вышенаписанного следует вывод, что ОЗУ — важная часть компьютера, к информации о которой необходимо иметь доступ любому пользователю системы Ubuntu. Поэтому сегодня мы рассмотрим такие вопросы, как:

  • Сколько доступно свободной оперативной памяти и каков ее полный объем
  • Какой тип у установленной оперативной памяти
  • Есть ли ошибки в оперативной памяти

Команды в статье приведены для исполнения их в терминале Ubuntu — Как открыть терминал

Как освободить кэш память в Linux

В каждом дистрибутиве Linux можно использовать три команды чтобы очистить кэш памяти linux. Причем вам не придется завершать никаких процессов. Сначала войдите в консоль от имени суперпользователя:

Затем выполните одну из команд. Очистка кэша PageCache:

Очистка inode и dentrie:

Очистка inode и dentrie и PageCache:

А теперь давайте рассмотрим что происходит при выполнении этих команд.

Утилита sync заставляет систему записать все кэшированные, но еще не записанные данные на диск. Это нужно чтобы освободить как можно больше памяти. По умолчанию данные после записи на диск не удаляются из кэша, это нужно для того, чтобы программа могла быстрее их считать при необходимости.

Если не выполнить команду sync мы тоже освободим немного места, но после ее выполнения результат будет лучше.

Символ разделения ; дает знать оболочке, что перед тем как выполнить другую команду, нужно дождаться завершения работы первой. Последняя команда echo 1 > /proc/sys/vm/drop_caches записывает значение 1 в файл /proc/sys/vm/drop_caches. Это дает сигнал ядру, что нужно очистить выбранный нами вид кэша.

Виды кэша в Linux

А теперь давайте рассмотрим виды кэша, которые позволяют очищать эти команды, а также как все это работает.

PageCache или страничный кэш — это место, куда ядро складывает все данные, которые вы записывали или читали из диска. Это очень сильно ускоряет работу системы, так как если программе во второй раз понадобятся те же данные, они просто будут взяты из оперативной памяти. Но по этой причине этот кэш занимает больше всего места.

Посмотреть размер страничного кэша можно с помощью утилиты free. Здесь он показан в последней колонке — cached:

Такой кэш чистить эффективнее и безопаснее всего.

Кэш inode и dentrie тоже относится к файловой системе. Только в него записываются не сами данные, а структура файловой системы, расположение файлов и папок. При запросе расположения файла или содержимого папки ядро формирует специальные структуры, в которых есть вся эта информация. При следующем запросе структуры будут уже сохранены в памяти. Для каждой файловой системы существует свой кэш inode и общий кэш dentrie.

Этот кэш занимает очень мало памяти. Данные представлены в байтах, и как видите, это очень мало. Посмотреть его можно командой:

Очищать его чтобы освободить память linux не рекомендуется, так как памяти потребляется немного, а на новое сканирование файловой системы идет относительно много времени.

Нужно ли очищать кэш вообще?

Во-первых, если занято очень много памяти, вы можете очистить страничный кэш, особенно если это он занимает много памяти. Во-вторых, очистить кэш памяти linux может понадобиться, если вы изменяли какие-либо настройки файловой системы или ядра, а теперь хотите проверить как это отразилось на скорости операций чтения/записи. В таком случае можно очистить все кэши и сделать это без перезагрузки, что очень удобно.

Операционная система Linux разработана таким образом, что перед тем как обратиться к диску, будет просмотрен кэш диска, и если там есть нужные данные, к диску обращений не будет. Если очистить кэш Linux то операционная система будет работать немного медленнее, поскольку ей придется искать данные на диске.

Автоматическая очистка кэша

Давайте рассмотрим как автоматически очистить кэш памяти ежедневно в два часа ночи с помощью планировщика заданий cron.

Сначала создадим bash скрипт со следующим содержимым:

Очищать будем только страничный кэш, так как он занимает больше всего. Другие виды трогать не будем, чтобы зря не понижать производительность системы.

Дальше сделайте скрипт исполняемым:

Осталось добавить задание в планировщик cron. Для этого выполните команду:

И в открывшемся редакторе добавьте строчку:

Теперь этот скрипт будет выполняться каждую ночь и выполнять очистку памяти, чтобы сервер мог работать нормально.

COLOPHON top

       This page is part of the systemd (systemd system and service
       manager) project.  Information about the project can be found at
       ⟨http://www.freedesktop.org/wiki/Software/systemd⟩.  If you have
       a bug report for this manual page, see
       ⟨⟩.
       This page was obtained from the project's upstream Git repository
       ⟨https://github.com/systemd/systemd.git⟩ on 2021-08-27.  (At that
       time, the date of the most recent commit that was found in the
       repository was 2021-08-27.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there
       is a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to
       [email protected]

systemd 249                                          SYSTEMD-COREDUMP(8)

Pages that refer to this page:
coredumpctl(1), 
core(5), 
coredump.conf(5), 
systemd-journald.service(8)

Using Signals to Generate a Core Dump

In this section, we’ll learn how to terminate a program and force it to produce a core dump. For this, we’ll use the kill command which uses signals to terminate an application. These signals produce core dumps.

If we look at the table provided by the man page of signal, we can see a list of signals which terminate the programs with a core dump. These are signals that have an Action identified with Core:

As an example, let’s use sleep as a program that runs indefinitely:

We can see the message of “core dumped” indicates a successful core dump. We also notice “Trace/breakpoint trap” which indicates the signal of SIGTRAP.

Now that we have this framework in place, let’s see how core dumps are configured.

Disable core dumps

It makes sense to disable any core dumps on Linux by default for all your systems. This is because the files take up disk space and may contain sensitive data. So if you don’t need the core dumps for troubleshooting purposes, disabling them is a safe option.

Option 1: ulimit via the configuration file

To disable core dumps we need to set a  value. This is done via the /etc/security/limits.conf file and defines some shell specific restrictions.

Good to know is that there are soft and hard limits. A hard limit is something that never can be overridden, while a soft limit might only be applicable for specific users. If we would like to ensure that no process can create a core dump, we can set them both to zero. Although it may look like a boolean (0 = False, 1 = True), it actually indicates the allowed size.

The asterisk sign means it applies to all users. The second column states if we want to use a hard or soft limit, followed by the columns stating the setting and the value.

Option 2: configure ulimit via profile

The values for ulimit can also be set via /etc/profile or a custom file in the /etc/profile.d directory. The latter is preferred when it is available. For example by creating a file named /etc/profile.d/disable-coredumps.sh.

This command adds the setting to a new file and sets both the soft and hard limit to zero. Each user gets this value when logging in.

Besides ulimit settings, there are also kernel settings to consider. So choosing one of the options is the first step.

Option 3: disable via systemd

When using systemd and the systemd-coredump service, change the coredump.conf file. This file is most likely located at /usr/lib/sysctl.d/50-coredump.conf. As systemd has a set of files, ensure to check the others like:

Set the Storage setting to ‘none’. Then configure ProcessSizeMax to limited the maximum size to zero.

Typically it is sufficient to just reload the systemd configuration.

If this still creates a core dump, then reboot the system.

Disable setuid processes dumping their memory

Processes with elevated permissions (or the setuid bit), might be still able to perform a core dump, depending on your other settings. As these processes usually have more access, they might contain more sensitive data segments in memory. So time to change this as well. The behavior can be altered with a sysctl key, or directly via the /proc file system. For permanent settings, the sysctl command and configuration is typically used. A setting is called a ‘key’, which has a related value attached to it (also known as a key-value pair).

To disable program with the setuid bit to dump, set the fs.suid_dumpable to zero.

Reload the sysctl configuration with the -p flag to activate any changes you made.

Just want to test without making permanent changes? Use  followed by the key=value.

Tip: Using sysctl you can tune your system and is a good way to harden the Linux kernel.

Восстановление файлов из резервных архивов

Чтобы восстановить отдельные файлы из резервных копий, следует воспользоваться командой restore. Эта команда обладает большим набором опций для выполнения. Среди которых одной из самых важных является -i – этот ключ позволяет работать с восстановлением в интерактивном режиме. Также имеются опции -r – для восстановления файловой системы целиком. И -x – для автоматического восстановления заранее указанных файлов.

В интерактивном режиме (ключ -i) команда restore сначала читает состав содержимого архива, после чего даёт возможность пользователю перемещаться по этому содержимому как по дереву каталогов в файловой системе, используя команды cd, ls и pwd. Чтобы восстановить требуемые файлы, нужно сначала добавить их в список восстановления командой add. Для восстановления выбранных (добавленных в список восстановления) файлов нужно выполнить команду extract. Также можно удалять файлы из списка восстановления — командой delete. Пример:

$ sudo mkdir /var/restore$ cd /var/restore$ sudo ssh stationone mt -f /dev/nst0 fsf 2$ sudo restore -i -f stationone:/dev/nst0restore> lsjohn/ michael/ lost+found/ bob/restore> cd bobrestore> lsresume fileone filetwo filesomerestore> add resumerestore> lsresume* fileone filetwo filesomerestore> extractYou have not read any volumes yet.Unless you know which volume your files are on you shouldstart with the last volume and work towards the first.Specify next volume #: 1set owner/mode for '.'?  n

В приведённом примере показан наиболее общий и «суровый» случай, когда нужно восстановить архив с удалённого ленточного носителя по SSH. Здесь также используется перемотка ленты командой mt для перехода к нужному архиву — это тот случай, когда на одной ленте их несколько. В качестве параметров команде mt передаются: удаленное устройство и параметры перемотки — fsf 3, т. е. лента должна быть перемотана вперёд на 3 файла. Если архив умещается на одной ленте, то на запрос «Specify next volume #:» нужно ввести 1. Также нужно определить, должен ли текущий каталог соответствовать корневому каталогу текущей ленты и если восстанавливается не вся файловая система целиком, то можно ответить «n» — нет. Восстановление производится в текущий каталог /var/restore.

Ограничение процессов

Управление процессами в Linux позволяет контролировать практически все. Вы уже видели что можно сделать, но можно еще больше. С помощью команды ulimit и конфигурационного файла /etc/security/limits.conf вы можете ограничить процессам доступ к системным ресурсам, таким как память, файлы и процессор. Например, вы можете ограничить память процесса Linux, количество файлов и т д.

Запись в файле имеет следующий вид:

<домен> <тип> <элемент> <значение>

  • домен — имя пользователя, группы или UID
  • тип — вид ограничений — soft или hard
  • элемент — ресурс который будет ограничен
  • значение — необходимый предел

Жесткие ограничения устанавливаются суперпользователем и не могут быть изменены обычными пользователями. Мягкие, soft ограничения могут меняться пользователями с помощью команды ulimit.

Рассмотрим основные ограничения, которые можно применить к процессам:

  • nofile — максимальное количество открытых файлов
  • as — максимальное количество оперативной памяти
  • stack — максимальный размер стека
  • cpu — максимальное процессорное время
  • nproc — максимальное количество ядер процессора
  • locks — количество заблокированных файлов
  • nice — максимальный приоритет процесса

Например, ограничим процессорное время для процессов пользователя sergiy:

Посмотреть ограничения для определенного процесса вы можете в папке proc:

Ограничения, измененные, таким образом вступят в силу после перезагрузки. Но мы можем и устанавливать ограничения для текущего командного интерпретатора и создаваемых им процессов с помощью команды ulimit.

Вот опции команды:

  • -S — мягкое ограничение
  • -H — жесткое ограничение
  • -a — вывести всю информацию
  • -f — максимальный размер создаваемых файлов
  • -n — максимальное количество открытых файлов
  • -s — максимальный размер стека
  • -t — максимальное количество процессорного времени
  • -u — максимальное количество запущенных процессов
  • -v — максимальный объем виртуальной памяти

Например, мы можем установить новое ограничение для количества открываемых файлов:

Теперь смотрим:

Установим лимит оперативной памяти:

Напоминаю, что это ограничение будет актуально для всех программ, выполняемых в этом терминале.

Как разрешить монтирование любых дисков без ввода пароля?¶

По умолчанию пароль не запрашивается только при монтировании сменных накопителей, однако если требуется реализовать это для любых, потребуется добавить новое правило Polkit.

Создадим новый конфиг:

sudo touch /etc/polkit-1/rules.d/10-mount-nopass.rules
sudo chmod 0644 /etc/polkit-1/rules.d/10-mount-nopass.rules

Загрузим его в текстовом редакторе:

sudoedit /etc/polkit-1/rules.d/10-mount-nopass.rules

Добавим следующее правило:

polkit.addRule(function(action, subject) {
    if ((action.id == "org.freedesktop.udisks2.filesystem-mount-system" ||
        action.id == "org.freedesktop.udisks.filesystem-mount-system-internal") &&
        subject.local && subject.active && subject.isInGroup("wheel"))
    {
            return polkit.Result.YES;
    }
});

Сохраним изменения в файле.

Создание файла подкачки Linux

Если вы удостоверились в том, что файл подкачки отсутствует, можно переходить к его созданию. Пример, приведенный ниже, будет показан с использованием операционной системы Ubuntu 18.04, но работать это должно и на других дистрибутивах Linux.

Шаг 1: Создаем swap файл

Давайте создадим файл подкачки для нашей Ubuntu. Для примера его размер составит 1 Гб. Запустите терминал и введите команду, приведенную ниже:

Для обеспечения безопасности файла обязательно устанавливаем на него нужные права.

При этом вместо «swapfile» мы можем указать любое другое название.

Шаг 2: Создание файловой системы

Создание swap linux ещё не завершено. Теперь необходимо указать нашей операционной системе, что созданный объект должен использоваться как файл подкачки. Для этого мы будем использовать команду, приведенную ниже:

Если все сделано верно, результат будет выглядеть так:

Шаг 3: Активируем файл подкачки

Хорошо, теперь наш Linux понимает, что это файл подкачки, но этого недостаточно. Нам также необходимо включить SWAP:

Давайте проверим, все ли мы сделали правильно:

Отлично, операционная система распознала наш файл подкачки и начала его использовать. Мы видим тип в поле TYPE и размер в поле SIZE.

Шаг 4. Сохранение изменений после перезагрузки

Все операции, которые мы предприняли выше, временны. Как только компьютер будет перезагружен, они отменятся. Для того чтобы сделать изменения постоянными, нам необходимо дописать кое-какую информацию в /etc/fstab. Для этого поступаем так:

Прежде чем начать работать с файлом, о котором мы говорим, необходимо обязательно создать его резервную копию:

После этого можно переходить непосредственно к добавлению нужных нам данных. Нам надо добавить в файл такую строчку:

Это реализуется через текстовый редактор, запущенный с правами суперпользователя, либо при помощи введенной в терминал команды:

Готово. Изменения сохранены и файл подкачки не сбросится после перезагрузки операционной системы.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: