Cómo verificar si las páginas gigantes (hugepages) del kernel están habilitadas en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo verificar si las páginas gigantes (hugepages) del kernel están habilitadas y configuradas en un sistema Linux. Las páginas gigantes son una característica del kernel que puede mejorar el rendimiento de las aplicaciones intensivas en memoria al utilizar páginas de memoria más grandes.

A través de una serie de pasos prácticos, explorará diferentes métodos para verificar la configuración de las páginas gigantes. Comenzará examinando el archivo /proc/meminfo para ver las estadísticas actuales de las páginas gigantes, incluyendo el total, las páginas gigantes libres y reservadas, así como el tamaño de las páginas gigantes. A continuación, utilizará el comando sysctl para verificar el parámetro del kernel vm.nr_hugepages, que indica el número deseado de páginas gigantes. Finalmente, inspeccionará el directorio /sys/kernel/mm para obtener una comprensión más profunda de la configuración de las páginas gigantes en el subsistema de gestión de memoria del kernel. Al completar estos pasos, adquirirá una sólida comprensión de cómo determinar el estado de las páginas gigantes en su sistema Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/UserandGroupManagementGroup -.-> linux/env("Environment Managing") subgraph Lab Skills linux/ls -.-> lab-558793{{"Cómo verificar si las páginas gigantes (hugepages) del kernel están habilitadas en Linux"}} linux/cat -.-> lab-558793{{"Cómo verificar si las páginas gigantes (hugepages) del kernel están habilitadas en Linux"}} linux/cd -.-> lab-558793{{"Cómo verificar si las páginas gigantes (hugepages) del kernel están habilitadas en Linux"}} linux/grep -.-> lab-558793{{"Cómo verificar si las páginas gigantes (hugepages) del kernel están habilitadas en Linux"}} linux/env -.-> lab-558793{{"Cómo verificar si las páginas gigantes (hugepages) del kernel están habilitadas en Linux"}} end

Verificar las páginas gigantes (hugepages) en /proc/meminfo

En este paso, exploraremos cómo verificar la configuración actual de las páginas gigantes (hugepages) en su sistema Linux. Las páginas gigantes son una característica del kernel de Linux que permite al sistema utilizar páginas de memoria más grandes que el tamaño predeterminado de 4KB. Esto puede mejorar el rendimiento de las aplicaciones que utilizan grandes cantidades de memoria, como bases de datos y software de virtualización.

Podemos encontrar información sobre las páginas gigantes en el archivo /proc/meminfo. Este archivo contiene diversas estadísticas relacionadas con la memoria del sistema.

Abra la terminal si aún no lo ha hecho. Puede hacerlo haciendo clic en el icono de Xfce Terminal en el lado izquierdo del escritorio.

Ahora, veamos el contenido de /proc/meminfo utilizando el comando cat. El comando cat se utiliza para mostrar el contenido de archivos.

Escriba el siguiente comando en su terminal y presione Enter:

cat /proc/meminfo

Este comando imprimirá todo el contenido del archivo /proc/meminfo en su terminal. Verá mucha información sobre la memoria de su sistema.

Para buscar específicamente información sobre las páginas gigantes, podemos utilizar el comando grep para filtrar la salida de cat. El comando grep busca líneas que coincidan con un patrón específico.

Escriba el siguiente comando y presione Enter:

cat /proc/meminfo | grep HugePages

El símbolo | se llama tubería (pipe). Toma la salida del comando de la izquierda (cat /proc/meminfo) y la envía como entrada al comando de la derecha (grep HugePages). De esta manera, grep solo busca dentro de la salida de cat.

Debería ver líneas similares a esta (los números exactos pueden variar):

HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

Analicemos lo que significan estas líneas:

  • HugePages_Total: El número total de páginas gigantes configuradas en el sistema.
  • HugePages_Free: El número de páginas gigantes que están actualmente libres y disponibles para su uso.
  • HugePages_Rsvd: El número de páginas gigantes que están reservadas para uso futuro.
  • HugePages_Surp: El número de páginas gigantes que están por encima de la configuración de vm.nr_hugepages (veremos esto en el siguiente paso).
  • Hugepagesize: El tamaño de cada página gigante. En la mayoría de los sistemas, este es de 2048 kB (2MB).

En este entorno, lo más probable es que el valor predeterminado sea 0 páginas gigantes en total, lo cual es común en sistemas de propósito general.

Haga clic en Continuar para pasar al siguiente paso.

Verificar la configuración de las páginas gigantes (hugepages) con sysctl vm.nr_hugepages

En el paso anterior, examinamos /proc/meminfo para ver el uso actual de las páginas gigantes (hugepages). Ahora, usemos el comando sysctl para verificar el parámetro del kernel que controla el número total de páginas gigantes.

