Todos los productos
Search
Centro de documentos

ApsaraDB RDS:Change the size of the InnoDB buffer pool

Última actualización: Sep 03, 2026

El rendimiento de las consultas se degrada cuando el conjunto de trabajo (los datos e índices que InnoDB lee con mayor frecuencia) no cabe en la memoria, lo que obliga a realizar lecturas repetidas en disco. El parámetro innodb_buffer_pool_size controla cuánta memoria asigna InnoDB para esta caché. Aumentarlo mantiene el conjunto de trabajo en la memoria, reduce la E/S de disco y el tiempo de espera de la CPU. Disminuirlo libera memoria para otras cargas de trabajo.

Requisitos previos

Antes de empezar, asegúrese de contar con:

  • Una instancia de RDS MySQL que ejecute una de las siguientes ediciones: RDS High-availability Edition, RDS Basic Edition o RDS Cluster Edition

Limitaciones

  • Instancias serverless: No se admite la modificación manual de innodb_buffer_pool_size. ApsaraDB RDS for MySQL serverless ajusta automáticamente el tamaño del buffer pool cuando cambia la especificación de la instancia.

  • Out of memory (OOM) risk: Establecer un valor demasiado alto puede provocar errores OOM y desencadenar un failover entre nodo principal y secundario. Manténgase dentro de los valores máximos recomendados en este tema.

Cuándo cambiar el tamaño del buffer pool

Aumente el buffer pool cuando la memoria del servidor sea suficiente y observe una E/S de disco alta bajo carga normal. Para comprobar si el buffer pool actual es demasiado pequeño, supervise la métrica Disk Read IOPS de su instancia en la sección Monitoring. Si las IOPS de lectura son altas e inestables bajo carga normal, es probable que el conjunto de trabajo se esté volcando al disco; considere aumentar el tamaño del buffer pool. Un buffer pool más grande también beneficia a las cargas de trabajo con muchas escrituras: las instrucciones UPDATE masivas generan menos esperas por bloqueos y menor dependencia del disco cuando las filas modificadas con frecuencia permanecen en memoria.

Disminuya el buffer pool cuando los recursos de memoria sean limitados o cuando otras aplicaciones en el host requieran más memoria.

Cómo funciona la fórmula

innodb_buffer_pool_size solo se puede configurar mediante una fórmula; no se admiten valores numéricos directos. La sintaxis de la fórmula es:

{DBInstanceClassMemory*X/Y}

Ejemplo: {DBInstanceClassMemory*7/10} establece el buffer pool en el 70 % de la memoria de la instancia.

Variable de la fórmula

Descripción

DBInstanceClassMemory

Memoria del tipo de instancia RDS (variable del sistema).

X/Y

Proporción del tamaño del buffer pool respecto a la memoria de la instancia. Elija una proporción que mantenga el buffer pool dentro del rango recomendado.

Rango ajustable: [128 MB, DBInstanceClassMemory * 9/10]

  • Mínimo: 128 MB

  • Máximo: 90 % de la memoria de la instancia disponible para el proceso de la base de datos

Redondeo de la capacidad del buffer pool

El tamaño real del buffer pool siempre es un múltiplo de innodb_buffer_pool_chunk_size × innodb_buffer_pool_instances. Si el valor que establece no es un múltiplo exacto, el sistema lo redondea al alza hasta el múltiplo más cercano.

  • innodb_buffer_pool_chunk_size tiene un valor fijo de 32 MB. En instancias creadas anteriormente, puede ser de 128 MB.

Si establece un valor que no es un múltiplo válido, el sistema lo ajusta automáticamente hacia arriba. Por ejemplo, si innodb_buffer_pool_chunk_size es 1 GB y innodb_buffer_pool_instances es 1, establecer innodb_buffer_pool_size en 1.5 GB da como resultado un valor real de 2 GB.

Valores predeterminados y recomendados

Instancias de disco local de alto rendimiento

Para los tipos de instancia que se enumeran a continuación, el tamaño predeterminado del buffer pool es del 80 % al 90 % de la memoria de la instancia. Para todos los demás tipos de instancia, el valor predeterminado es el 75 % de la memoria de la instancia (instance memory * 3/4).

Familia de instancias

Tipo de instancia

CPU y memoria

Valor predeterminado (MB)

Porcentaje

General-purpose

rds.mysql.s3.large

4 núcleos, 8 GB

