Com esborrar la memòria cau, la memòria intermèdia i l'intercanvi de memòria RAM a Linux


Com qualsevol altre sistema operatiu, GNU/Linux ha implementat la gestió de la memòria de manera eficient i encara més. Però si algun procés us està consumint la memòria i voleu esborrar-la, Linux ofereix una manera d'esborrar o esborrar la memòria cau de memòria RAM.

  • Cerca els 15 processos principals per ús de memòria a Linux
  • Cerca els processos que s'executen amb major ús de memòria i CPU a Linux
  • Com limitar el temps i l'ús de memòria dels processos a Linux

Cada sistema Linux té tres opcions per esborrar la memòria cau sense interrompre cap procés o servei.

1. Esborreu només PageCache.

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

2. Netejar dentures i inodes.

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

3. Netegeu la memòria cau de pàgines, les dentries i els inodes.

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

Explicació de l'ordre anterior.

sync esborrarà la memòria intermèdia del sistema de fitxers. L'ordre separat per \;” s'executa seqüencialment. L'intèrpret d'ordres espera que s'acabi cada ordre abans d'executar la següent ordre de la seqüència. Com s'esmenta a la documentació del nucli, escriure a drop_cache netejarà la memòria cau sense matar-ne cap. aplicació/servei, l'ordre echo fa la feina d'escriure al fitxer.

Si heu d'esborrar la memòria cau del disc, la primera ordre és la més segura a l'empresa i la producció ja que \...echo 1 > ….” només esborrarà la memòria cau de la pàgina. No es recomana utilitzar la memòria cau del disc. tercera opció per sobre de \...echo 3 >” en producció fins que sàpigues què estàs fent, ja que esborrarà la memòria cau de la pàgina, les dentries i els inodes.

Quan apliqueu diversos paràmetres i voleu comprovar si realment s'ha implementat especialment en el punt de referència extens d'E/S, és possible que hàgiu d'esborrar la memòria cau de la memòria intermèdia. Podeu deixar anar la memòria cau tal com s'ha explicat anteriorment sense reiniciar el sistema, és a dir, no cal temps d'inactivitat.

Linux està dissenyat de tal manera que mira a la memòria cau del disc abans de mirar al disc. Si troba el recurs a la memòria cau, la sol·licitud no arriba al disc. Si netegem la memòria cau, la memòria cau del disc serà menys útil ja que el sistema operatiu buscarà el recurs al disc.

A més, també retardarà el sistema durant uns segons mentre es neteja la memòria cau i tots els recursos requerits pel sistema operatiu es tornen a carregar a la memòria cau del disc.

Ara crearem un script d'intèrpret d'ordres per esborrar automàticament la memòria cau RAM cada dia a les 2 a. m. mitjançant una tasca del programador cron. Creeu un script de shell clearcache.sh i afegiu les línies següents.

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

Establiu el permís d'execució al fitxer clearcache.sh.

# chmod 755 clearcache.sh

Ara podeu trucar a l'script sempre que us demani esborrar la memòria cau de RAM.

Ara configureu un cron per esborrar la memòria cau RAM cada dia a les 2 del matí. Obre crontab per editar-lo.

# crontab -e

Afegiu la línia següent, deseu-lo i sortiu per executar-lo a les 2 a.m. dia.

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

Per obtenir més detalls sobre com cronificar una feina, us agradaria consultar el nostre article sobre 11 treballs de programació de Cron.

No! no és. Penseu en una situació en què hàgiu programat l'script per esborrar la memòria cau de memòria RAM cada dia a les 2 del matí. Cada dia a les 2 del matí s'executa l'script i esborra la memòria cau de la memòria RAM. Un dia, per qualsevol motiu, pot ser que els usuaris estiguin en línia al vostre lloc web més del que s'esperava i cerquen recursos al vostre servidor.

Al mateix temps, l'script programat s'executa i esborra tot el que hi ha a la memòria cau. Ara tots els usuaris estan obtenint dades del disc. Es produirà un error del servidor i es corromp la base de dades. Així que esborreu la memòria cau només quan sigui necessari i conegueu els vostres passos, en cas contrari sou un administrador del sistema Cargo Cult.

Si voleu esborrar l'espai d'intercanvi, potser us agradaria executar l'ordre següent.

# swapoff -a && swapon -a

A més, podeu afegir l'ordre anterior a un script cron anterior, després d'entendre tots els riscos associats.

Ara combinarem les dues ordres anteriors en una sola ordre per fer un script adequat per esborrar la memòria cau RAM i l'espai d'intercanvi.

# 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

Després de provar les dues ordres anteriors, executarem l'ordre \free -h abans i després d'executar l'script i comprovarem la memòria cau.

Això és tot de moment, si us ha agradat l'article, no us oblideu de proporcionar-nos els vostres valuosos comentaris als comentaris per fer-nos saber, què creus que és una bona idea per esborrar la memòria cau i la memòria intermèdia en producció i Enterprise?