Linux kernel

Megértése vm.swappiness

Megértése vm.swappiness
A Linux kernel egy meglehetősen összetett szoftver, hosszú összetevők listájával, például modulokkal, interfészekkel és konfigurációs fájlokkal [1]. Ezek az alkatrészek meghatározott értékekkel konfigurálhatók a komponens kívánt viselkedésének vagy működési módjának elérése érdekében [2,3,4]. Ezt követően ez a beállítás közvetlenül befolyásolja a Linux rendszer egészének viselkedését és teljesítményét.

A Linux kernel és összetevőinek aktuális értékei elérhetővé válnak egy speciális felület - a / proc könyvtár [5] segítségével. Ez egy virtuális fájlrendszer, amelyben az egyes fájlok valós időben vannak kitöltve értékekkel. Az értékek a Linux kernel aktuális állapotát képviselik. Az egyes fájlokat a / proc könyvtárban a cat paranccsal érheti el az alábbiak szerint:

$ cat / proc / sys / net / core / somaxconn
128
$

Ezen kernelparaméterek egyikét vm-nek hívják.swappiness. „Ellenőrzi a futásidejű memória kicserélésének adott relatív súlyát, szemben a memóriaoldalak eldobásával a rendszeroldal gyorsítótárából” [6]. A Linux kernellel kezdve kiadja a 2-es verziót.6 ezt az értéket vezették be. A / proc / sys / vm / swappiness fájlban van tárolva .

A Csere

A swap [6] használata elengedhetetlen része volt a kisebb UNIX gépek használatának az 1990-es évek elején. Még mindig hasznos (például ha tartalék gumiabroncs van a járművében), amikor a csúnya memóriaszivárgások zavarják munkáját. A gép lelassul, de a legtöbb esetben továbbra is használható lesz a kijelölt feladat elvégzéséhez. Az ingyenes szoftverfejlesztők nagy előrelépéseket tettek a programhibák csökkentése és kiküszöbölése érdekében, ezért mielőtt a rendszermag paramétereit megváltoztatnák, fontolja meg először az alkalmazás és a kapcsolódó könyvtárak újabb verziójára való frissítést.

Ha számos feladatot futtat, akkor az inaktív feladatok lemezre kerülnek, így jobban kihasználva a memóriát az aktív feladatokkal. A videoszerkesztés és más nagy memóriát igénylő alkalmazások gyakran ajánlott mennyiségű memóriával és lemezterülettel rendelkeznek. Ha van egy régebbi gépe, amely nem tudja frissíteni a memóriát, akkor a több csere rendelkezésre bocsátása jó ideiglenes megoldás lehet az Ön számára (erről [6] többet megtudhat).

A csere történhet külön partíción vagy cserefájlon. A partíció gyorsabb, és sok adatbázis-alkalmazás támogatja. A fájl megközelítés rugalmasabb (lásd a dphys-swapfile csomagot a Debian GNU / Linux-ban [7]). Ha egynél több fizikai eszköz van a cserére, akkor a Linux kernel kiválaszthatja a leggyorsabban elérhető eszközt (alacsonyabb késleltetés).

vm.swappiness

A vm alapértelmezett értéke.a swappiness 60 és a szabad memória százalékos arányát képviseli a swap aktiválása előtt. Minél alacsonyabb az érték, annál kevesebb cserét használunk, és annál több memóriaoldalt tartunk a fizikai memóriában.

A 60 értéke kompromisszum, amely jól működik a modern asztali rendszereknél. A kiszolgálórendszer helyett inkább egy kisebb érték ajánlott. Amint a Red Hat Performance Tuning kézikönyv rámutat [8], kisebb swappiness érték ajánlott az adatbázis-terhelésekhez. Például az Oracle adatbázisok esetében a Red Hat 10-es swappiness értéket ajánl. Ezzel szemben a MariaDB adatbázisok esetében ajánlott a swappiness értékét 1-re állítani [9].

Az érték megváltoztatása közvetlenül befolyásolja a Linux rendszer teljesítményét. Ezek az értékek vannak meghatározva:

* 0: a csere letiltva
* 1: a csere minimális mennyisége a teljes letiltás nélkül
* 10: ajánlott érték a teljesítmény javításához, ha elegendő memória van a rendszerben
* 100: agresszív csere

Amint fent látható, a cat parancs segít az érték beolvasásában. A sysctl parancs ugyanazt az eredményt adja:

# sysctl vm.swappiness
vm.swappiness = 60
#

Ne feledje, hogy a sysctl parancs csak egy adminisztrációs felhasználó számára érhető el. Az érték ideiglenes beállításához állítsa be az értéket a / proc fájlrendszerben az alábbiak szerint:

# echo 10> / proc / sys / vm / swappiness