7372

90%

General-purpose

rds.mysql.m1.medium

4 núcleos, 16 GB

14745

90%

General-purpose

rds.mysql.c1.large

8 núcleos, 16 GB

13107

80%

General-purpose

rds.mysql.c1.xlarge

8 núcleos, 32 GB

27852

85%

General-purpose

rds.mysql.c2.xlarge

16 núcleos, 64 GB

52428

80%

General-purpose

rds.mysql.c2.xlp2

16 núcleos, 96 GB

78643

80%

Dedicated

mysql.x4.large.2

4 núcleos, 16 GB

14745

90%

Dedicated

mysql.x8.large.2

4 núcleos, 32 GB

29491

90%

Dedicated

mysql.x4.xlarge.2

8 núcleos, 32 GB

27852

85%

Dedicated

mysql.x8.xlarge.2

8 núcleos, 64 GB

55705

85%

Dedicated

mysql.x4.2xlarge.2

16 núcleos, 64 GB

52428

80%

Dedicated

mysql.x8.2xlarge.2

16 núcleos, 128 GB

104857

80%

Instancias de disco

Tipos de instancia de uso general: El tamaño predeterminado del buffer pool es el 75 % de la memoria de la instancia (instance memory * 3/4).

Tipos de instancia dedicada: El tamaño predeterminado del buffer pool se calcula de la siguiente manera:

(instance memory - system reserved memory) * 3/4

La memoria reservada del sistema (en MB) se calcula así:

min(instance memory / 2, 2048) + max(instance CPU * 64, instance memory / 64) + (instance memory / 64) + 285

La siguiente tabla muestra los tamaños máximos predeterminados y recomendados del buffer pool para tipos de instancia de disco dedicada. Utilice el valor Recommended max como objetivo máximo al configurar innodb_buffer_pool_size.

Núcleos de CPU

Memoria de la instancia (MB)

Predeterminado (MB)

Máximo recomendado (MB)

2

4096

1024

1024

2

8192

4096

4096

2

16384

9216

10240

4

8192

4096

4096

4

16384

9216

10240

4

32768

21504

22528

8

16384

9216

10240

8

32768

21504

22528

8

65536

45056

48128

12

24576

15360

16384

12

49152

33792

35840

12

98304

69632

73728

16

32768

21504

22528

16

65536

45056

48128

16

131072

93184

99328

24

49152

32768

34816

24

98304

69632

73728

24

196608

140288

149504

32

65536

45056

47104

32

131072

93184

99328

32

262144

188416

200704

52

98304

67584

72704

52

196608

140288

149504

52

393216

283648

302080

64

262144

188416

200704

64

524288

378880

403456

102

786432

569344

607232

104

196608

138240

147456

104

393216

282624

302080

Cambiar el tamaño del buffer pool para una sola instancia

  1. Vaya a la página Instances. En la barra de navegación superior, seleccione la región donde reside su instancia de RDS. Busque la instancia y haga clic en su ID.

  2. En el panel de navegación izquierdo, haga clic en Parameters.

  3. Busque innodb_buffer_pool_size, haga clic en 修改 para editar el valor y luego haga clic en OK.

  4. Haga clic en Submit Parameters y luego haga clic en OK en el cuadro de diálogo de confirmación.

Modificar innodb_buffer_pool_size requiere reiniciar la instancia en RDS MySQL 5.6. Para RDS MySQL 5.7 y 8.0, no es necesario reiniciar.

Cambiar el tamaño del buffer pool para varias instancias

Cree una plantilla de parámetros que contenga el parámetro innodb_buffer_pool_size y aplíquela a las instancias de destino. Si ya cuenta con una plantilla que incluye este parámetro, actualice el valor en la plantilla y aplíquela a varias instancias simultáneamente.

Parameter template modification

Para obtener más información, consulte Use parameter templates.

Pasos siguientes

Después de ajustar innodb_buffer_pool_size, supervise su instancia para comprobar que el cambio funcione según lo esperado:

  • Utilice monitoring para revisar las Disk Read IOPS; una disminución sostenida indica que el conjunto de trabajo ahora cabe en la memoria.

  • Revise los registros de consultas lentas para identificar las consultas que aún podrían estar causando lecturas excesivas en disco.

  • Si la presión sobre la memoria aumenta después del cambio, consulte solución de problemas de consumo de memoria para obtener orientación.

Referencias