tech:memoire_linux
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| tech:memoire_linux [2025/03/25 11:54] – Jean-Baptiste | tech:memoire_linux [2025/11/03 16:45] (Version actuelle) – Jean-Baptiste | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | < | ||
| {{tag> | {{tag> | ||
| - | = Mémoire Linux | + | # Mémoire Linux |
| Voir : | Voir : | ||
| Ligne 12: | Ligne 13: | ||
| * smem | * smem | ||
| * lsmem / chmem | * lsmem / chmem | ||
| + | * https:// | ||
| - | == Fuite mémoire | + | ## Fuite mémoire |
| Voir : | Voir : | ||
| Ligne 23: | Ligne 25: | ||
| * https:// | * https:// | ||
| * http:// | * http:// | ||
| - | * [[https:// | + | * [Atop - Case study with atop: memory leakage](https:// |
| * https:// | * https:// | ||
| Ligne 30: | Ligne 32: | ||
| - | == Config | + | ## Config |
| - | === Kernel Linux param | + | ### Kernel Linux param |
| - | ==== NUMA (Non-Uniform Memory Access) | + | #### NUMA (Non-Uniform Memory Access) |
| Voir : | Voir : | ||
| - | * [[https:// | + | * [What is NUMA ?](https:// |
| - | * [[https:// | + | * [La mémoire : numactl, lstopo, perf, etc.](https:// |
| + | * '' | ||
| Disable NUMA (Pour Oracle DB) | Disable NUMA (Pour Oracle DB) | ||
| / | / | ||
| - | < | + | ~~~ini |
| numa=off | numa=off | ||
| - | </ | + | ~~~ |
| Vérif | Vérif | ||
| Ligne 50: | Ligne 53: | ||
| '' | '' | ||
| - | <code -> | + | ~~~ |
| # numactl -H | grep available | # numactl -H | grep available | ||
| available: 8 nodes (0-7) | available: 8 nodes (0-7) | ||
| - | </ | + | ~~~ |
| - | <code -> | + | ~~~ |
| # numactl -H | grep available | # numactl -H | grep available | ||
| available: 2 nodes (0-1) | available: 2 nodes (0-1) | ||
| - | </ | + | ~~~ |
| If the number of available nodes is '' | If the number of available nodes is '' | ||
| Ligne 69: | Ligne 72: | ||
| - | ==== NUMA (Non-Uniform Memory Access) - Useful Commands | + | #### NUMA (Non-Uniform Memory Access) - Useful Commands |
| To identify NUMA nodes, socket memory and CPU core allocation | To identify NUMA nodes, socket memory and CPU core allocation | ||
| - | < | + | ~~~bash |
| numactl -H | numactl -H | ||
| - | </ | + | ~~~ |
| To identify the NUMA node local to an adapter | To identify the NUMA node local to an adapter | ||
| - | < | + | ~~~bash |
| cat / | cat / | ||
| - | </ | + | ~~~ |
| To identify memory allocation and use on a particular NUMA node: | To identify memory allocation and use on a particular NUMA node: | ||
| - | < | + | ~~~bash |
| cat / | cat / | ||
| - | </ | + | ~~~ |
| To identify NUMA node mapping to cores, use one of the following | To identify NUMA node mapping to cores, use one of the following | ||
| - | < | + | ~~~bash |
| numactl --hardware | numactl --hardware | ||
| cat / | cat / | ||
| - | </ | + | ~~~ |
| Driver Loading - NUMA Node | Driver Loading - NUMA Node | ||
| - | < | + | ~~~bash |
| numactl --cpunodebind=1 onload_tool reload | numactl --cpunodebind=1 onload_tool reload | ||
| - | </ | + | ~~~ |
| - | === Memory usage per user | + | ### Memory usage per user |
| - | < | + | ~~~bash |
| smem -u | smem -u | ||
| - | </ | + | ~~~ |
| - | === Transparent HugePages (THP) | + | |
| + | ### Transparent HugePages (THP) | ||
| Voir | Voir | ||
| Ligne 114: | Ligne 118: | ||
| - | ==== Désactiver **Transparent HugePages (THP)** | + | #### Désactiver **Transparent HugePages (THP)** |
| - | < | + | ~~~bash |
| cat / | cat / | ||
| - | </ | + | ~~~ |
| The following is a sample output that shows Transparent HugePages are being used as the [always] flag is enabled. | The following is a sample output that shows Transparent HugePages are being used as the [always] flag is enabled. | ||
| - | <code -> | + | ~~~ |
| [always] never | [always] never | ||
| - | </ | + | ~~~ |
| Paramètre Kernel Linux | Paramètre Kernel Linux | ||
| - | < | + | ~~~ini |
| transparent_hugepage=never | transparent_hugepage=never | ||
| - | </ | + | ~~~ |
| Ligne 137: | Ligne 141: | ||
| - | == Notes Free / Aviable | + | ## Notes Free / Aviable |
| - | <code -> | + | ~~~ |
| $ ./ | $ ./ | ||
| ... | ... | ||
| Ligne 151: | Ligne 155: | ||
| Others versions: used = memTotalReal - memAvailReal - memBuffer | Others versions: used = memTotalReal - memAvailReal - memBuffer | ||
| - memCached // free = total - used | - memCached // free = total - used | ||
| - | </ | + | ~~~ |
| - | == Exemple | + | ## Exemple |
| - | < | + | ~~~bash |
| free -mt | free -mt | ||
| vmstat -SM 45 10 | vmstat -SM 45 10 | ||
| Ligne 165: | Ligne 169: | ||
| ps -u $USER -o comm, | ps -u $USER -o comm, | ||
| ps -eo comm, | ps -eo comm, | ||
| - | </ | + | ~~~ |
| - | < | + | ~~~bash |
| read CommitLimit Committed_AS <<< | read CommitLimit Committed_AS <<< | ||
| echo $(( Committed_AS * 100 / CommitLimit)) | echo $(( Committed_AS * 100 / CommitLimit)) | ||
| - | </ | + | ~~~ |
| - | < | + | ~~~bash |
| memused=$(free | memused=$(free | ||
| memtotal=$(free |grep ^Mem | awk ' | memtotal=$(free |grep ^Mem | awk ' | ||
| echo $(( memused * 100 / memtotal)) | echo $(( memused * 100 / memtotal)) | ||
| - | </ | + | ~~~ |
| - | < | + | ~~~bash |
| memFree=$(free |grep ^-|awk ' | memFree=$(free |grep ^-|awk ' | ||
| memTot=$(free |grep ^Mem |awk ' | memTot=$(free |grep ^Mem |awk ' | ||
| memUsed=$(echo " | memUsed=$(echo " | ||
| echo " | echo " | ||
| - | </ | + | ~~~ |
| - | < | + | ~~~bash |
| ps -C apache2 -o rss --no-headers |tr " | ps -C apache2 -o rss --no-headers |tr " | ||
| read CommitLimit Committed_AS <<< | read CommitLimit Committed_AS <<< | ||
| Ligne 194: | Ligne 198: | ||
| echo $(( memused * 100 / memtotal)) | echo $(( memused * 100 / memtotal)) | ||
| ps -e -o pid, | ps -e -o pid, | ||
| - | </ | + | ~~~ |
| - | < | + | ~~~bash |
| smem -u | smem -u | ||
| smem -u -t -k | smem -u -t -k | ||
| top -b -n 1 -u apache | top -b -n 1 -u apache | ||
| - | </ | + | ~~~ |
| Taille totale de la mémoire physique de la RAM (sans la swap) | Taille totale de la mémoire physique de la RAM (sans la swap) | ||
| - | <code -> | + | ~~~ |
| # head -1 / | # head -1 / | ||
| MemTotal: | MemTotal: | ||
| Ligne 210: | Ligne 214: | ||
| # awk '/ | # awk '/ | ||
| 65391036 | 65391036 | ||
| - | </ | + | ~~~ |
| Ligne 218: | Ligne 222: | ||
| - | == Fonctionnement | + | ## Fonctionnement |
| Voir : | Voir : | ||
| Ligne 224: | Ligne 228: | ||
| http:// | http:// | ||
| - | == Autres | + | ## Autres |
| Clearing KernelCare Cache | Clearing KernelCare Cache | ||
| Ligne 230: | Ligne 234: | ||
| Source : https:// | Source : https:// | ||
| - | < | + | ~~~bash |
| rm -rf / | rm -rf / | ||
| echo 1 > / | echo 1 > / | ||
| echo 3 > / | echo 3 > / | ||
| kcarectl –update | kcarectl –update | ||
| - | </ | + | ~~~ |
tech/memoire_linux.1742900061.txt.gz · Dernière modification : de Jean-Baptiste
