Wéi läschen RAM Memory Cache, Buffer a Swap op Linux


Wéi all aner Betribssystem, huet GNU/Linux Erënnerung Gestioun effizient an nach méi wéi dat ëmgesat. Awer wann e Prozess Är Erënnerung ësst an Dir wëllt et läschen, Linux bitt e Wee fir de Ram Cache ze spülen oder ze läschen.

  • Fannt Top 15 Prozesser duerch Memory Usage am Linux
  • Fannt Top Lafen Prozesser duerch héchst Gedächtnis an CPU Benotzung am Linux
  • Wéi Limitéiert Dir Zäit a Gedächtnisverbrauch vu Prozesser am Linux

All Linux System huet dräi Optiounen fir de Cache ze läschen ouni Prozesser oder Servicer z'ënnerbriechen.

1. Nëmmen PageCache läschen.

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

2. Kloer Zänn an Inoden.

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

3. Kloer pagecache, dentries, an inoden.

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

Erklärung vum uewe genannte Kommando.

Synchroniséierung wäert de Dateisystembuffer spülen. Kommando getrennt duerch \; sequenziell lafen. D'Shell waart op all Kommando fir ofzeschléissen, ier de nächste Kommando an der Sequenz ausgefouert gëtt. Wéi an der Kerneldokumentatioun erwähnt, schreift op drop_cache de Cache botzen ouni ëmzebréngen Applikatioun/Service, Kommando Echo mécht d'Aarbecht fir op Datei ze schreiwen.

Wann Dir den Disk Cache muss läschen, ass deen éischte Kommando am séchersten an der Entreprise an der Produktioun well \...echo 1 > .... nëmmen de PageCache läschen. Et ass net recommandéiert de drëtt Optioun uewen \...echo 3 > an der Produktioun bis Dir wësst wat Dir maacht, well et Pagecache, Dentries an Inoden läschen.

Wann Dir verschidden Astellungen applizéiert a wëllt iwwerpréiwen, ob et tatsächlech speziell am I/O-extensive Benchmark implementéiert ass, da musst Dir vläicht de Puffer Cache läschen. Dir kënnt de Cache erofsetzen wéi uewen erklärt ouni de System nei ze starten, dh keng Ausdauer erfuerderlech.

Linux ass esou entworf datt et an den Disk Cache kuckt ier Dir op den Disk kuckt. Wann et d'Ressource am Cache fënnt, da kënnt d'Ufro net op d'Disk. Wa mir de Cache botzen, gëtt den Disk Cache manner nëtzlech well d'OS no der Ressource op der Disk kuckt.

Ausserdeem wäert et och de System fir e puer Sekonnen verlangsamen, während de Cache gebotzt gëtt an all Ressource, déi vum OS erfuerderlech ass, gëtt erëm am Disk Cache gelueden.

Elo wäerte mir e Shell-Skript erstellen fir de RAM Cache all Dag um 2 Auer iwwer eng Cron Scheduler Task ze läschen. Erstellt e Shell-Skript clearcache.sh a füügt déi folgend Zeilen derbäi.

#!/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"

Setzt d'Ausféierungserlaabnes op der clearcache.sh Datei.

# chmod 755 clearcache.sh

Elo kënnt Dir de Skript uruffen wann Dir verlaangt de Ram Cache ze läschen.

Setzt elo e Cron fir de RAM Cache all Dag um 2 Auer ze läschen. Open crontab fir z'änneren.

# crontab -e

Füügt d'Linn hei ënnen un, späichert a gitt eraus fir se all Dag um 2 Auer ze lafen.

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

Fir méi Detailer iwwer wéi een eng Aarbecht cron, kënnt Dir gären eisen Artikel iwwer 11 Cron Scheduling Jobs kucken.

Nee! et ass net. Denkt un eng Situatioun wann Dir de Skript geplangt hutt fir de Ram Cache all Dag um 2 Auer ze läschen. All Dag um 2 Auer gëtt de Skript ausgefouert an et spült Äre RAM Cache. Enges Daags aus irgend engem Grond kann méi sinn wéi erwaart Benotzer sinn online op Ärer Websäit a sichen Ressourcen vun Ärem Server.

Zur selwechter Zäit leeft de geplangte Skript a läscht alles am Cache. Elo sichen all d'Benotzer Daten aus der Disk. Et wäert zu engem Server Crash féieren an d'Datebank korruptéieren. Also kläert Ram-Cache nëmmen wann néideg, a bekannt Är Schrëtt, soss sidd Dir e Cargo Cult System Administrator.

Wann Dir Swap Space wëllt läschen, kënnt Dir gären de Kommando hei ënnen ausféieren.

# swapoff -a && swapon -a

Och kënnt Dir de uewe genannte Kommando un e Cron-Skript hei uewen addéieren, nodeems Dir all verbonne Risiken verstanen hutt.

Elo wäerte mir béid uewe genannte Kommandoen an een eenzegt Kommando kombinéieren fir e richtegt Skript ze maachen fir RAM Cache a Swap Space ze läschen.

# 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

Nodeems mir déi uewe genannte Befehle getest hunn, lafe mir de Kommando \free -h virum an no der Ausféierung vum Skript a kontrolléieren de Cache.

Dat ass alles fir de Moment, wann Dir den Artikel gär hutt, vergiesst net eis Äre wäertvolle Feedback an de Kommentaren ze ginn fir eis ze wëssen, wat Dir mengt ass eng gutt Iddi fir Ram Cache a Puffer an der Produktioun an der Enterprise ze läschen?