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/meminfoMitä 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 -15swap-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 5Selvitä, 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 -15Tunnista 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.