← Zpět na všechny články blogu

RAM na Linuxu

Váš Hosting
Váš Hosting Aktualizováno 10. 8. 2026 – 17 min. čtení

Do operační paměti si může server nebo aplikace ukládat data, ale pokud paměť dojde, tak server přejde k plánu B a začne tyto data ukládat na pevný disk (swap), který je mnohem pomalejší.

Je tedy důležité operační paměť pravidelně sledovat a v případě problému včas zakročit. U nás na serveru máte předinstalované s VPS Centrem dvě aplikace Munin a phpSysinfo, kde uvidíte statistiky ohledně RAM.

Pokud má server dostatek RAM, tak jí využívá k uchovávání cache, aby nemusel pokaždé načítat stejný soubor vícekrát. Pokud server restartujete, tak cache vyčistíte.

Ukazatel mezipaměti v aplikaci sysinfo

Nebojte se, že cache si vezme všechny RAM prostředky, které na serveru máte. Využívá pouze nevyužitou paměť. Hlavní prioritu má samozřejmě jádro a aplikace a pokud by potřebovali víc paměti, tak mezipaměť jí uvolní.

Disk caching nelze vypnout, ale jediný důvod, proč to chtěl někdo vypnout byl, že nevěděl, jak to přesně funguje a že to má pouze samá pozitiva.

Příkazová řádka

Pomocí příkazu free -g uvidíte, kolik máte na serveru volné RAM v GB nebo free -m v MB. Poznáte kolik se jí využívá na buffer/cache a uvidíte i využití swapu.

Výstup přikazu free -m

Pokud uvidíte, že server spotřebovává 99% RAM, tak s největší pravděpodobností započítává cache jako “memory used” i když v případě potřeby se paměť dokáže uvolnit. (výborně zobrazuje využití RAMU právě aplikace z VPS Centra sysinfo)

Stejný server, jiný výstup.

Oblíbený příkaz na terminálu je HTOP.

Je to barevnější a promakanější verze příkazu “top”, vypíše všechny běžící a spící procesy.

Během chvíle, tak zjistíte momentální využití RAM, SWAPu nebo CPU. Hlavně ale uvidíte veškeré procesy a můžete si je po kliknutí v horní liště např. seřadit podle využití RAM nebo CPU.

Dokážete tak lépe určit, které procesy/aplikace požírají nejvíce z operační paměti a nechat si je seřadit od největších “požíračů”.

Výpis běžících procesů na serveru

Dole máte akční lištu a pomocí kláves F1 až F10 můžete provádět různé akce. Rozebereme si všechny.

F1 – Help

Zde najdete všechny informace k ostatním “F” a jak se v HTOP orientovat. Je to velice podobné Midnight Commanderu, kde můžete využívat šipky a myš.

F2 – Setup

Celý panel si můžete přizpůsobit a upravit podle sebe. Ať už se jedná o přidání či odebrání parametrů do sloupce anebo v jaké barvě se to má zobrazovat.

Celou tabulku si můžete přizpůsobit

F3 – Search

Napíšete jméno procesu, který hledáte a ten se žlutě zvýrazní a pomocí klávesy F3 přeskočíte na další stejnojmenný proces.

F4 – Filter

Má stejnou funkci jako “Search”, ale místo zvýraznění jednotlivého procesu všechny se stejným názvem vyfiltruje, takže vidíte pouze tyto procesy.

F5 – Tree

Velice užitečná funkce se skrývá pod klávesou F5, která všechny procesy rozvětví podle toho, jak jsou na sobě vázaný. Pomocí F5 vrátíte procesy do původního stavu.

F6 – SortBy

Můžete si všechny procesy seřadit podle toho, jak využívají CPU, RAM anebo podle uživatele či priority.

F7 – Nice- F8 – Nice+

Po kliknutí na jednotlivý proces můžete pomocí klávesnice F7 snížit o jeden bod prioritu anebo pomocí F8 naopak navýšit.

F9 – Kill

Pokud proces zlobí anebo bere dost prostředků, tak po vybrání procesu a stisknutí F9 můžete procesu vyslat signál, kterým ho ukončíte. Jedná se o signal 15 – SIGTERM anebo 9 – SIGKILL.

A nakonec pomocí klávesnice F10 htop ukončíte.

Munin

