Aktuální hodnoty jádra Linuxu a jeho komponent jsou zpřístupněny pomocí speciálního rozhraní - adresáře / proc [5]. Toto je virtuální souborový systém, ve kterém jsou jednotlivé soubory naplněny hodnotami v reálném čase. Hodnoty představují skutečný stav, ve kterém se nachází jádro Linuxu. K jednotlivým souborům v adresáři / proc můžete přistupovat pomocí příkazu cat následujícím způsobem:
$ cat / proc / sys / net / core / somaxconn128
$
Jeden z těchto parametrů jádra se nazývá vm.swappiness. „Řídí relativní váhu, která je dána výměnou z runtime paměti, na rozdíl od vynechání stránek paměti z mezipaměti systémových stránek“ [6]. Počínaje verzemi linuxového jádra 2.6 byla zavedena tato hodnota. Je uložen v souboru / proc / sys / vm / swappiness .
Pomocí Swap
Použití swapu [6] bylo na počátku 90. let zásadní součástí používání menších UNIXových strojů. Stále je užitečné (například mít ve vozidle rezervní pneumatiku), když vám do práce naruší nepříjemné úniky paměti. Zařízení se zpomalí, ale ve většině případů bude stále použitelné k dokončení přiděleného úkolu. Vývojáři bezplatného softwaru dělají velké kroky ke snížení a eliminaci chyb programu, takže před změnou parametrů jádra zvažte nejprve aktualizaci na novější verzi vaší aplikace a souvisejících knihoven.
Pokud spouštíte mnoho úkolů, neaktivní úkoly budou vyměněny na disk, což u vašich aktivních úkolů zlepší využití paměti. Úpravy videa a další aplikace náročné na paměť často doporučují velikost paměti a místa na disku. Pokud máte starší počítač, který nemůže mít upgrade paměti, může být pro vás dobrým dočasným řešením zpřístupnění více swapů (viz [6], jak se o tom dozvědět více).
K výměně může dojít na samostatném oddílu nebo na odkládacím souboru. Oddíl je rychlejší a oblíbený mnoha databázovými aplikacemi. Souborový přístup je flexibilnější (viz balíček dphys-swapfile v Debian GNU / Linux [7]). Mít více než jedno fyzické zařízení pro výměnu umožňuje linuxovému jádru vybrat zařízení, které je nejrychleji dostupné (nižší latence).
vm.swappiness
Výchozí hodnota vm.swappiness je 60 a představuje procento volné paměti před aktivací swapu. Čím nižší hodnota, tím méně swapování a více stránek paměti je uloženo ve fyzické paměti.
Hodnota 60 je kompromis, který funguje dobře pro moderní stolní systémy. Pro serverový systém je místo toho doporučená menší hodnota. Jak zdůrazňuje příručka Red Hat Performance Tuning [8], u databázových úloh se doporučuje menší hodnota swappiness. Například pro databáze Oracle doporučuje Red Hat hodnotu swappiness 10. Naproti tomu pro databáze MariaDB se doporučuje nastavit swappiness na hodnotu 1 [9].
Změna hodnoty přímo ovlivňuje výkon systému Linux. Jsou definovány tyto hodnoty:
* 0: swap je deaktivován
* 1: minimální množství prohození bez úplného deaktivace
* 10: doporučená hodnota pro zlepšení výkonu, pokud v systému existuje dostatek paměti
* 100: agresivní výměna
Jak je uvedeno výše, příkaz cat pomáhá číst hodnotu. Příkaz sysctl vám dává stejný výsledek:
# sysctl vm.swappinessvm.swappiness = 60
#
Pamatujte, že příkaz sysctl je k dispozici pouze administrativnímu uživateli. Chcete-li dočasně nastavit hodnotu, nastavte hodnotu v systému souborů / proc následujícím způsobem:
# echo 10> / proc / sys / vm / swappinessAlternativně můžete použít příkaz sysctl takto:
# sysctl -w vm.swappiness = 10Chcete-li trvale nastavit hodnotu, otevřete soubor / etc / sysctl.conf jako administrativní uživatel a přidejte následující řádek:
vm.swappiness = 10Závěr
Stále více uživatelů linuxu používá virtuální stroje. Každý z nich má kromě hypervisoru, který ve skutečnosti řídí hardware, také vlastní jádro. Virtuální stroje mají pro ně vytvořeny virtuální disky, takže změna nastavení uvnitř virtuálního stroje bude mít neurčité výsledky. Nejprve experimentujte se změnou hodnot jádra hypervisoru, protože ve skutečnosti řídí hardware ve vašem počítači.
U starších počítačů, které již nelze upgradovat (již mají maximální podporovanou paměť), můžete zvážit umístění malého disku SSD do zařízení a použít jej jako další odkládací zařízení. To se zjevně stane spotřebním materiálem, protože paměťové buňky selhávají při spoustě zápisů, ale může prodloužit životnost stroje na rok nebo více za velmi nízké náklady. Nižší latence a rychlé čtení poskytnou mnohem lepší výkon než výměna za běžný disk, což poskytne mezilehlé výsledky RAM. To by vám mělo umožnit použít o něco nižší vm.hodnoty swappiness pro optimální výkon. Budete muset experimentovat. Zařízení SSD se rychle mění.
Pokud máte více než jedno odkládací zařízení, zvažte vytvoření zařízení RAID pro prokládání dat mezi dostupnými zařízeními.
V swappiness můžete provádět změny bez restartování počítače, což je hlavní výhoda oproti jiným operačním systémům.
Zkuste zahrnout pouze služby, které pro své podnikání potřebujete. To sníží požadavky na paměť, zlepší výkon a udrží vše jednodušší.
Závěrečná poznámka: Do svých odkládacích zařízení přidáváte zatížení. Budete chtít sledovat jejich teploty. Přehřátý systém sníží frekvenci procesoru a zpomalí.
Poděkování
Autor by rád poděkoval Geroldovi Rupprechtovi a Zolece Hatitongwe za jejich kritické poznámky a komentáře při přípravě tohoto článku.
Odkazy a reference
* [1] Výukový program pro jádro Linuxu pro začátečníky, https: // linuxhint.com / linux-kernel-tutorial-začátečníci /
* [2] Derek Molloy: Writing a Linux Kernel Module - Part 1: Introduction, http: // derekmolloy.tj / úvod-úvod-zápis-a-linux-jádra-modulu-1 /
* [3] Derek Molloy: Writing a Linux Kernel Module - Part 2: A Character Device, http: // derekmolloy.tj. / write-a-linux-kernel-module-part-2-a-character-device /
* [4] Derek Molloy: Writing a Linux Kernel Module - Part 3: Buttons and LEDs, http: // derekmolloy.tj. / kernel-gpio-programming-buttons-and-leds /
* [5] Frank Hofmann: Příkazy ke správě paměti Linux, https: // linuxhint.com / commands-to-manage-linux-memory /
* [6] Frank Hofmann: Linux Kernel Memory Management: Swap Space, https: // linuxhint.com / linux-memory-management-swap-space /
* [7] balíček dphys-swapfile pro balíčky Debian GNU / Linux, https: //.debian.org / stretch / dphys-swapfile
* [8] Red Hat Performance Tuning Guide, https: // přístup.červená čepice.com / dokumentace / en-us / red_hat_enterprise_linux / 6 / html / performance_tuning_guide / s-memory-tunables
* [9] Konfigurace MariaDB, https: // mariadb.com / kb / en / library / configuring-swappiness /