В чем разница между кешем и буфером в Linux?

by itisgood

Кэш-страницы

Кэш – это часть памяти, которая прозрачно хранит данные, так что будущие запросы на эти данные могут обслуживаться быстрее.

Эта память используется ядром для кэширования данных диска и улучшения производительности ввода-вывода.

Ядро Linux построено таким образом, что будет использовать как можно больше ОЗУ, чтобы кэшировать информацию из локальных и удаленных файловых систем и дисков.

По прошествии времени в системе выполняются различные операции чтения и записи, ядро ​​пытается сохранить данные, хранящиеся в памяти, для различных процессов, которые выполняются в системе, или данных, относящихся к соответствующим процессам, которые будут использоваться в ближайшем будущем , Кэш не восстанавливается в момент, когда процесс получает остановку / выход, однако, когда другим процессам требуется больше памяти, а затем свободной доступной памяти, ядро ​​запускает эвристику для восстановления памяти путем хранения данных кэша и выделения этой памяти в новую.

Когда запрашивается какой-либо файл / данные, ядро ​​будет искать копию части файла, с которой работает пользователь, и, если такой копии не существует, она будет выделять одну новую страницу кэш-памяти и заполнять ее соответствующее содержимое считываемое с диска.

Данные, хранящиеся в кеше, могут быть значениями, которые были вычислены ранее или дублированы исходными значениями, которые хранятся в другом месте на диске.

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

Данные можно получить быстрее из кеша, чем из исходного источника.

Сегменты разделяемой памяти SysV также учитываются как кеш, хотя они не представляют никаких данных на дисках.

Можно проверить размер разделяемых сегментов памяти с помощью команды ipcs -m и проверить столбец байтов.

Буферы

Буферы представляют собой представление на диске данных, которые хранятся в кэшах страниц.

Буферы содержат метаданные файлов / данных, которые находятся в кеше страницы.

Пример

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

Как только из метаданных известен фактический адрес блока файла, он подбирается ядром для обработки.

 

You may also like

Leave a Comment