Dobré je mít přehled i o dlouhodobé výkonnosti RAM a CPU. Na našich serverech s VPS Centrem máte předinstalovaný monitorovací nástroj Munin, který právě s tímhle problémem pomůže.

Už jsme o něm několikrát psali, ale opakování je matka moudrosti. 🙂

Na screenshotu uvidíte využití RAM ve všech intervalech.

Vytížení RAM v Muninu

Největší výhoda je, že si můžete grafy zobrazit v denním, týdenním anebo ročním rozsahu. Zjistíte tak, kdy se začala zvětšovat zátěž a lépe identifikujete problém.

Diagnostika RAM

V prvním screenshotu vidíme, že se serveru dostává dostatku RAM, protože tam nikde nevidíme červenou línii, kterou je označováno právě ukládání procesů z operační pamětí na odkládaci disk. Taky vidíme, že spousty operační paměti si bere cache/buffers (modrá a fialová barva). Server si tedy ukládá procesy a soubory do RAM, tak aby zrychlil běh systému, když budou znova potřebovat.

Spousta lidí, ale neví, že jakmile serveru dochází operační pamět, tak první čeho se zbavuje, je právě cache a buffers, tak aby pro nové procesy uvolnil místo. Takže jakmile příjde větší zátěž, server automaticky uvolní operační pamět, tak aby dokázal pokrýt poptávku. Může si i dočasně šáhnout do SWAPu, protože nestihne všechno uvolnit. Když tedy uvidíte, že si server šáhnul do SWAPu, ale další dny už na něj nešáhnul, tak to je dobré znamení a nemusíte RAM navyšovat.

Cache i Buffery se z RAM vymažou také po každém restartu serveru. Takže můžete server restartovat a hned se podívat, kolik spotřebovává RAM, než se „zaplní“ cache a buffery.

Teď se pojďme podívat na ten horší případ.

Na svůj server jsem instaloval Elasticsearch, a hned vidíte tu změnu. V operační paměti se okamžitě vyprázdnila cache + buffers, naskočila tam červená linie, který ukazuje, že operační pamět nestíhá, a aby pokryla poptávku, tak využivá SWAP. Nejedná se o jednorázový problém, protože je vidět, že nároky neubývají a RAM si dlouhodobě šahá na odkládací prostor a tím pádem zpomaluje celý systém.

V tomto případě je dobré navýšit RAM min. o 1GB. To můžete provést rovnou ze zákaznického centra a do 15 minut je hotovo.

Takhle vypadá zobrazení CPU.

Vytížení CPU v Muninu

Vmstat

Vmstat je vestavěný nástroj pro monitorování systému Linux. Jeho primární úlohou je měření využití virtuální paměti systémem.

Co je to SWAP in/out?

Když načtete soubor nebo program, soubor se uloží do paměti RAM, protože RAM je konečná, některé soubory se na ni nevejdou. Tyto soubory jsou uloženy ve speciální části pevného disku, která se nazývá „SWAP“.

Swapping je mechanismus, ve kterém lze dočasně vyměnit proces z paměti do záložního úložiště (Swap OUt) a poté jej přivést zpět do paměti pro další provádění (Swap In). Pokud systém (řekněme jeden proces) potřebuje více paměťových prostředků a paměť RAM je plná, tak se přesune do SWAPu (swap out) a tyto neaktivní stránky se přenesou zpět do operační paměti, jakmile se uvolní (swap in).

Když dojde k výměně, výkon systému drasticky poklesne. Je to proto, že rychlost  I / O serveru je mnohem pomalejší než RAM, i když se hardware – například rychlý SSD – používá pro virtuální paměť. Když navíc Linux používá virtuální paměť, utrácí více svých cyklů CPU za swapping virtuální paměti.

To znamená, že administrátoři musí věnovat pozornost využití paměti serveru. Nikdo nechce, aby systém zpomalil. Virtuální paměť má velký vliv na výkon systému, proto je vmstat nezbytný pro její sledování. Kromě monitorování virtuální paměti vmstat měří také plánování procesů, I / O a CPU.

Jak používat vmstat?

Pro spuštění vmstatu se připojte na SSH. Když spustíte vmstat bez jakýchkoli parametrů, zobrazí systémové hodnoty na základě průměrů pro každý prvek od posledního restartu serveru. Tyto výsledky nepředstavují snímek aktuálních hodnot. Spusťte vmstat pomocí následujícího příkazu:

