Todos los productos
Search
Centro de documentos

ApsaraDB RDS:Buffer Pool Extension (BPE)

Última actualización: Sep 03, 2026

La función Buffer Pool Extension (BPE) para instancias RDS MySQL que utilizan discos de alto rendimiento mejora la eficiencia de E/S del disco y la capacidad de respuesta del sistema. Esta función extiende el buffer pool para acelerar el almacenamiento en caché, lo que incrementa el rendimiento general de lectura y escritura de su instancia RDS. Este tema describe el funcionamiento de BPE, sus casos de uso y las pruebas de rendimiento.

Contexto

La lectura de datos del disco a la memoria y la escritura de datos de la memoria al disco son operaciones comunes en bases de datos. En comparación con las operaciones en memoria, la E/S de disco es significativamente más lenta y consume más tiempo. Para cargas de trabajo con solicitudes de datos a gran escala o frecuentes, la E/S de disco puede convertirse en un cuello de botella importante para el rendimiento.

Para solucionar esto, ApsaraDB RDS for MySQL ofrece una nueva opción de almacenamiento: discos de alto rendimiento. Estos discos son compatibles con all ESSD features y utilizan una arquitectura de almacenamiento de tres niveles para gestionar distintos tipos de datos y caché. Los discos de alto rendimiento también introducen ráfagas de E/S y la función Buffer Pool Extension (BPE) para mejorar aún más el rendimiento de E/S de su instancia RDS.

Introducción

Descripción general

Un buffer pool es un área de memoria que almacena en caché datos provenientes de discos. Cuando la base de datos necesita leer o escribir un bloque de datos, primero verifica el buffer pool:

  • Si el bloque de datos se encuentra en el buffer pool, la base de datos lo lee o escribe directamente desde la memoria.

  • Si el bloque de datos no está en el buffer pool, la base de datos lo lee del disco o lo escribe en él y luego lo copia al buffer pool.

Este mecanismo de caché reduce eficazmente las operaciones de E/S de disco y mejora el rendimiento de E/S de la instancia. Sin embargo, el tamaño del buffer pool está limitado por la memoria del sistema. Si la memoria es insuficiente, el tamaño limitado del buffer pool puede afectar negativamente el rendimiento de E/S.

RDS MySQL introduce la función Buffer Pool Extension (BPE) para ampliar el tamaño efectivo del buffer pool. Al aprovechar el kernel del motor de RDS, BPE mejora el rendimiento general de lectura y escritura de RDS MySQL. Esto permite que su instancia ejecute más comandos de lectura y escritura en un período determinado, lo que aumenta la eficiencia de E/S del disco y la capacidad de respuesta del sistema, acelerando así el almacenamiento en caché.

Beneficios

La función BPE crea una estructura de almacenamiento de tres niveles que aprovecha los medios de almacenamiento subyacentes de Alibaba Cloud para mejorar el rendimiento de E/S de la instancia en diversos escenarios y requisitos de almacenamiento de datos:

  • Mejora del rendimiento de lectura/escritura y reducción del tiempo de ejecución de SQL

    • La extensión del buffer pool almacena en caché las operaciones de lectura, lo que aumenta significativamente la velocidad de acceso a las páginas de datos y reduce el tiempo de ejecución de consultas SQL.

    • La extensión del buffer pool reduce considerablemente la frecuencia de acceso a archivos de datos en el disco de alto rendimiento de la instancia, lo que disminuye el uso del ancho de banda del disco.

  • Mayor estabilidad de la instancia

    El disco que aloja la extensión del buffer pool tiene menor latencia que un disco de alto rendimiento. Este diseño reduce significativamente el impacto de la variabilidad de E/S del disco de alto rendimiento en las operaciones de la base de datos, mejorando la estabilidad.

Nota

En el Centro de experiencia de soluciones de Buffer Pool Extension (BPE), puede crear un entorno RDS real y observar resultados de pruebas de estrés en tiempo real con BPE habilitado y deshabilitado. Esta función es gratuita. Para obtener más información, consulte Observación del rendimiento de aceleración de E/S de disco de alto rendimiento de RDS (BPE).

Rentabilidad

La función Buffer Pool Extension (BPE) es gratuita para las instancias RDS MySQL compatibles y no requiere cambios en su aplicación.

Puede mejorar significativamente el rendimiento de E/S de la instancia sin modificar sus costos ni su lógica de negocio. Por ejemplo, una instancia RDS MySQL en High-availability Edition que utiliza un tipo de instancia de uso general con 8 vCPU y 16 GB de memoria puede lograr un aumento sustancial en las QPS de lectura y escritura. Para obtener más detalles, consulte Performance test.

Funcionamiento

