A szabad társadalom technológiája ksm (kernel samepage egyesülés)
KSM technológia (Kernel SamePage egyesítése)
1. ábra: KSM szolgáltatásEz a szolgáltatás hasznos a virtualizációhoz a KVM használatával. A virtuális virtuális gép csak a memóriából örökölte a qemu-kvm szülőprocesszust indításkor. Miután elindította a vendég virtuális gépet, az operációs rendszer képének tartalmát meg lehet osztani más vendéggépekkel, amelyek ugyanazt az operációs rendszert vagy ugyanazokat az alkalmazásokat használják. A KSM meghatározza és egyesíti azokat a memória oldalakat, amelyek nem befolyásolják a vendég virtuális gépét, és nem veszélyeztetik a fizikai hypervisor gép és más vendéggépek biztonságát. A KSM lehetővé teszi a KVM számára, hogy a vendég virtuális gépek azonos memóriaterületeit megosszák. A KSM kísérleti megvalósítása a Red Hat-tól azt mutatta, hogy a Windows XP 1 virtuális memóriával rendelkező virtuális példánya 16 GB RAM-mal futhat számítógépen.
A KSM jobb memóriafelhasználást biztosít, és felgyorsítja működését. A KSM használata során az általános adatok kevésbé valószínű, hogy lemossák a processzor gyorsítótárából és a fő memóriából. Ez csökkenti a "misses" számát a gyorsítótárban a vendéggépek működése során, ami növeli az alkalmazások és az operációs rendszerek teljesítményét. Emellett a memória megosztása csökkenti a vendéggépek által igényelt memória összmennyiségét, amely lehetővé teszi a meglévő erőforrások "sűrűbbé tételét".
KSM és NUMA
A Red Hat Enterprise Linux 6.5-től kezdődően a KSM NUMA (nem egységes memória hozzáférés) technológiával működik. Ez a funkció lehetővé teszi, hogy a KSM, amikor összeolvassa az oldalakat, figyelembe veszi a NUMA topológiáját. Ez megakadályozza azokat az eseteket, amikor az oldalak távoli helyeken vannak elhelyezve és a távoli telepítéssel kapcsolatos teljesítményproblémák.
A Red Hat azt ajánlja, hogy ne egyesítse ugyanazokat az oldalakat, ha ezek az oldalak különböző NUMA csomópontokon találhatók. Ehhez be kell állítani a konfigurálható paramétert / sys / kernel / mm / ksm / merge_nodes értéket 0. Miért? A belső kernelszámlálók nagyszámú csomópont-összevonást követően ütköznek egymással. Ennek eredményeként a numad démon zavaros lehet. Ha a rendszer nagy mennyiségű szabad memóriával rendelkezik, nagyobb teljesítményt érhet el a KSM démon letiltásával és kikapcsolásával. További információt a NUMA-ról a Red Hat Enterprise Linux teljesítmény-beállítási útmutatójában talál.
KSM szolgáltatások
A KSM Red Hat Enterprise Linux rendszerben történő kezeléséhez két szolgáltatás létezik:
- Az ksm szolgáltatás elindítja és leállítja a KSM rendszermag menetét.
- Az ksmtuned szolgáltatás figyeli az ksm szolgáltatást. dinamikusan kezeli az oldal egyesítését. Az ksmtuned szolgáltatás elindítja az ksm szolgáltatást, és abbahagyja, ha elég memória van. A KSM konfigurálásához, például, amikor egy vendéggépet hoz létre vagy megsemmisít, hívja a ksmtuned retune szolgáltatást.
Mindkét szolgáltatás felügyeletét szabványos szolgáltatáskezelési eszközök segítségével végzik.
KSM szolgáltatás
Az ksm szolgáltatás része a qemu-kvm csomagnak. A KSM alapértelmezés szerint le van tiltva a Red Hat Enterprise Linux 6 rendszerben. A Red Hat Enterprise Linux 6 KVM gazdagépként való használatakor azonban általában az ksm és a ksmtuned szolgáltatás engedélyezi.
Amikor az ksm szolgáltatás elindul, a KSM a fizikai gép fő memóriájának felét felosztja, amelyen a ház üzemeltetője van. Indítsa el az ksm szolgáltatást. A KSM több megosztott memóriaoldalat használ.
Az ksm szolgáltatás hozzáadható az alapértelmezett üzembe helyezéshez. Állítsa az ksm szolgáltatást állandóan a chkconfig paranccsal.
KSM konfigurációs szolgáltatás
Az ksmtuned szolgáltatásnak nincs lehetősége. A ksmtuned szolgáltatás a looping és a ksm szabályozása. Az ksmtuned szolgáltatást a libvirt folyamat értesíti. amikor egy vendég virtuális gépet hoznak létre vagy megsemmisítenek.
Ha hívja a szolgáltatást ksmtuned retune. Az ksmtuned szolgáltatás újra feltérképezi a konfigurációs fájlt, és újraindítja a konfigurációt. Mielőtt elkezdené leírni a paramétereket a fájlban, tisztázza a következő feltételeket:
- npages - hány ksm oldal kerül szkennelésre, mielőtt az ksmd alvó üzemmódba lép, beállítva a / sys / kernel / mm / ksm / pages_to_scan;
- rsz az összes qemu-kvm folyamat memóriájának összege. Kbytes;
- thres - aktivációs küszöb, Kbytes; a KSM ciklus akkor lép működésbe, amikor a thres + rsz összege meghaladja a rendszermemória teljes mennyiségét.
KSM változók és monitoring
A KSM felügyeleti adatokat ment a könyvtárban: / sys / kernel / mm / ksm /. A könyvtárban lévő fájlokat a rendszermag frissíti, és pontos képet nyújt a KSM használatáról. Az alábbi fájlok mindegyike tartalmaz egy számértéket, amely lehetővé teszi a szolgáltatás aktuális állapotának meghatározását:
- full_scans - a teljes vizsgálat kezdete;
- oldalak megosztva - az összesített oldalak száma;
- page_sharing - az egyesített oldalak száma az aktuális pillanatig.
- pages_to_scan - a még nem beolvasott oldalak száma;
- pages_unshared - az egyesített oldalak összesített száma, amelyeket új adatok rögzítése miatt osztottak fel;
- pages_volatile - az egyesített oldalak száma, amelyek az aktuális pillanatra vannak osztva;
- futni - a KSM szolgáltatás fut-e;
- sleep_millisecs - hány milliszekundum A KSM elvárja a következő futást.
A KSM konfigurációs tevékenység eredményei a log / var / log / ksmtuned fájlba kerülnek. ha a DEBUG = 1 string hozzáadódik a /etc/ksmtuned.conf fájlhoz. A naplófájl helye a LOGFILE paraméterrel módosítható. A naplófájl helyének módosítása nem ajánlott, és speciális SELinux konfigurációra van szüksége.
A KSM megáll
A KSM csökkenti a teljesítményt, ami fontos lehet, például nem elegendő a processzor teljesítményével. Ez a szolgáltatás kikapcsolható a ksmtuned és az ksm szolgáltatás leállításával. A szolgáltatás leállítása kikapcsolja a KSM-et az újraindításig.
A KSM kikapcsolásához, mialatt az újraindítás után ezt az állapotot megőrzi, használja a chkconfig parancsot:
Ne habozzon a swap fájlra
Győződjön meg róla, hogy a teljes memóriamennyiség, beleértve a lapozófájlt, elegendő minden futó folyamathoz, függetlenül attól, hogy a KSM fut-e. Ezzel elkerülhető a rendellenes helyzetek azokban az esetekben, amikor az oldalakat tömegesen nem osztják meg.