Alternatív megoldásként használhatja a sysctl parancsot az alábbiak szerint:

# sysctl -w vm.swappiness = 10

Az érték tartós beállításához nyissa meg az / etc / sysctl fájlt.conf rendszergazdai felhasználóként, és adja hozzá a következő sort:

vm.swappiness = 10

Következtetés

Egyre több linux felhasználó futtat virtuális gépeket. Mindegyiknek megvan a saját rendszermagja a hipervizoron kívül, amely ténylegesen vezérli a hardvert. A virtuális gépek virtuális lemezeket hoztak létre számukra, ezért a virtuális gépen belüli beállítás megváltoztatása határozatlan eredményekkel jár. Először kísérletezzen a hipervizor kernel értékeinek megváltoztatásával, mivel ez valóban a gép hardverét vezérli.

Régebbi gépeknél, amelyek már nem frissíthetők (már maximálisan támogatott memóriával rendelkezik), fontolja meg egy kis szilárdtestlemez elhelyezését a gépben, hogy azt további csereeszközként használja. Ez nyilván fogyóeszközzé válik, mivel a memória cellák sok írástól meghibásodnak, de nagyon alacsony költséggel meghosszabbíthatják a gép élettartamát egy évvel vagy annál tovább. Az alacsonyabb késleltetés és a gyors leolvasás sokkal jobb teljesítményt nyújt, mint egy közönséges lemezre cserélve, és közbenső eredményeket ad a RAM számára. Ennek lehetővé kell tennie valamivel alacsonyabb vm használatát.swappiness értékek az optimális teljesítmény érdekében. Kísérleteznie kell. Az SSD-eszközök gyorsan változnak.

Ha egynél több csereeszköze van, fontolja meg, hogy RAID-eszközzé tegye az adatok sávosítását a rendelkezésre álló eszközökön.

Változtathat a gyorsaságon anélkül, hogy újraindítaná a gépet, ami jelentős előny más operációs rendszerekkel szemben.

Próbáljon csak a vállalkozásához szükséges szolgáltatásokat felvenni. Ez csökkenti a memóriaigényt, javítja a teljesítményt és mindent egyszerűbbé tesz.

Utolsó megjegyzés: Terhelést fog hozzáadni a csereeszközökhöz. Figyelnie kell a hőmérsékletüket. A túlmelegedett rendszer csökkenti a CPU frekvenciáját és lelassul.

Köszönetnyilvánítás

A szerző külön köszönetet mond Gerold Rupprechtnek és Zoleka Hatitongwe-nek kritikai észrevételeikért és megjegyzéseikért a cikk elkészítése során.

Linkek és hivatkozások

* [1] Linux kernelbemutató kezdőknek, https: // linuxhint.com / linux-kernel-tutorial-beginners /

* [2] Derek Molloy: Linux kernelmodul írása - 1. rész: Bevezetés, http: // derekmolloy.ie / linux-kernel-module-part-1-Introduction írása /

* [3] Derek Molloy: Linux kernelmodul írása - 2. rész: Karaktereszköz, http: // derekmolloy.ie / linux-kernel-module-2-a-character-device írása /

* [4] Derek Molloy: Linux kernelmodul írása - 3. rész: Gombok és LED-ek, http: // derekmolloy.ie / kernel-gpio-programozás-gombok és ledek /

* [5] Frank Hofmann: Parancsok a Linux memória kezeléséhez, https: // linuxhint.com / command-to-management-linux-memory /

* [6] Frank Hofmann: Linux kernel memóriakezelés: Hely cseréje, https: // linuxhint.com / linux-memory-management-swap-space /

* [7] dphys-swapfile csomag Debian GNU / Linux számára, https: // csomagok.debian.org / stretch / dphys-swapfile

* [8] Red Hat Performance Tuning Guide, https: // hozzáférés.piros kalap.com / dokumentáció / hu-us / red_hat_enterprise_linux / 6 / html / performance_tuning_guide / s-memória-hangolható

* [9] A MariaDB konfigurálása, https: // mariadb.com / kb / hu / library / configuring-swappiness /

Csata a Wesnoth bemutatóért
A Battle for Wesnoth az egyik legnépszerűbb nyílt forráskódú stratégiai játék, amelyet jelenleg játszhatsz. Ez a játék nem csak nagyon hosszú ideje fe...
0 A.D. Bemutató
A sok stratégiai játék közül 0 A.D. átfogó címként és nagyon mély, taktikus játékként képes kiemelkednie annak ellenére, hogy nyílt forráskódú. A játé...
Unity3D bemutató
Bevezetés a Unity 3D-be Az Unity 3D egy erőteljes játékfejlesztő motor. Ez több platformon keresztül lehetővé teszi játékok, mobil, webes, asztali és ...