
Ha kíváncsi vagy, a RAM meghajtók és a tmpf példányok nem ugyanazok. Ez a cikk elmagyarázza a különbséget, és megmutatja, hogyan lehet RAM-meghajtót létrehozni Linux alatt a parancssor segítségével. Gyors RAM-meghajtó beállítása percek alatt!
Mi az a RAM meghajtó?
A számítógép RAM-chipjei virtuális meghajtó tárolására használhatók. Ezt a meghajtót ezután nem a merevlemezen, hanem a RAM-ban tárolja. Ennek a virtuális lemeznek a sebessége nemcsak jelentősen gyorsabb lesz, mint egy normál lemez (és különösen egy régebbi típusú forgó lemezhez képest, mivel az alkatrészek fizikai mozgása a forgó lemezen belül további késéseket okoz), a RAM chipek nem kopnak olyan gyorsan lemezként, és megint különösen, és annál inkább a régebbi típusú fizikai meghajtóknál.
Túl jól hangzik, hogy igaz legyen? Nos, valóban van egy figyelmeztetés; ha véletlenül újraindítja a számítógépet, vagy ha összeomlik, az összes adat eltűnt. A számítógép (RAM) (Random Access Memory), állandó memóriát igényel, hogy megőrizze információit. A RAM-tároló ingatagnak számít.
Más szavakkal, a RAM meghajtók ideiglenes alkalmazásokhoz vagy speciális optimalizálásokhoz használhatók. Például amikor tesztelő szervereket használunk a szoftverek teszteléséhez, beállítottunk egy RAM meghajtót, hogy a sok egyidejű teszt gyorsabban menjen végbe. És még akkor is, ha a szerver elveszítené az áramellátását, nem sok minden veszne el; egyszerűen elindítanánk egy újabb tesztfutást.
Egy másik alkalmazás előre betölti a gyakran elérhető adatokat egy RAM meghajtóba. Például, ha van egy kiszolgálója, amely folyamatosan hozzáfér egy adott írásvédett adatbázishoz (az írás-írás bonyolultabb lehet, ha az adatokat meg kell őrizni), amely általában a lemezen található, akkor az írásvédett adatbázist átmásolhatja ide: A RAM automatikusan (néhány automatizált parancsfájl használatával például a külön indításkor, vagy egy cron feladattal), majd hagyja, hogy az adatbázis-kiszolgáló felhasználja ezeket az adatokat.
Más szavakkal, lehet összefoglalni két elsődleges felhasználási esetet, az egyik a gyorsítótár (például az R / O adatbázis példánk), a másik az „felbecsülhetetlen értékű” adattárolás (például a tesztelési példánk). Ezután tehet egy lépést tovább (egy harmadik felhasználási esetet, ha akarja), és az adatokat adott időközönként visszaszinkronizálja a lemezre. Például a tesztelési példával, amely a RAM-tárhelyre történő írásokat is magában foglalja, az összesítést és / vagy a vizsgálati adatokat vissza lehet írni a lemezre (állandó tárhelyre) minden teszt befejezése után.
A RAM-meghajtókkal kapcsolatos másik figyelmeztetés az, hogy ezek a rendszer memóriájának méretére korlátozódnak, és valószínűleg ennél kisebbek is, mivel az operációs rendszer és más szoftver futtatásához más memóriára van szükség.
A RAM-meghajtó méretezése – mondjuk a rendszermemória tetszőleges 80–85% -áig – problémákat okozhat. Természetesen, ha 256 GB RAM van a szerveren, akkor a RAM meghajtóra elkülönített 90% is több mint 25 GB maradna az operációs rendszer és az alkalmazások számára. Csak 4 GB-os memória esetén a RAM 90% -os kiosztása 0,4 GB-ot (400 MB) hagyna, ami valószínűleg problémákat fog okozni. Így bizonyos mértékig attól függ, hogy mekkora a gép teljes memóriája, és mennyire lesz szükség más szoftverekhez.
A RAM meghajtó továbbá nem ugyanúgy működik, mint a tmpfs kiosztás / példány.
RAM meghajtó vs tmpfs példány
Az tmpfs a számítógép RAM chipjeiben is tárolható, de nem kötelező. A közös /dev/shm
A tmpfs leképezés automatikusan beállítódik a legtöbb, ha nem minden Linux operációs rendszer telepítésével, de hasznos, de nem ugyanúgy működik, mint a RAM meghajtó.
A kettő közötti különbség az, hogy egy RAM meghajtó (a kifejezés merev eszembe jut) 100% -ban raktárban van a tényleges RAM chipekben, míg a tmpfs a Linux Kernel memóriakészletben van tárolva, amely tartalmazhat például csere helyet, amely rendszeresen a lemezen található. Bár a kern valószínűleg optimalizálja a készlethez való összes hozzáférést, ez még mindig lehetőséget nyújt arra, hogy az adatokat fizikai RAM-ra vagy fizikai lemezre írják. És ha lemezre megy, akkor lassabb lesz.
Létrehozása a RAM meghajtó
A RAM meghajtó létrehozása viszonylag egyszerű. Létrehozhat egy kis szkriptet ramdrive.sh
, a következő kóddal:
#!/bin/bash if [ "$(mount | grep -o "/mnt/ram")" != "/mnt/ram" ]; then sudo mkdir -p /mnt/ram sudo mount -t ramfs -o size=1g ramfs /mnt/ram sudo chown -R $(whoami):$(whoami) /mnt/ram fi mount | grep ram
És egy másik forgatókönyv umount_ram.sh
, a következő kóddal:
#!/bin/bash sudo umount /mnt/ram
Vessünk egy pillantást az első szkriptre. Először jelezzük, hogy Bash-t akarunk tolmácsként használni a Shebang szimbólummal (#!
). Ha szeretne többet megtudni Shebangról, nézze meg Bash automatizálás és szkriptek alapjai, három részből álló cikkünk a Bash automatizálásáról és a szkriptekről.
Ezek után ellenőrizzük, hogy van-e már alátámasztásunk /mnt/ram
(az a könyvtár, amelybe a ram meghajtót csatlakoztatjuk), csak grep használatával (grep -o
) nak,-nek /mnt/ram
a teljes „jelenleg csatlakoztatott” listában, amelyet a mount
. Ha ugyanaz nem található, akkor három sudo paranccsal folytatjuk. Mindhárom megköveteli sudo
, bár különféle okokból.
Az első parancs sudo-t igényel, mivel egy könyvtárat valószínűleg root-ként és legalábbis in-ben készít /mnt
, amelyek privilegizált / védett könyvtárak. A következő parancs, a tényleges RAM-lemez csatlakoztatásunk és létrehozásunk sudo-t igényel, mivel a csatlakoztatás kiváltságos művelet. Használatával 1 GB-ra állítottuk be a méretet size=1g
. Azt is jelezzük, hogy szeretnénk egy ramfs típusú meghajtót (-t ramfs
) a ramfs eszközről érkezik (amint azt a második jelzi ramfs
), és végül felsoroljuk a csatlakozási pontot /mnt/ram
.
A harmadik sudo-képes parancsban megváltoztatjuk a /mnt/ram
könyvtár (most a RAM meghajtónk, a ramfs csatolási pontunk) az aktuális felhasználóhoz és az aktuális felhasználó saját csoportjához a whoami
parancsot kétszer. Megváltoztathatja ezt az adott és / vagy az adott csoportra, amely a ramdrive-ot fogja használni, vagy egy szélesebb csoportra, ha több felhasználó fogja használni a ramdrive-ot.
Ezek után véglegesítjük a feltételünket if .. fi
parancsot, és tegyen egy utolsó hívást mount
egy fogással ram
győződjön meg arról, hogy a szkript visszajelzést ad arról, hogy mi lett már telepítve a RAM-ban, vagy mi épp most épült be a parancsfájl végrehajtásakor. Ez egy praktikus / gyors ellenőrzés, hogy a szkript sikeres volt-e végrehajtásakor.
Másodlagos szkriptünk, umount_ram.sh
, leválasztja a RAM-alapú meghajtót a csatlakozási ponttal /mnt/ram
, azaz az imént létrehozott ramfs meghajtót. FIGYELMEZTETÉS: ennek azonnali végrehajtása az összes illékony memóriában tárolt adatot eldobja / törli, és a RAMFS meghajtó újratelepítése nem hozza ezt vissza; egyszerűen vadonatúj, de üres RAM meghajtót hoz létre. Kérjük, figyelmeztesse!
Csomagolás
Ebben a cikkben a RAM / ramfs (ugyanaz) meghajtókat és a tmpfs példányokat / allokációkat tárgyaltuk. Ezután létrehoztunk egy 1 GB-os ramfs meghajtót /mnt/ram
kis szkriptet használ a meghajtó vagy a RAM meghajtó csatlakoztatásához.
Ha szeretnél tovább olvasni Linuxon, nézd meg a mi oldalunkat Képernyőfelvétel Linux rendszerben a SimpleScreenRecorder alkalmazással vagy Bit, bájt és bináris vagy 0-tól F-ig: Hexadecimális cikkek!
Élvezd!