Советы по использованию Linux без раздела подкачки

Возможным решением также является встроенный в Bash compgen . Эта команда возвращает все возможные совпадения для шаблона подстановки и имеет код выхода, указывающий, совпадают ли какие-либо файлы.

compgen -G "/*.text" > /dev/null && ./script

Я нашел этот вопрос, когда искал более быстрые решения.

7
21.01.2017, 00:57
3 ответа

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

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

Создать файл подкачки довольно просто. Просто создайте большой пустой файл, запустите для него mkswap, затем добавьте подкачку.

# create an big empty 1GB file (or whatever size you like)
dd if=/dev/zero of=/swapfile bs=1M count=1024
# format the file as swap
mkswap /swapfile
# turn it on.
swapon /swapfile

Если вы хотите сделать его постоянным, добавьте его в свой fstab

/swapfile swap swap defaults 0 0
11
27.01.2020, 20:15

Когда я делаю большие компиляции (qtwebkit, я смотрю на вас), я использую контрольную группу, чтобы предотвратить подкачку до смерти или других нежелательных побочных эффектов. Для своего блока 6G я делаю следующее:

cgcreate -g memory:emerge
echo "4G" > /sys/fs/cgroup/memory/emerge/memory.limit_in_bytes
echo "4G" > /sys/fs/cgroup/memory/emerge/memory.memsw.limit_in_bytes
cgexec -g memory:emerge tmux

Если возникает условие OOM, единственный процесс, который будет убит, - это компиляция.

5
27.01.2020, 20:15

Вы также можете пометить определенные процессы, которые с большей или меньшей вероятностью будут уничтожены в ситуациях с нехваткой памяти. Установив значение oom_score_adjдля определенных процессов, вы можете управлять приоритетом их уничтожения.

По умолчанию все процессы имеют оценку 0, и оценка варьируется от -1000 (никогда не убивать )до 1000 (всегда убивать первым ).

Так как Firefox обычно является самым большим виновником использования памяти на моей машине, вместо этого я запускаю его с помощью скрипта:

#!/bin/sh
echo 900 > /proc/self/oom_score_adj
exec /usr/bin/firefox

Это приводит к тому, что Firefox запускается с оценкой OOM 900, что, как единственный процесс с такой высокой оценкой, означает, что он будет немедленно остановлен, как только в системе закончится память.

Я также делаю то же самое, чтобы установить для среды рабочего стола значение -900, чтобы снизить вероятность ее уничтожения, потому что значения по умолчанию означали, что в половине случаев Firefox будет использовать память, а среда рабочего стола будет быть убитым, чтобы освободить память, которая затем вырубила Firefox и все остальные программы вместе с ним! Не хорошо.

0
27.01.2020, 20:15

Теги

Похожие вопросы