tmpfs не переполняется для свопа

Вам нужно создать новый режим для нужного разрешения.

Используйте cvt 1366 768, вывод примерно такой:

# 1368x768 59.88 Hz (CVT) hsync: 47.79 kHz; pclk: 85.25 MHz
Modeline "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync

Затем используйте:

> xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync
> xrandr --addmode VGA-0 "1368x768_60.00"

И, наконец, вы можете установить его:

xrandr --output VGA-0 --mode "1368x768_60.00"
3
16.05.2017, 03:46
2 ответа

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

Заголовок вашего вопроса «tmpfs не переполняется для свопинга», похоже, не отражает фактического содержания вашего вопроса, но в любом случае tmpfs действительно использует своп, хотя, возможно, он не переполняется для обмена. tmpfs — это (виртуальная) файловая система в памяти; его содержимое живет только в памяти, но, поскольку оно может быть заменено, ядро ​​может при необходимости сохранить его в свопе вместо физической памяти. Тем не менее файловые системы tmpfs не могут быть больше общего объема доступной виртуальной памяти, т.е. физическая оперативная память и подкачка, как указано например. по бесплатно -h.

По умолчанию файловые системы tmpfs имеют максимальный размер, равный половине объема доступной физической памяти. Вы можете увеличить его, используя параметр size, но опять же, он не может быть больше, чем доступная физическая память и подкачка (хотя это ограничение не применяется во время монтирования). Как только файловая система достигает своего максимального размера (точнее, содержит файлы, занимающие столько места), она сообщает, что ей не хватает места, как вы выяснили. tmpfs сам по себе не поддерживает переполнение в любом месте, когда ему не хватает места.

Если вам нужно временное место для хранения больших файлов, используйте /var/tmp, а не /tmp. Вам действительно не нужна очень большая tmpfs файловая система, это прямой путь к катастрофе, когда она переполняется (обычные способы восстановления памяти ядра не работают в tmpfs) .

(Конечно, если у вас много ОЗУ, большой tmpfs может работать. Я запускаю несколько систем со сборкой файловых систем tmpfs размером 75% ОЗУ, из 32 ГБ, 64 ГБ или даже больше.)

14
27.01.2020, 21:10

Вы можете использовать что-то вроде aufs . Это позволяет вам «объединить» два разных монтирования в одном каталоге. Таким образом, в этом случае вы можете смонтировать где-нибудь и том tmpfs, и обычную директорию на диске, а затем объединить их с помощью aufs as /tmp. Вы даже можете назначать приоритеты, поэтому сначала будет использоваться tmpfs, а диск будет использоваться только тогда, когда tmpfs закончится место.

Однако это не идеальное решение, потому что aufs работает для каждого файла. Таким образом, если какой-либо процесс создает файл, который начинает медленно увеличиваться за пределы размера tmpfs, он не будет «переключать» тома, когда tmpfs заполнен. Это просто закончится пространство (или какая-то общая ошибка ввода-вывода, поскольку технически в/tmp)все еще остается место. Но во многих сценариях это может помочь иметь /tmpв памяти и просто вернуться к диску, когда он станет слишком большим.

0
27.01.2020, 21:10

Теги

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