La función Buffer Pool Extension (BPE) para discos de alto rendimiento utiliza tecnología de extensión de buffer pool para mejorar el rendimiento de los ESSD sin costo adicional. Al separar los datos calientes y fríos, esta función extiende el buffer pool de InnoDB. Almacena en caché páginas de datos tibios en la extensión del buffer pool, lo que permite a InnoDB utilizar múltiples medios de almacenamiento de manera flexible y alcanzar mayores QPS.

Arquitectura

La siguiente figura muestra la arquitectura de despliegue de BPE.

c2a2493768b021f69aa2ff9d5011102b

La extensión del buffer pool utiliza discos de alta velocidad como capa de caché entre la memoria y el disco de alto rendimiento. Estos discos de alta velocidad ofrecen menor latencia de E/S y un rendimiento superior en comparación con los discos de alto rendimiento.

Nota
  • El disco de alta velocidad se utiliza únicamente para almacenamiento en caché.

  • El archivo de datos, el archivo binlog y el archivo redo se almacenan en el disco de alto rendimiento.

Al extender el buffer pool de InnoDB, el sistema puede almacenar en caché páginas de datos del buffer pool principal hacia la extensión del buffer pool, lo que permite a InnoDB utilizar flexiblemente múltiples medios de caché.

Implementación

Cuando habilita la función Buffer Pool Extension (BPE), el sistema almacena en caché las páginas de datos de su instancia en la extensión del buffer pool del disco de alta velocidad.

Nota

Todas las páginas de datos almacenadas en la extensión del buffer pool son páginas limpias, lo que significa que son consistentes con los datos del archivo de datos en el disco de alto rendimiento.

Al leer una página de datos, el sistema sigue estos pasos:

  1. Un cliente inicia una solicitud para leer una página de datos.

  2. El sistema busca la página de datos solicitada en el buffer pool en memoria.

    • Si se encuentra la página (acierto de caché), el sistema la devuelve al cliente y finaliza el proceso.

    • Si no se encuentra la página (fallo de caché), el proceso continúa con el siguiente paso.

  3. El sistema busca la página de datos en la extensión del buffer pool del disco de alta velocidad.

    • Si se encuentra la página, el sistema la copia al buffer pool en memoria y luego la devuelve al cliente. El proceso finaliza.

    • Si no se encuentra la página, el proceso continúa con el siguiente paso.

  4. El sistema lee la página de datos del archivo de datos en el disco de alto rendimiento. Luego, el sistema copia la página al buffer pool en memoria y la devuelve al cliente.

  5. La operación de lectura ha finalizado.

Aplicabilidad

  • Motor: RDS MySQL

  • Versión: MySQL 8.4 o MySQL 8.0 con una versión menor del motor 20230914 o posterior

  • Edición: High-availability Edition o RDS Cluster Edition

  • Categoría: Standard Edition

  • Familia de instancias: uso general

  • Regiones y zonas: (Para verificar la disponibilidad, consulte la consola. Esta lista es solo de referencia).

    Región

    Zona

    China (Chengdu)

    Zone B

    China (Beijing)

    Zone I

    China (Shanghai)

    Zone M

    Zone N

    China (Hangzhou)

    Zone J

Facturación

La función Buffer Pool Extension (BPE) es gratuita para instancias RDS MySQL de uso general que utilizan discos de alto rendimiento.

Precauciones

  • La pérdida de datos en la extensión del buffer pool no afecta los datos de su negocio, ya que se almacenan de forma duradera en el disco de datos. Su instancia continúa operando con normalidad.

  • Habilitar la función BPE asigna una pequeña cantidad de memoria (4% de buffer_pool_size). Por lo tanto, el valor predeterminado de buffer_pool_size se reduce automáticamente en un 4%. Si necesita modificar buffer_pool_size posteriormente, ajústelo según sus métricas de uso de memoria.

  • Después de habilitar o deshabilitar la función BPE, su instancia no estará disponible durante aproximadamente 15 segundos. Se recomienda realizar esta operación fuera del horario pico.

  • Habilitar la función BPE proporciona una mejora significativa del rendimiento. El efecto es más notable en tipos de instancia más grandes. Por ejemplo, una instancia RDS MySQL de uso general con 8 vCPU y 16 GB de memoria en High-availability Edition (Standard) puede lograr una mejora de rendimiento de hasta un 103 %.

Gestión de BPE

Habilitar BPE

  1. Vaya a la página Instances, seleccione la región de su instancia y haga clic en el ID de la instancia.

  2. En la sección Basic Information, a la derecha de Storage Type, haga clic en Configure Premium ESSD. En el cuadro de diálogo que aparece, active el interruptor Buffer Pool Extension (BPE).

Deshabilitar BPE

  1. Vaya a la página Instances, seleccione la región de su instancia y haga clic en el ID de la instancia.

  2. En la sección Basic Information, a la derecha de Storage Type, haga clic en Configure Premium ESSD. En el cuadro de diálogo que aparece, desactive el interruptor Buffer Pool Extension (BPE).

Prueba de rendimiento

