Mengapa saya memiliki begitu banyak disk RAM?

15

Saya menjalankan Arch Linux di Raspberry Pi 2 saya.

Tepat setelah menginstal, saya berlari lsblk, fdiskdan dfperintah (sayangnya saya tidak menyimpan output) tetapi saya punya satu disk, yaitu kartu SD dan dua partisi di atasnya. Kemudian, saya memutakhirkan sistem dengan pacman -Syu, menginstal sudodan mengkonfigurasi ssh. Sekarang, ketika saya menjalankannya fdiskmenunjukkan saya memiliki 16 disk RAM dalam memori dengan parameter:

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

dan semua jenis sistem file yang dipasang di berbagai titik pemasangan (sementara saya secara pribadi membuat /dev/rootdan /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

Jadi pertanyaan saya adalah: Apa semua disk RAM ini dan mengapa mereka ada di sistem saya, karena saya pasti tidak membuatnya dan apa sistem file yang dipasang?

Edit :

cat /proc/partitions keluaran:

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
RusI
sumber
1
Saya menemukan pertanyaan terkait ini . Pertanyaan itu tidak memiliki jawaban yang bagus juga, tetapi satu komentar menunjukkan bahwa /proc/partitionsmungkin relevan. Anda harus memasukkan output cat /proc/partitionsdalam pertanyaan Anda.
kasperd
Anda tidak perlu menemukan jawaban di situs spesifik Raspberry Pi untuk pertanyaan umum Linux. Google cepat menemukan jawaban.
joan
1
@ Joan Oh, saya melakukan googling yang luas, tetapi saya tidak dapat menemukan jawaban yang jelas dan ringkas, hanya berkeping-keping.
RusI
1. Disk RAM tersebut harus diaktifkan sebelum mengkompilasi kernel. 2. Mereka seharusnya tidak benar-benar menggunakan RAM apa pun sebelum memasang FS pada mereka.
flakeshake
Alasan untuk mengalokasikan disk RAM ini masih menjadi misteri kemudian ... tampaknya alasannya adalah: 1) menyimpan tulisan ke kartu SD, dan / atau 2) meningkatkan kinerja dengan mengurangi latensi diska / o disk. Tetapi tidak ada (kredibel) yang tercatat dengan pernyataan seperti itu.
Seamus

Jawaban:

4

Pertama, disk RAM tidak sama dengan tmpfs .

Ada banyak direktori pada drive root Anda yang digunakan untuk menyimpan file sementara. Folder-folder ini cenderung memiliki banyak membaca dan menulis yang terjadi ketika aplikasi membuat, memodifikasi lalu menghapus file selama pelaksanaannya.

Pada hard-drive mekanis di mana jumlah siklus baca / tulis tidak penting, ini tidak masalah. Namun, pada Raspberry Pi, di mana backend penyimpanan utama adalah SD Card di mana ada sejumlah siklus baca / tulis, memiliki begitu banyak I / O yang terjadi dapat secara prematur menguras kartu.

Karena kita tidak perlu menyimpan file-file di direktori-direktori sementara melalui reboot, banyak distro berusaha untuk mengurangi keausan pada perangkat penyimpanan dengan menyimpan file-file sementara traffic tinggi dalam RAM. Tmpfs digunakan karena merupakan sistem file yang menggunakan RAM sebagai cadangan penyimpanannya. Inilah sebabnya mengapa Anda melihat begitu banyak direktori yang dipasang sebagai tmpfs.

Disk RAM sama sekali tidak terkait dengan ini. Mereka adalah perangkat blok yang didukung oleh RAM sedangkan tmpfs adalah sistem file yang didukung oleh RAM. Disk RAM adalah perangkat blok mentah yang serupa dengan /dev/sdadll ... Anda dapat membuat sistem file di atas disk RAM dengan menjalankan mkfs /dev/ramseperti yang Anda lakukan pada perangkat blok hard drive normal.

Saya percaya jumlah disk RAM yang tersedia untuk digunakan dikendalikan oleh opsi konfigurasi kernel . Yakinlah bahwa mereka tidak benar-benar memakan ruang sampai Anda menggunakan / menulis kepada mereka.

tangrs
sumber
7

Itu tidak biasa.

Disk RAM biasanya digunakan untuk sistem file sementara.

Laptop Debian saya

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

Raspbian Pi Zero saya

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
joan
sumber
3
Anda tidak menjawab pertanyaan. Pertanyaannya adalah mengapa /dev/ram15(dan mungkin juga 0-14) muncul di output dari fdisk. Jawaban Anda hanya menyebutkan tmpfsyang sama sekali tidak terkait /dev/ram*.
kasperd
1
Saya tidak meragukan pernyataan Anda, tetapi saya benar-benar tertarik mengapa perubahan ini terjadi di sistem saya. Sementara saya baru belajar Linux dan saya secara khusus memilih Arch sebagai "hardcore" sehingga untuk berbicara di mana Anda harus memberi tahu OS secara eksplisit apa yang Anda inginkan, dan sekarang saya punya sistem membuat disk dan sistem file dan memasangnya semua tempat sendiri - jadi siapa yang memegang kendali di sini?
RusI
2

Jawaban singkat : itu hanya fdisk kekhasan pada versi terbaru. Atau Anda juga bisa menggunakan parteddan lsblk.

Diambil dari utas ini di AskUbuntu:

Pada versi selanjutnya dari fdiskpemilihan apa yang dianggap program sebagai perangkat blok berubah secara substansial. Dalam util-linuxpaket, di mana fdisk (antara lain) adalah bagian dari, versi 2.21 keputusan ini didasarkan pada geometri disk yang dilaporkan saat dalam (seperti untuk Mei 2017) versi saat ini 2.72.1 output dari / proc / partisi diuraikan

Dan:

The ram-disk telah di kernel untuk waktu yang lama, itu adalah perilaku fdisk yang berubah.

Lebih detail dan beberapa solusi (jika ram ram di layar mengganggu Anda) pada utas yang disebutkan di atas.

Sopalajo de Arrierez
sumber
"Lebih detail dan beberapa solusi" ??? dimana ???
ZEE
@ Zee, lihat utas yang dimaksud di AskUbuntu. Mereka bahkan mencantumkan beberapa tambalan untuk sumber asli fdisk.
Sopalajo de Arrierez