El comando sysctl se utiliza para ver y modificar parámetros del kernel en tiempo de ejecución. Los parámetros del kernel son configuraciones que afectan el comportamiento del kernel de Linux.

El parámetro específico que nos interesa es vm.nr_hugepages. Este parámetro determina el número total de páginas gigantes que el kernel debe reservar.

Escriba el siguiente comando en su terminal y presione Enter:

sysctl vm.nr_hugepages

Este comando mostrará el valor actual del parámetro del kernel vm.nr_hugepages.

Debería ver una salida similar a esta:

vm.nr_hugepages = 0

Esta salida confirma que la configuración actual para el número total de páginas gigantes es 0. Esto coincide con lo que vimos en /proc/meminfo donde HugePages_Total también era 0.

El comando sysctl es una herramienta poderosa para inspeccionar y cambiar muchos aspectos del comportamiento del kernel. Aunque aquí solo estamos mirando vm.nr_hugepages, puede explorar muchos otros parámetros utilizando sysctl -a.

Comprender parámetros del kernel como vm.nr_hugepages es importante para ajustar el rendimiento del sistema para cargas de trabajo específicas.

Haga clic en Continuar para pasar al siguiente paso.

Inspeccionar la configuración de las páginas gigantes (hugepages) en /sys/kernel/mm

En este último paso, exploraremos otro lugar donde se puede encontrar información de configuración de las páginas gigantes (hugepages): el sistema de archivos /sys. El sistema de archivos /sys proporciona una interfaz a las estructuras de datos del kernel, lo que nos permite inspeccionar y, en ocasiones, modificar objetos del kernel.

La información relacionada con las páginas gigantes se puede encontrar en /sys/kernel/mm/transparent_hugepage. Las páginas gigantes transparentes (Transparent Hugepages, THP) son una característica que intenta utilizar automáticamente las páginas gigantes sin que las aplicaciones requieran una configuración explícita.

Naveguemos a este directorio utilizando el comando cd. cd significa "cambiar de directorio".

Escriba el siguiente comando y presione Enter:

cd /sys/kernel/mm/transparent_hugepage

Ahora que estamos en el directorio /sys/kernel/mm/transparent_hugepage, liste los archivos de este directorio utilizando el comando ls. El comando ls lista el contenido de un directorio.

Escriba el siguiente comando y presione Enter:

ls

Debería ver una salida similar a esta:

defrag  enabled  khugepaged  numa_defrag  shmem_enabled  split_huge_pmd_size  split_huge_pte_size

Estos archivos representan diferentes opciones de configuración e indicadores de estado para las páginas gigantes transparentes.

Veamos el contenido del archivo enabled utilizando el comando cat. Este archivo muestra si las páginas gigantes transparentes están habilitadas, deshabilitadas o en modo 'madvise' (donde las aplicaciones pueden aconsejar al kernel sobre el uso de las páginas gigantes).

Escriba el siguiente comando y presione Enter:

cat enabled

Debería ver una salida similar a esta:

[always] madvise never

La salida indica la configuración actual. [always] significa que las THP están actualmente habilitadas para todas las asignaciones.

Ahora veamos el archivo defrag. Este archivo controla si el kernel debe intentar desfragmentar la memoria para hacer disponibles las páginas gigantes.

Escriba el siguiente comando y presione Enter:

cat defrag

Debería ver una salida similar a esta:

[always] defer defer+madvise madvise never

Nuevamente, [always] indica la configuración actual para la desfragmentación de memoria relacionada con las THP.

El sistema de archivos /sys es un recurso valioso para entender el estado interno y la configuración del kernel. Explorar directorios como /sys/kernel/mm puede proporcionar una comprensión profunda de la gestión de memoria.

Ahora ha explorado con éxito la información de las páginas gigantes utilizando tres métodos diferentes: /proc/meminfo, sysctl y el sistema de archivos /sys.

Haga clic en Continuar para completar el laboratorio.

Resumen

En este laboratorio, aprendimos cómo verificar si las páginas gigantes (hugepages) del kernel están habilitadas y configuradas en un sistema Linux. Exploramos tres métodos para lograr esto. Primero, examinamos el archivo /proc/meminfo utilizando cat y grep para ver estadísticas clave de las páginas gigantes, como HugePages_Total, HugePages_Free y Hugepagesize.

A continuación, normalmente se verificarían la configuración de las páginas gigantes utilizando sysctl vm.nr_hugepages e inspeccionar la configuración de las páginas gigantes dentro del directorio /sys/kernel/mm, aunque los pasos detallados para estos métodos no se proporcionaron completamente en el contenido dado. Estos pasos en conjunto demuestran cómo determinar el estado y la configuración actual de las páginas gigantes en un sistema Linux.