# Drop RAM SWAP CPU & MEM

<span style="color: rgb(126, 140, 141);">lister les process qui occupe le swap : </span>

```bash
for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | less
```

<span style="color: rgb(230, 126, 35);"><span style="color: rgb(45, 194, 107);">DROP mémoire cache + voir résultat </span></span>

```bash
free -h && sudo sysctl vm.drop_caches=3 && free –h
```

<span style="color: rgb(230, 126, 35);"><span style="color: rgb(45, 194, 107);">Relancer le swap</span></span>

```bash
sudo swapoff –a && sudo swapon -a
```

#### **Problème lié au swap**

Déplacer le cache de Swap vers la mémoire si elle est pas trop sollicitée en exécutant la commande :

```bash
swapoff -a
```

changer le swappiness à 10 au lieu de 40 (valeur recommandée sur postgre) ce qui a permis de soulager le swap  
il ne sera sollicité que la mémoire passe en full (ce qui n'était pas le cas avant ce changement, le swap se remplit fréquemment même si la RAM est vide )

  
Pour modifier la valeur sans redémarrer le système d'exploitation, exécutez la commande suivante :

```bash
sysctl -w vm.swappiness=10
```

Pour modifier la valeur temporairement (après le redémarrage la valeur sera sautée)

```bash
htop
```

Pour reloader la config :

```bash
sysctl --system
```

une fois le swap vidé passer la commande suivante pour réactiver le swap :

```bash
swapon -a
```

La config swappiness se trouve :   
<span style="color: rgb(230, 126, 35);">/etc/sysctl.conf  
  
</span>

<span style="color: rgb(149, 165, 166);">droper cache mem et swap autrement : </span>

```bash
sync; echo 3 > /proc/sys/vm/drop_caches
```

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-11/scaled-1680-/lFBYlh5gaCvAGJHl-image.png)](https://cavallone.fr/uploads/images/gallery/2024-11/lFBYlh5gaCvAGJHl-image.png)

trier le CPU ou la mémoire sur la machine :   
<span style="color: rgb(230, 126, 35);">top ou htop</span>

commande avancée pour trier la mémoire:

```bash
ps -eo size,pid,user,command --sort -size |    awk '{ hr=$1/1024 u; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }' |    cut -d "" -f2 | cut -d "-" -f1
```

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-11/scaled-1680-/p73behMJXXpG1apj-image.png)](https://cavallone.fr/uploads/images/gallery/2024-11/p73behMJXXpG1apj-image.png)

autres commande pour CPU et mem triez par top:

```bash
ps -eo pid,user,comm,%mem --sort=-%mem | head -n 6
```

```bash
ps -eo pid,user,comm,%mem --sort=-%cpu | head -n 6
```

<span style="color: rgb(126, 140, 141);">Vous pouvez faire des teste de stress sur une machine pour voir comment elle réagit via :</span>

```bash
Yum install stress
```

<span style="color: rgb(230, 126, 35);">Commande stress mémoire : </span>

```bash
stress --vm 1 --vm-bytes 1G --timeout 30s
```