Показать сообщение отдельно
Старый 23.10.2016, 19:55
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 30  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Я там дальше описал почему так думаю.
Делать это через файловую систему плохо по многим причинам. Большинство современных файловых систем поддерживают журнал (т.е. должны писать логи работы с файловой системой для ее восстановления в случае ошибок), что не нужно для хранения временной информации. Кроме этого, к файлам привязано много метаданных (особенно в НТФС), которые тоже нужно обновлять при работе с файлом (чего не нужно делать при работе с временными данными). Кроме этого - дедупликация, которая выгодна для долгосрочного хранения данных, но бесполезна для временного хранения. Кроме того, файловая система как правило более активно борется с фрагментацией (т.е. старается компактнее данные записывать), чего не нужно делать с временными данными. Ну и пользовательские права туда же.

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

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


По поводу того, что происходит когда операционная система перестает выделять память.

1. Память, хоть физическая, хоть виртуальная - конечна. Так что спор о том на сколько жизненно необходим своп решается однозначно - нет, нет такой необходимости. Более того, его как правило нет на боевых машинах обслуживающих програмы реального времени.
2. Что происходит когда память заканчивается: в Линуксе - ООМ-киллер приходит и ищет процессы, которые можно удалить. Если Хрому нужно было больше памяти, чем было возможно выделить, и никаких менее приоритетных процессов не осталось - процесс Хрома будет удален. Как это происходит в Виндовсе - я не знаю, но, наверняка механизм похожий.
__________________
Hell is the possibility of sanity