vmstat

A uvidíte tento výstup:

Všimněte si, jak vmstat vrací informace o procesech systému, paměti, swap in/out, systémových přerušeních (system/in) a kontextových přepínačích (system/cs) a CPU. Chcete-li se dozvědět více o každém sloupci a hodnotě, zobrazte man pages vmstat vydáním příkazu man vmstat a vyhledáním každé konkrétní oblasti. Například když prohlížíte stránky manuálu vmstat, chcete-li zobrazit více informací o sloupci swap, zadejte příkaz /swap.

Syntaxe vmstat je následující:

vmstat [options]  [delay]  [count]
  • [options] – možnosti nastavění příkazu vmstat např. vmstat -S mb (zobraz výstup v MB)
  • [delay] – časový interval mezi aktualizacemi. Pokud není zadáno žádné zpoždění, výstup se zobrazí jako průměr od posledního restartu.
  • [count] – počet aktualizací vytištěných po daném intervalu zpoždění.

Můžete například vydat následující příkaz, který vmstat aktualizuje každých 5 vteřin a celkový počet aktualizací bude 7.

vmstat 5 7

A takhle bude vypadat výstup:

Freelo - Nástroj na řízení úkolů a projektů

Přidej se, pozvi svůj tým a klienty, rozděl práci a sleduj, jak se úkoly dají do pohybu.

Jak interpretovat výstup vmstat?

Výstupy vmstat popisují aktuální stav systému Linux. Informace týkající se provozního stavu systému jsou užitečné při diagnostice problémů souvisejících s výkonem.

Sloupec procs

Hlásí počet zpracovatelských úloh čekajících na spuštění a umožňují vám určit, zda existují procesy, které „blokují“ bezproblémový běh vašeho systému.

Sloupec r zobrazuje celkový počet procesů čekajících na přístup k procesoru. Sloupec b zobrazuje celkový počet procesů ve stavu „spánku“.

Tyto hodnoty jsou často 0. Pokud ne, už víte, kde můžete hledat problém.

Sloupec memory

Informace zobrazené v sekci paměti poskytují stejná data o využití paměti jako příkaz free -m.

Sloupec swapd nebo „swapped“ uvádí, kolik paměti bylo převedeno na swapový soubor nebo disk. Free sloupec uvádí množství nepřidělené paměti. Sloupec buff nebo „buffers“ uvádí množství alokované paměti v provozu. Sloupec cache uvádí množství paměti, které lze v případě potřeby uvolnit pro jinou úlohu.

Sloupec swap

Swapovací část hlásí rychlost, kterou je paměť odeslána nebo načtena z odkládacího uložiště. Díky hlášení „swapování“ odděleně od celkové aktivity disku vám vmstat umožňuje určit, kolik aktivity disku souvisí s odkládacím (swap) systémem.

Sloupec SI (swap in) uvádí množství paměti, které je přesunuto ze swapu do „skutečné“ paměti za sekundu. Sloupec SO (swap out) uvádí množství paměti, které je přesunuto do swapu ze „skutečné“ paměti za sekundu.

Sloupec I/O

Sekce I/O hlásí množství vstupní a výstupní aktivity za sekundu, pokud jde o přečtené bloky a zapsané bloky.

Sloupec BI uvádí počet přijatých bloků neboli „bloků“ z disku za sekundu. Sloupec BO hlásí počet odeslaných bloků neboli „blokování“ na disk za sekundu.

Sloupec System

Sekce systému hlásí data, která odrážejí počet operací systému za sekundu.

Sloupec IN uvádí počet systémových přerušení za sekundu, včetně přerušení systémových hodin. Sloupec CS (context switch) uvádí počet kontextových přepínačů, které systém provede za účelem zpracování všech úkolů.

Sloupec CPU

Sekce CPU informuje o využití zdrojů CPU systému. Sloupce v této části se vždy zobrazují od 0 do 100 a odrážejí „procento dostupného času“.

  • Sloupec US uvádí množství času, které procesor tráví úkoly uživatele nebo nad všemi procesy, které nesouvísí s jádrem Linuxu (kernelem).
  • Sloupec SY uvádí dobu, kterou procesor tráví úkoly souvisejícími s jádrem kernelu.
  • Sloupec ID udává dobu, kterou je procesor nečinný
  • Sloupec WA uvádí dobu, kterou procesor stráví čekáním na dokončení operací I/O, než bude moci pokračovat ve zpracování úloh.

