The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Ошибка в ядре Linux 5.12-rc1, приводящая к потере данных в ФС"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Ошибка в ядре Linux 5.12-rc1, приводящая к потере данных в Ф..." +1 +/
Сообщение от Аноним (-), 05-Мрт-21, 23:48 
Почитай что такое paging до того как умничать, чтоли? https://en.wikipedia.org/wiki/Memory_paging

Нет, это - не файлы, а страницы памяти. Кусочки памяти, типично 4096 байтов (4Кб) - как юнит управления памяти процессором. С своими атрибутами доступа и прочим.

Это немного пересекается в Linux с файловыми системами - порой достаточно плотно. Но таки своп хранит в себе именно страницы памяти. Которые в данный момент не используются, конечно. Это позволяет расчистить RAM для более востребованных кода и данных. В самом первом приближении это так: если прога долго (или никогда) не юзала какой-то код или данные, в какой-то момент ОС может выкинуть страницу из RAM в своп, а освободившуюся RAM отдать кому-то кому это нужнее, или поюзать под буфер дисков, для ускорения операций IO.

Ну а если прога все же возжелала те код или данные, при попытке туда обратиться... проц делает хардварный эксепшн, мол, невалидный доступ. Приходит ядро и пытается понять что ему делать дальше. Если оно знает где страницу взять (вынуть из свопа, декомпреснуть из zram, принести на голубях, ...) - страница оттуда достается, ядро мухлюет и возвращает программе проц в виде как будто исключений не было а программа никогда и не останавливалась. Пока ядро не вынет страницу, программа чисто технически не может быть продолжена, сие объясняет взвис программ при активном своплении. Ну а если страницы совсем не нашлось - упс - это левый доступ, нате-ка вам SIGSEGV, вы хотите что-то странное. И по дефолту должны за это умереть. Впрочем некоторые программы могут иметь иное мнение на этот счет и попробовать что-то иное. С пониманием того момента что состояние программы в такой ситуации уже врядли является корректным.

Tmpfs - вообще не об этом, он не занимается страницами. В него временные файлы предлагается складировать, в умеренном объеме. Выделяется, это, конечно, из страниц операитвной памяти. Но вот именно расчистить оперативку таким манером - не получится. В случае zram смысл в том что там СЖАТЫЙ блочный девайс из оперативы делается, на чем некий выигрыш. А tmpfs сжатие не умеет вроде, ну и смысл кидать страницы из RAM в RAM как есть? Чтобы потормозить с нулевым эффектом?

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Ошибка в ядре Linux 5.12-rc1, приводящая к потере данных в ФС, opennews, 04-Мрт-21, 22:34  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру