Memória mennyisége
Amint azt az első részben már említettük, a teljes memóriát virtuális memóriának hívják, és fizikai memóriából és cseretérből egyaránt áll. A fizikai memória rendelkezésre állása függ a gépbe épített hardvertől, valamint attól, hogy a processzor ténylegesen mennyi memóriát tud megszólítani. Például a 32 bites operációs rendszerek csak 4G memóriával rendelkeznek (2 ^ 32 bites), míg a 64 bites operációs rendszerek elméletileg akár 16 EB (2 ^ 64bit) memóriát engednek meg.
Pontosabban: a korlátozás az alaplap magával a processzorral, az alaplap által támogatott memóriamodulokkal és az alaplap memóriahelyeihez csatlakoztatott speciális memóriamodulokkal. A rendszer rendelkezésre álló memóriájának maximalizálásának egyik módja a lehető legnagyobb méretű hasonló memóriamodulok használata. A második módszer a Swap memória használata, amint azt az első részben már kifejtettük.
Hozzáférés a memóriához
Ezután a memória hozzáférési sebességének javítását vesszük figyelembe. Eleinte a fizikai határt maga a memóriamodul adja meg. Nem mehet a hardver fizikai határai alá. Másodszor egy ramdisk, harmadszor pedig a zRAM használata felgyorsíthatja a memória elérését. Ezt a két technológiát részletesebben tárgyaljuk.
Ramdisk létrehozása
A ramdisk egy memóriablokk, amelyet az operációs rendszer fizikai eszközként kezel, az adatok tárolására - egy merevlemez, amelyet teljes egészében a memóriában tartanak. Ez az ideiglenes eszköz létezik, amint a rendszer elindul és engedélyezi a ramdisket, és a rendszer vagy letiltja a ramdiskot, vagy leáll. Ne feledje, hogy az ilyen ramdiskon tárolt adatok elvesznek a gép leállítása után.
Dinamikus ramdiskot hozhat létre a tmpfs fájlrendszeren és a ramfs fájlrendszeren keresztül. Mindkét technológia jelentősen eltér egymástól. Először is, a dinamikus azt jelenti, hogy a ramdisk memóriáját a felhasználása alapján osztják ki (mindkét módszerre igaz). Amíg nem tárol rá adatokat, a ramdisk mérete 0.
Dinamikus ramdisk létrehozása a tmpfs segítségével a következő:
# mkdir / media / ramdisk# mount -t tmpfs none / media / ramdisk
Dinamikus ramdisk létrehozása ramfs-en keresztül a következő:
# mkdir / media / ramdisk# mount -t ramfs ramfs / media / ramdisk
Másodszor, a tmpfs használatával, és hacsak nincs kifejezetten megadva, a ramdisk mérete a fizikai memória 50% -ára korlátozódik. Ezzel szemben a ramf-eken alapuló ramdisk nincs ilyen korlátozással.
Dinamikus ramdisk létrehozása tmpfs-en keresztül, a fizikai memória relatív 20% -ával:
# mkdir / media / ramdisk# mount -t tmpfs -o size = 20% none / media / ramdisk
Dinamikus ramdisk létrehozása tmpfs-en keresztül, rögzített, 200 millió fizikai memóriával, a következő:
# mkdir / media / ramdisk# mount -t tmpfs -o size = 200M none / media / ramdisk
Harmadszor, mindkét módszer más módon kezeli a cserét. Abban az esetben, ha a rendszer eléri a ramdisk memóriakorlátját a tmpfs alapján, a ramdisk adatait felcserélik. Ez sérti a gyors hozzáférés gondolatát. Másrészt az operációs rendszer prioritásként kezeli a ramdisk tartalmát és a kért memóriaoldalakat a ramfs alapján, ezt a memóriában tartja, és a fennmaradó memória oldalakat lemezre cseréli.
A fenti példákban használtuk / media / ramdisk
csatlakozási pontként. A rendszeres adatok tekintetében a Linux fájlrendszer egyetlen része, amelyet ajánlott használni a ramdiskon / tmp
. Ez a könyvtár csak ideiglenes adatokat tárol, amelyek nem maradnak fenn. A / tmp fájlrendszert tároló állandó ramdisk létrehozásához további bejegyzésre van szükség a fájlban / etc / fstab
az alábbiak szerint (ramf-ek alapján):
A következő rendszerindításkor a Linux rendszert automatikusan engedélyezi a ramdisk.
A zRAM használata
A zRAM azt jelenti, hogy a virtuális csere tömörítve van a RAM-ban, és egy tömörített blokk eszközt hoz létre közvetlenül a fizikai memóriában. A zRAM azonnal működésbe lép (használat), amint a rendszeren már nem állnak rendelkezésre fizikai memória oldalak. Ezután a Linux kernel megpróbálja az oldalakat tömörített adatokként tárolni a zRAM eszközön.
Jelenleg a Debian GNU / Linuxhoz nem áll rendelkezésre csomag, hanem az Ubuntu. A neve zram-config. Telepítse a csomagot, és állítsa be a zRAM eszközt egyszerűen a megfelelő systemd szolgáltatás elindításával az alábbiak szerint:
# systemctrl indítsa el a zram-config parancsotAmint azt a swapon -s,
az eszköz további Swap partícióként aktív. Automatikusan a memória 50% -át lefoglalják a zRAM számára (lásd 1. ábra). Jelenleg nincs mód a kiosztandó zRAM eltérő értékének megadására.
A tömörített cserepartícióval kapcsolatos további részletek megtekintéséhez használja a parancsot zramctl
. A 2. ábra bemutatja az eszköz nevét, a tömörítési algoritmust (LZO), a cserepartíció méretét, a lemezen lévő adatok méretét és tömörített méretét, valamint a tömörítési folyamok számát (alapértelmezett érték: 1).
Felhasználási stratégia
Ezután a memóriahasználati stratégiára koncentrálunk. Néhány paraméter befolyásolja a memóriahasználat és az elosztás viselkedését. Ez magában foglalja a memóriaoldalak méretét is - 64 bites rendszereken 4M. Ezután a swappiness paraméter játszik szerepet. Amint az első részben már kifejtettük, ez a paraméter a futásidejű memória kicserélésének tulajdonított relatív súlyt szabályozza, szemben a memóriaoldalak eldobásával a rendszeroldal gyorsítótárából. Nem szabad megfeledkeznünk a gyorsítótárról és a memóriaoldalak igazításáról sem.
Használjon kevesebb memóriát igénylő programokat
Végül, de nem utolsósorban a memória használata magától a programtól függ. Legtöbbjük az alapértelmezett C könyvtárhoz (standard LibC) kapcsolódik. Fejlesztőként fontolja meg egy alternatív és sokkal kisebb C könyvtár használatát a bináris kód minimalizálása érdekében. Például léteznek dietlibc [1], uClibc [2] és musl lib C [3]. A musl lib C fejlesztői weboldala tartalmaz egy átfogó összehasonlítást [4] ezekről a könyvtárakról a lehető legkisebb statikus C program, a szolgáltatások összehasonlítása, valamint az építési környezetek és a támogatott hardverarchitektúrák szempontjából.
Felhasználóként előfordulhat, hogy nem kell lefordítania a programokat. Fontolja meg kisebb programok és különböző keretek keresését, amelyek kevesebb erőforrást igényelnek. Példaként használhatja az XFCE asztali környezetet a KDE vagy a GNOME helyett.
Következtetés
Van jó néhány lehetőség a memória használatának jobb megváltoztatására. Ez a csere-től a zRAM-alapú tömörítésig terjed, valamint egy ramdisk beállítására vagy egy másik keretrendszer kiválasztására.
Linkek és hivatkozások
- [1] dietlibc, https: // www.fefe.de / dietlibc /
- [2] uClibc, https: // uclibc.org /
- [3] musl lib C, http: // www.musl-libc.org /
- [4] C könyvtárak összehasonlítása, http: // www.etalabs.net / hasonlít_libcs.html
Linux memóriakezelő sorozat
- 1. rész: Linux kernelmemória-kezelés: Hely cseréje
- 2. rész: Parancsok a Linux memória kezeléséhez
- 3. rész: A Linux memóriahasználat optimalizálása
Köszönetnyilvánítás
A szerző köszönetet mond Axel Beckert és Gerold Rupprecht támogatásáért a cikk elkészítése során.