VPS Centrum

Vyzkoušejte zdarma naši aplikaci pro správu serveru a domén. Budete si připadat jako zkušený administrátor.

Kdy začíná u RAM problém?

Nejdříve se podíváme, jak může vypadat zdravý linux systém i když se to na první pohled nemusí zdát.

  • free – je blízko 0
  • used – je blízko k total
  • available – (taky free + buffers/cache) má dostatek místa ( dohromady +20%)
  • swap used – nemění se

Příkaz: free G

Varovné signály, které způsobují problém z pamětí:

  • available (free + buffers/cache) – je blízko 0
  • swap used – začíná se zvětšovat
  • dmsg | grep oom-killer – ukončí “zabijaka” paměti

Jak promazat cache a SWAP v Linuxu?

Linux nám dává možnost nechat promazat cache i SWAP, tak se ně pojďme podívat.

SWAP

Pokud systém uloží něco do SWAPU, tak se systém stává strašně pomalým a jakmile vyřešíte problém s nedostatkem RAM, tak můžete pročistit SWAP pomocí:

swapoff -a && swapon -a

A během pár vteřin je uložená paměť pryč.

Cache

PageCache only

tento příkaz pročistí na disku PageCache only bez toho aniž, by ohrozil aplikace nebo služby.

sync; echo 1 > /proc/sys/vm/drop_caches

Jakmile cache pročistíte, tak na pár vteřin se server zpomalí a následně všechny další dotazy půjdou už přímo na disk.

Ramdisk

Můžeme si vytvořit i tzv. RAMDISK neboli složku do které můžeme ukládat často používané soubory.

Vytvoříme složku.

mkdir /mnt/ramdisk

Pomocí příkazu “mount” vytvoříme ramdisk.

mount -t (TYPE) -o size=(SIZE) (FSTYPE) (MOUNTPOINT)

vysvětlení atributu:

(TYPE) – je typ, který využijeme pro RAM disk. Buď tmpfs or ramfs

(SIZE) – velikost, kterou bude ramdisk mít.

(FSTYPE) – file storage kterou bude RAM disk používat. Buď tmpfs, ramfs, ext4 apod.

Konkrétní příklad:

mount -t tmpfs -o size=512m tmpfs /mnt/ramdisk

Jsem tedy můžete ukládat soubory, které se často používají. Nejlepším kandidátem může být složka cache ve WP, nebo složka se sessions. Záleží opravdu případ od případu, co se vám bude hodit nejvíce. Nezapomeňte, že každý soubor zde zabere 4kB a je nutné se pak zamyslet nad pravidelném čištění, nejlépe pomocí aut. skriptu.

Na našich serverech máte podobný skript připravený po přihlášení na SSH ve složce /bin/php_sessions_clean.sh

Pokud vás zajímá tahle problematika více můžete ještě experimentovat a ověřit si nabité know-how na vlastním serveru.

Vyzkoušet zdarma VPS

Zdroje

Často kladené otázky

Proč Linux ukazuje, že mám plnou RAM, i když nic velkého neběží?

Linux záměrně využívá volnou RAM pro cache souborového systému. Ve výstupu příkazu free se cache počítá do sloupce „buff/cache“. I když je RAM z velké části obsazená cache, není to problém. Ve skutečnosti je cache jen dočasné využití, které systém okamžitě uvolní, jakmile ji potřebuje některý proces.

Důležitá je hodnota „available“ (dostupná paměť), ne „free“ (volná paměť). Available ukazuje, kolik paměti mohou procesy reálně použít, včetně paměti, kterou systém uvolní z cache. Pokud je hodnota available dostatečná, váš server funguje v pořádku.

Pro přehledný monitoring doporučujeme nástroj htop, který zobrazuje využití paměti barevně odlišené (procesy vs. cache vs. buffers). Na VPS serveru si ho nainstalujete jedním příkazem. Pokud vás zajímá i monitoring procesoru, přečtěte si jak měřit využití CPU na Linuxu.

Co je SWAP a kdy se stává problémem?

SWAP je odkládací prostor na disku, který Linux používá jako záložní paměť, když dojde fyzická RAM. Systém přesune méně používané části paměti z RAM na disk, čímž uvolní místo pro aktivní procesy. To samo o sobě není problém.

