Kuidas puhastada RAM-i mälumällu, puhvrit ja vahetada ruumi Linuxis


Nagu iga teine operatsioonisüsteem, on ka GNU/Linux rakendanud mäluhaldust tõhusalt ja veelgi enam. Kuid kui mõni protsess sööb teie mälu ära ja soovite selle tühjendada, pakub Linux viisi, kuidas rammivahemälu tühjendada või kustutada.

Igal Linuxi süsteemil on kolm võimalust vahemälu tühjendada ilma mingeid protsesse ega teenuseid katkestamata.

1. Kustutage ainult PageCache.

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

2. Puhastage hambaproteesid ja inoodid.

# sync; echo 2 > /proc/sys/vm/drop_caches

3. Tühjendage PageCache, hambaravi ja inoodid.

# sync; echo 3 > /proc/sys/vm/drop_caches 

Ülaltoodud käsu selgitus.

sünkroonimine loputab failisüsteemi puhvrit. Käsk, mis on eraldatud koodiga \";" , töötab järjestikku. Kest ootab iga käsu lõppemist enne järgmise käsu käivitamist. Nagu tuuma dokumentatsioonis mainitud, puhastab drop_cache'i kirjutamine vahemälu rakendust tapmata/service, käsu kaja teeb faili kirjutamise tööd.

Kui peate kettavahe tühjendama, on esimene käsk ettevõttes ja tootmisel kõige turvalisem, kuna \"... echo 1>…." kustutab ainult PageCache'i. Kolmandat pole soovitatav kasutada \"... echo 3>" kohal olev tootmisvalik, kuni teate, mida teete, kuna see puhastab PageCache'i, hambaravi ja inode.

Kui rakendate erinevaid seadeid ja soovite kontrollida, kas see on tegelikult rakendatud spetsiaalselt I/O ulatuslikul võrdlusalusel, peate võib-olla puhastama puhvri vahemälu. Vahemälu saate tühistada, nagu ülalpool selgitatud, ilma süsteemi taaskäivitamata, st seisakuid pole vaja.

Linux on loodud nii, et enne kettale vaatamist uurib see ketta vahemälu. Kui see leiab ressursi vahemälust, ei jõua päring kettale. Kui puhastame vahemälu, on ketta vahemälu vähem kasulik, kuna OS otsib kettalt ressurssi.

Veelgi enam, see aeglustab ka süsteemi mõneks sekundiks, kui vahemälu on puhastatud ja kõik OS-i jaoks vajalikud ressursid laaditakse uuesti kettadesse.

Nüüd loome shelliskripti RAM-i vahemälu automaatseks tühjendamiseks iga päev kell 2 hommikul croni ajastaja ülesande kaudu. Looge shelliskript clearcache.sh ja lisage järgmised read.

#!/bin/bash
# Note, we are using "echo 3", but it is not recommended in production instead use "echo 1"
echo "echo 3 > /proc/sys/vm/drop_caches"

Määra faili clearcache.sh täitmisluba.

# chmod 755 clearcache.sh

Nüüd võite skripti kutsuda alati, kui vajate ram-vahemälu tühjendamist.

Nüüd määrake cron RAM-i vahemälu tühjendamiseks iga päev kell 2 hommikul. Redigeerimiseks avage crontab.

# crontab -e

Lisage järgmine rida, salvestage ja väljuge, et seda iga päev kell 2 hommikul käivitada.

0  2  *  *  *  /path/to/clearcache.sh

Lisateavet selle kohta, kuidas sooviksite tööd leida, vaadake meie artiklit 11 Croni ajastamise töökohta.

Ei! see ei ole. Mõelge olukorrale, kui olete skripti ajastanud rammivahemälu iga päev kell 2 öösel tühjendama. Iga päev kell 2 hommikul käivitatakse skript ja see loputab teie RAM-i vahemälu. Ühel päeval võib mingil põhjusel olla oodatust rohkem kasutajaid, kes on teie veebisaidil võrgus ja otsivad ressursse teie serverist.

Samal ajal käivitatakse ajastatud skript ja kustutatakse kõik vahemälust. Nüüd tõmbab kogu kasutaja kettalt andmeid. Selle tulemuseks on serveri krahh ja andmebaasi rikkumine. Nii et puhas vahemälu tühjendage ainult siis, kui see on vajalik, ja teate oma samme, muidu olete Cargo Cult System Administrator.

Kui soovite tühiku vahetada, võite käivitada alltoodud käsu.

# swapoff -a && swapon -a

Samuti võite ülaltoodud käsu lisada ülaltoodud cron-skriptile, olles mõistnud kogu sellega seotud riski.

Nüüd ühendame mõlemad ülaltoodud käsud üheks käsuks, et teha korralik skript RAM-i vahemälu ja ruumi vahetamiseks.

# echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'

OR

$ su -c "echo 3 >'/proc/sys/vm/drop_caches' && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'" root

Pärast mõlema ülaltoodud käsu testimist käivitame enne ja pärast skripti käivitamist käsu\"free -h" ning kontrollime vahemälu.

See on praegu kõik, kui artikkel teile meeldis, ärge unustage meile kommentaarides oma väärtuslikku tagasisidet anda, et meile teada anda. Mis on teie arvates hea mõte vahemälu ja puhvri tühjendamine tootmises ja Enterprise'is?