LINUX.ORG.RU

Защитить системные программы в памяти от выгрузки куда попало

 ,


0

3

Привет. А есть решение, как не выгружать из памяти само ядро и основные системные утилиты, например баш, гну/утилиты?
Ещё меня смущает тот момент в «работе» io, что памяти ещё дохера, а при копировании с флешки например, всё лагает. Значит, тут как-то защищать от вылетов из озу уже нет смысла(особенно когда свопа то и нет)), а есть смысл повысить приоритет ionice, поставить по умолчанию его повыше. Есть какие то готовые решения, чтобы не ковырять скрипты?

★★★★★

Последнее исправление: darkenshvein (всего исправлений: 1)

особенно когда свопа то и нет

У тебя место в свопе кончилось или просто нет?
Если второе - тут писали, что у линукса смешное управление страницами, при включённом свопе (не важно какого размера) всё становится как у нормальных систем.
Поэтому попробуй добавить своп на tmpfs, да ещё и сжатом. И да, как ты себе представляешь запуск скрипта при забитой памяти?

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от Shadow

а теперь выдохни, и перечитай выше мой текст ещё раз. возможно, ты понял что-то не то.

darkenshvein ★★★★★
() автор топика
Последнее исправление: darkenshvein (всего исправлений: 1)

как не выгружать из памяти само ядро

Ядро не выгружается из памяти. Представь, что у тебя будет дисковый кеш, выгружаемый в своп. Каково, а?

Вроде как-то можно выгружаемую память в ядре выделить, но я не нашёл. Очевидно, ядро выделяет выгружаемую память для пользовательских процессов. Но не очень понятно, зачем это делать для внутренних нужд.

например баш

Можно попробовать mmap'нуть, а потом mlock'нуть. Не думаю, что поможет.

а есть смысл повысить приоритет ionice

В параметры ядра пробовал dm_mod.use_blk_mq=Y scsi_mod.use_blk_mq=Y добавлять?

i-rinat ★★★★★
()
Ответ на: комментарий от Shadow

И да, как ты себе представляешь запуск скрипта при забитой памяти?

тогда очевидно следует запускать их до старта основных программ, как механизм (из) ядра, например? Какой мне смысл запускать какие то скрипты, когда система УЖЕ не ворочается, ась?

darkenshvein ★★★★★
() автор топика
Ответ на: комментарий от darkenshvein

Да вроде как включает там что-то, от чего планировщик ввода вывода меняется на mq-deadline, в котором якобы добавили давление на кеш. Предположительно, помогает при записи на медленные носители типа флешек.

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

i-rinat ★★★★★
()
Ответ на: комментарий от darkenshvein

A more contemporary option (since kernel version 3.16) is the Multi-Queue Block IO Queuing Mechanism or blk-mq for short. Blk-mq leverages a CPU with multiple cores to map I/O queries to multiple queues. The tasks are distributed across multiple threads and therefore to multiple CPU cores (per-core software queues) and can speed up read/write operations vs. traditional I/O schedulers.

Deleted
()

само ядро и основные системные утилиты, например баш, гну/утилиты

Что значит утилиты? У них что внутри все выделяется при запуске? Ну будет оно в оперативке, а как только запросит что-то, оно и попадет в своп...

при копировании с флешки например, всё лагает.

Где-то течет память либо кэшируется лишнее, если присмотреться то процесс занимает больше оперативки чем нужно, это видно особенно под конец когда остается пару сотен метров и после сброса кэша оперативка забивается под завязку. Либо файл в 1Гб съедает всю оперативку.

LinuxDebian ★★★★
()
Последнее исправление: LinuxDebian (всего исправлений: 2)
Ответ на: комментарий от LinuxDebian

Что значит утилиты? У них что внутри все выделяется при запуске?

очевидно, можно подсчитать, сколько примерно они занимают ОЗУ и выделить место в ОЗУ именно для них, нэ? И ionice сразу подкрутить.

darkenshvein ★★★★★
() автор топика
Ответ на: комментарий от darkenshvein

очевидно
можно подсчитать

Ну тогда код в студию, чего же ты спрашиваешь, если это так очевидно...

Начни с просчета утилиты /bin/cp :)

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

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

LinuxDebian ★★★★
()
Ответ на: комментарий от uuwaan

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

LinuxDebian ★★★★
()
Последнее исправление: LinuxDebian (всего исправлений: 1)
Ответ на: комментарий от LinuxDebian

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

Не только когда мало, а в соответствии с алгоритмом выгрузки в область подкачки. С точки зрения ядра ZRAM-область в памяти – это обычный своп. Экономия физической оперативки – за счёт того, что засвопленные страницы обычно весят меньше.

Если это так эффективно почему оно не используется везде по умолчанию?

В конце статьи на Википедии есть, что эта техника используется в Android, Chrome OS, Ubuntu. Apple тоже рассказывала, что внедрила похожее в Mac OS Mavericks.

uuwaan ★★
()
Ответ на: комментарий от Deleted

Соглашусь. В итоге оба варианта дают область подкачки в ОЗУ, в которой вытесненные страницы сжимаются. Но в варианте с tmpfs намного больше слоёв.

uuwaan ★★
()
Последнее исправление: uuwaan (всего исправлений: 1)

Остаётся ждать новой революционной ФС, ибо всё что существует на данный момент недееспособно на 2017 год.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.