Problém nastává, když server začne swapovat intenzivně a průběžně (tzv. thrashing). Disk je řádově pomalejší než RAM, takže časté čtení a zápis do SWAP výrazně zpomalí celý server. Poznáte to podle vysokých hodnot si (swap in) a so (swap out) ve výstupu příkazu vmstat.

Pokud váš server pravidelně swapuje, je čas zvýšit množství RAM. Na VPS serveru od Váš Hosting můžete RAM navýšit bez nutnosti reinstalace. Než se ale rozhodnete, ověřte si, zda paměť nežere konkrétní proces. Pomůže s tím správné nastavení PHP-FPM, které je častým viníkem.

Jak zjistím, který proces na serveru žere paměť?

Nejrychlejší způsob je příkaz htop, který zobrazí běžící procesy seřazené podle spotřeby RAM. Sloupec RES ukazuje skutečně obsazenou fyzickou paměť daným procesem. Můžete také použít příkaz ps aux –sort=-%mem | head -21, který vypíše 20 procesů s největší spotřebou paměti.

U webových serverů jsou největšími konzumenty paměti typicky PHP-FPM workery, databázový server (MySQL/MariaDB) a případně cache služby (Redis, Memcached). Každý PHP-FPM worker zabírá desítky MB RAM a při špatném nastavení jich může běžet příliš mnoho najednou.

Pro dlouhodobý monitoring doporučujeme nástroj Munin, který generuje grafy využití paměti v čase. Díky tomu odhalíte trendy a úniky paměti (memory leaks). Praktické tipy pro nastavení PHP workerů najdete v článku Jak na tuning PHP-FPM. Pro pochopení databázové zátěže si přečtěte Jak zrychlit databázi.

Jak promazat cache a SWAP v Linuxu?

Cache souborového systému promazat můžete, ale většinou to není potřeba. Linux ji spravuje automaticky a uvolní ji, když ji procesy potřebují. Pokud přesto chcete cache vymazat (například při testování výkonu), použijte příkaz sync; echo 3 > /proc/sys/vm/drop_caches.

Pro vyprázdnění SWAP je potřeba nejdříve ověřit, že máte dostatek volné RAM, kam se data ze SWAP přesunou. Poté provedete swapoff -a (vypne SWAP) a swapon -a (znovu zapne SWAP). Pozor, pokud nemáte dostatek volné RAM, může server přestat odpovídat.

Místo ručního mazání cache je lepší řešit příčinu. Pokud server swapuje, potřebujete více RAM nebo lépe nakonfigurované služby. Podívejte se na nastavení PHP-FPM a databáze. Pokud potřebujete více prostředků, zvažte upgrade VPS serveru.

Co je Ramdisk a kdy ho na serveru použít?

Ramdisk je souborový systém vytvořený přímo v operační paměti. Funguje jako virtuální disk, který je extrémně rychlý, protože čtení a zápis probíhá v RAM místo na fyzickém disku. Data na ramdisku ale nepřežijí restart serveru.

Ramdisk se hodí pro dočasné soubory, které nepotřebujete uchovávat. Typické použití na webovém serveru zahrnuje PHP session soubory, dočasné cache soubory nebo logy, které se pravidelně rotují. Přesunutím těchto dat do ramdisku snížíte zátěž disku a zrychlíte operace.

Vytvořit ramdisk v Linuxu je jednoduché: stačí připojit tmpfs na požadovaný adresář. Pozor ale na velikost, protože ramdisk zabírá RAM, která pak chybí procesům a databázi. Na VPS serveru doporučujeme ramdisk jen pokud máte dostatek paměti. Pro celkovou optimalizaci výkonu webu se podívejte na článek Jak zrychlit web.

Zůstaňte s námi v kontaktu

Jednou za měsíc posíláme souhrn novinek. Nemusíte se bát, spamovat vás nebudeme a odhlásit se můžete kdykoliv...

Karel Dytrych
Tým Váš Hosting
Vyzkoušejte náš trial na týden zdarma

Garance 14denní záruky vrácení peněz

Vyzkoušejte server na týden zdarma

Vyzkoušet server

Přesouváte web na lepší hosting?

Stáhněte si průvodce migrací bez výpadku

Průvodce migrací na lepší hosting