Preparación de la prueba

  • Método de prueba: Ejecute operaciones de lectura y escritura en una instancia de las mismas especificaciones para comparar las QPS con la función BPE habilitada y deshabilitada.

  • Tamaño de los datos de prueba: 300 GB

  • Herramienta de prueba: Sysbench (Para obtener más información, consulte la documentación oficial de Sysbench.)

    Nota

    Primero debe create an ECS instance. La herramienta de prueba de este tema está instalada en una instancia ECS.

  • Instancias de prueba: Prepare dos instancias RDS MySQL en High-availability Edition con un tipo de instancia de uso general. Una instancia debe tener 4 vCPU y 8 GB de memoria, y la otra 8 vCPU y 16 GB de memoria. Las pruebas se ejecutan en cada instancia primero con BPE deshabilitado y luego nuevamente con BPE habilitado.

    Edición

    Código de tipo de instancia

    vCPU y memoria

    High-availability Edition

    mysql.n2.large.xc

    4 vCPU, 8 GB

    High-availability Edition

    mysql.n2.xlarge.xc

    8 vCPU, 16 GB

Método de prueba

Este tema utiliza CentOS como ejemplo para la prueba de rendimiento. Si desea instalar y probar en un sistema operativo diferente, consulte la documentación oficial de Sysbench.

Instalar Sysbench

Ejecute los siguientes comandos para instalar Sysbench.

git clone https://github.com/akopytov/sysbench.git
cd sysbench
git checkout 0.5

yum -y install make automake libtool pkgconfig libaio-devel
yum -y install mariadb-devel

./autogen.sh
./configure
make -j
make install
 

Probar el rendimiento de QPS de la instancia

Parámetros

La siguiente tabla describe los parámetros utilizados en esta prueba.

Parámetro

Descripción

--tables

El número de tablas.

--table_size

El número de filas en cada tabla.

--rand-type

El tipo de distribución de números aleatorios.

--rand-spec-pct

El porcentaje de valores considerados "especiales" para la distribución aleatoria especificada.

--threads

El número de hilos concurrentes.

--time

La duración de la prueba, en segundos.

Probar el rendimiento de lectura

  1. Preparar datos: Ejecute el siguiente comando para preparar 300 GB de datos (30 tablas con 40 millones de filas cada una).

    sysbench oltp_read_only --tables=30 --table_size=40000000 --rand-type=special --rand-spec-pct=15 --threads=64 --time=100 prepare
  2. Ejecutar la prueba de lectura: Ejecute el siguiente comando para probar el rendimiento de lectura de la instancia.

    sysbench oltp_read_only --tables=30 --table_size=40000000 --rand-type=special --rand-spec-pct=15 --threads=64 --time=100 run

Probar el rendimiento de escritura

  1. Preparar datos: Ejecute el siguiente comando para preparar 300 GB de datos (30 tablas con 40 millones de filas cada una).

    sysbench oltp_write_only --tables=30 --table_size=40000000 --rand-type=special --rand-spec-pct=15 --threads=64 --time=100 prepare
  2. Ejecutar la prueba de escritura: Ejecute el siguiente comando para probar el rendimiento de escritura de la instancia.

    sysbench oltp_write_only --tables=30 --table_size=40000000 --rand-type=special --rand-spec-pct=15 --threads=64 --time=100 run

Probar el rendimiento de lectura/escritura

  1. Preparar datos: Ejecute el siguiente comando para preparar 300 GB de datos (30 tablas con 40 millones de filas cada una).

    sysbench oltp_read_write --tables=30 --table_size=40000000 --rand-type=special --rand-spec-pct=15 --threads=64 --time=100 prepare
  2. Ejecutar la prueba de lectura/escritura: Ejecute el siguiente comando para probar el rendimiento mixto de lectura y escritura de la instancia.

    sysbench oltp_read_write --tables=30 --table_size=40000000 --rand-type=special --rand-spec-pct=15 --threads=64 --time=100 run

Resultados de la prueba

  • Resultados de la prueba para una instancia RDS MySQL en High-availability Edition (Standard) con un tipo de instancia de uso general de 4 vCPU y 8 GB de memoria:

    • Rendimiento de lectura: Las QPS permanecen casi sin cambios con BPE habilitado.

    • Rendimiento de escritura: Las QPS aumentan un 30 % con BPE habilitado.

    • Rendimiento de lectura/escritura: Las QPS aumentan un 26 % con BPE habilitado.

    image.png

  • Resultados de la prueba para una instancia RDS MySQL en High-availability Edition (Standard) con un tipo de instancia de uso general de 8 vCPU y 16 GB de memoria:

    • Rendimiento de lectura: Las QPS aumentan un 80 % con BPE habilitado.

    • Rendimiento de escritura: Las QPS aumentan un 33 % con BPE habilitado.

    • Rendimiento de lectura/escritura: Las QPS aumentan un 103 % con BPE habilitado.

    image.png

Documentos relacionados