Почему у меня так много RAM-дисков?


15

У меня работает Arch Linux на моем Raspberry Pi 2.

Сразу же после установки, я побежал lsblk, fdiskи dfкоманды (к сожалению , я не спасали выход) , но у меня был один диск, который является SD - карты и два раздела на нем. Затем я обновил систему pacman -Syu, установил sudoи настроил ее ssh. Теперь, когда я запускаю, fdiskэто показывает, что у меня в памяти 16 дисков RAM с параметрами:

Disk /dev/ram15: 4 MiB, 4194304 bytes, 8192 sectors 

Units: sectors of 1 * 512 = 512 bytes 

Sector size (logical/physical): 512 bytes / 4096 bytes 

I/O size (minimum/optimal): 4096 bytes / 4096 bytes

и всевозможные файловые системы, смонтированные в разных точках монтирования (хотя я лично создал только /dev/rootи /dev/boot):

Filesystem      Size  Used Avail Use% Mounted on
/dev/root       1.8G  1.1G  557M  67% /
devtmpfs        458M     0  458M   0% /dev
tmpfs           462M     0  462M   0% /dev/shm
tmpfs           462M  328K  462M   1% /run
tmpfs           462M     0  462M   0% /sys/fs/cgroup
tmpfs           462M     0  462M   0% /tmp
/dev/mmcblk0p1  100M   18M   83M  18% /boot
tmpfs            93M     0   93M   0% /run/user/1000

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

Редактировать :

cat /proc/partitions выход:

major minor  #blocks  name

   1        0       4096 ram0
   1        1       4096 ram1
   1        2       4096 ram2
   1        3       4096 ram3
   1        4       4096 ram4
   1        5       4096 ram5
   1        6       4096 ram6
   1        7       4096 ram7
   1        8       4096 ram8
   1        9       4096 ram9
   1       10       4096 ram10
   1       11       4096 ram11
   1       12       4096 ram12
   1       13       4096 ram13
   1       14       4096 ram14
   1       15       4096 ram15
 179        0   31472640 mmcblk0
 179        1     102400 mmcblk0p1
 179        2    1853439 mmcblk0p2

1
Я нашел этот связанный вопрос . На этот вопрос также нет хороших ответов, но один комментарий предполагает, что это /proc/partitionsможет быть актуально. Вы должны включить вывод cat /proc/partitionsв ваш вопрос.
— Касперд

Вы не обязательно найдете ответы на сайте Raspberry Pi на общие вопросы о Linux. Быстрый Google находит ответы.
— Джоан

1
@ joan О, я много гуглил, но не смог найти четкого и краткого ответа, только кусочки.
— RusI

1. Эти RAM диски должны быть включены до компиляции ядра. 2. Они не должны использовать ОЗУ перед установкой на них ФС.
— хлопья

Тогда причина выделения этих RAM-дисков остается загадкой ... может показаться, что причина должна заключаться в следующем: 1) сохранить записи на SD-карту и / или 2) повысить производительность за счет уменьшения задержки дискового ввода-вывода. Но никто (заслуживающий доверия) не был зарегистрирован с таким заявлением.
— Симус

Ответы:


4

Во-первых, RAM-диски - это не то же самое, что tmpfs .

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

На механическом жестком диске, где количество циклов чтения / записи не имеет значения, это прекрасно. Тем не менее, на Raspberry Pi, где основным хранилищем данных является SD-карта, где имеется ограниченное количество циклов чтения / записи, слишком большое количество операций ввода-вывода может преждевременно изнашивать карту.

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

RAM-диски совершенно не связаны с этим. Это блочные устройства , поддерживаемые ОЗУ, тогда как tmpfs - это файловая система, поддерживаемая ОЗУ. RAM-диски являются необработанными блочными устройствами, похожими на /dev/sdaetc ... Вы можете создать файловую систему поверх RAM-диска, запустив ее так mkfs /dev/ramже, как и на обычном блочном устройстве жесткого диска.

Я считаю, что количество RAM-дисков, доступных для использования, контролируется параметром конфигурации ядра . Будьте уверены, что они на самом деле не занимают места, пока вы не используете / пишете им.


7

В этом нет ничего необычного.

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

Мой ноутбук Debian

Filesystem      Size  Used Avail Use% Mounted on
udev            1.5G     0  1.5G   0% /dev
tmpfs           301M   32M  269M  11% /run
/dev/sda2        47G   31G   14G  71% /
tmpfs           1.5G  1.7M  1.5G   1% /dev/shm
tmpfs           5.0M  8.0K  5.0M   1% /run/lock
tmpfs           1.5G     0  1.5G   0% /sys/fs/cgroup
tmpfs           1.5G   69M  1.5G   5% /tmp
/dev/sda4       386G  344G   23G  94% /home
tmpfs           301M   12K  301M   1% /run/user/114
tmpfs           301M   76K  301M   1% /run/user/1000

Мой Распбиан Пи Ноль

Filesystem                     Size  Used Avail Use% Mounted on
/dev/root                      7.2G  3.8G  3.1G  56% /
devtmpfs                       214M     0  214M   0% /dev
tmpfs                          218M     0  218M   0% /dev/shm
tmpfs                          218M   17M  202M   8% /run
tmpfs                          5.0M  4.0K  5.0M   1% /run/lock
tmpfs                          218M     0  218M   0% /sys/fs/cgroup
/dev/mmcblk0p1                  56M   20M   37M  36% /boot
tmpfs                          100M  4.0K  100M   1% /ram
tmpfs                           44M     0   44M   0% /run/user/109
mercury.lan:/home/common/code  386G  344G   23G  94% /code
tmpfs                           44M     0   44M   0% /run/user/1000

3
Вы не отвечаете на вопрос. Вопрос в том, почему /dev/ram15(и предположительно 0-14) появляются в выводе fdisk. Ваш ответ только упоминание, tmpfsкоторое совершенно не связано с /dev/ram*.
— Касперд

1
Я не сомневаюсь в ваших заявлениях, но мне действительно интересно, почему эти изменения произошли в моей системе. Хотя я просто изучаю Linux и специально выбрал Arch как «хардкорный», так сказать, где вы должны явно сказать ОС, что вы хотите, и теперь у меня есть система, создающая диски и файловые системы и монтирующая их по всему сам по себе - так кто здесь контролирует?
— RusI

2

Краткий ответ : это просто fdisk особенность в последних версиях. В качестве альтернативы вы также можете использовать partedи lsblk.

Извлечено из этой темы в AskUbuntu:

На более поздних версиях fdiskвыбора того , что программа считает , как блочное устройство существенно изменилось. В util-linuxпакете, частью которого является fdisk (среди прочего), версия 2.21, это решение основано на сообщенной геометрии диска, в то время как в текущей версии 2.72.1 (по состоянию на май 2017 г.) вывод / proc / partitions анализируется

И:

В баран-диски были в ядре в течение длительного времени, это поведение FDISK , что изменилось.

Больше подробностей и несколько обходных путей (если эти ram-диски на экране вас раздражают) в вышеупомянутой теме.


«Больше подробностей и несколько обходных путей» ??? где ???
— ZEE

@Zee, посмотрите на упомянутую тему в AskUbuntu. Они даже перечисляют некоторые патчи для исходного кода fdisk.
— Сопалахо де Арриерес
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.