CH-J Server ManagerPalvelimen hallinta yli SSH
Valikko
Kaikki oppaat ja artikkelit →

RAM-muistin, välimuistin ja swap-tilan tulkitseminen Linux-palvelimella

Mitä free-komennon sarakkeet tarkoittavat, miksi suuri muistinkäyttö on usein normaalia ja mitkä merkit todella viittaavat muistin loppumiseen.

Katso available-saraketta, älä free-saraketta

Linux käyttää muuten käyttämättömän muistin levyvälimuistina, joten vähäinen vapaa muisti on normaalisti toimivalla palvelimella tavallista. available-sarake on ytimen arvio siitä, paljonko muistia uudet tehtävät voivat saada ilman siirtoa swap-tilaan. Se on seurattava luku. used-arvon tarkka laskutapa riippuu työkalun versiosta, joten älä vertaa sitä eri järjestelmien välillä.

free -h
grep -E 'MemAvailable|Shmem:|SReclaimable' /proc/meminfo

Mitä välimuistista voi ja ei voi vapauttaa

Sivuvälimuisti voidaan yleensä vapauttaa, kun sovellukset tarvitsevat muistia. Myös jaettu muisti ja tmpfs (Shmem) näkyvät välimuistissa, mutta niitä ei voi vain hylätä, koska ne sisältävät tietoja, joista ei ole kopiota levyllä. Suuri välimuisti ja vähäinen käytettävissä oleva muisti tarkoittavatkin usein suurta tmpfs-tiedostojärjestelmää tai jaetun muistin segmenttiä.

df -h -t tmpfs
sudo slabtop -o | head -15

swap-tilan käyttö ei automaattisesti ole ongelma

Palvelin voi pitää harvoin käytettyjä sivuja swap-tilassa viikkoja ilman haittaa. Haitallista on jatkuva siirtely. Seuraa vmstat-komennon si- ja so-sarakkeita: jatkuvasti nollan yläpuolella pysyvät arvot tarkoittavat, että järjestelmä siirtää aktiivisesti sivuja RAM-muistin ja swap-tilan välillä, mikä on merkki todellisesta muistipulasta.

swapon --show
vmstat 1 5

Selvitä, mikä käyttää muistia

Järjestä prosessit RAM-muistissa olevan eli residentin muistin määrän mukaan. RSS laskee prosessien yhteiset sivut mukaan jokaiselle prosessille, joten usean prosessin arvoja ei voi vain laskea yhteen. PSS:ää tukevat työkalut, kuten smem, antavat todenmukaisemman summan, jos ne on asennettu.

ps -eo pid,user,rss,comm --sort=-rss | head -15

Tunnista todellinen muistipula

Merkkejä ovat vähäinen käytettävissä oleva muisti, jatkuva siirtely RAM-muistin ja swap-tilan välillä sekä prosessit, jotka out-of-memory killer on lopettanut. Tarkista ytimen loki. Älä suorita drop_caches-komentoa saadaksesi luvut näyttämään paremmilta: se vain pakottaa palvelimen lukemaan levyltä uudelleen eikä ratkaise mitään.

sudo journalctl -k --no-pager | grep -iE 'out of memory|oom-kill'

Muisti CH-J Server Managerissa

System Monitor lukee nämä arvot SSH-yhteydellä. Linuxissa se määrittelee used-arvon kaavalla MemTotal − MemFree − Buffers − Cached − SReclaimable ja available-arvon ytimen arvion mukaan. Jaettu muisti sisältyy Cached-arvoon eikä ole vapautettavissa, eivätkä palkin luokat ole päällekkäisiä. Koska kaava eroaa joidenkin free-versioiden kaavasta, luvut eivät välttämättä täsmää tarkasti. Se näyttää myös swap-tilan käyttöhistorioineen. ZFS ARC -välimuistia ei käsitellä erikseen, joten ZFS-isännillä se lasketaan käytetyksi muistiksi.

Yksityiskohtaiset asiakirjat

man: free →

man: proc_meminfo →

Biometrinen aukko ja turvallisuus →