Aumentar el tamaño de la caché de tablas abiertas

El recomendador de gran número de tablas abiertas de Cloud SQL te ayuda a detectar instancias cuyo número de tablas abiertas simultáneamente es igual al valor de table_open_cache. A continuación, ofrece recomendaciones sobre cómo optimizar esas instancias para mejorar el rendimiento.

En esta página se describe cómo funciona el recomendador de un número elevado de tablas abiertas y cómo puede usarlo.

Cómo funciona

MySQL es multihilo y los clientes pueden enviar simultáneamente una consulta en la misma tabla desde varios hilos. Por lo tanto, MySQL puede tener tablas abiertas de forma independiente para cada sesión. El número de tablas abiertas simultáneamente se gestiona mediante table_open_cache. Si la caché está llena y se abren más tablas, MySQL cierra la tabla que se haya usado menos recientemente. Si se están usando todas las tablas de la caché, MySQL amplía la caché temporalmente y cierra las tablas en cuanto dejan de usarse.

Si el número de tablas abiertas supera el valor de table_open_cache, el rendimiento de la base de datos puede verse afectado negativamente durante cargas de trabajo elevadas. Esto se debe a que se crean más hilos y los controladores de tablas tienen que abrir y cerrar las tablas con más frecuencia.

El recomendador de gran número de tablas abiertas de Cloud SQL analiza diariamente las métricas del número de tablas abiertas en una instancia de Cloud SQL MySQL. Si el número de tablas abiertas aumenta en 1 cada 2 segundos o más rápido en las 24 horas anteriores y el número de tablas abiertas es igual o superior al valor de table_open_cache, el sistema de recomendaciones te aconseja que ajustes la marca table_open_cache.

Precios

El recomendador de gran número de tablas abiertas de Cloud SQL está incluido en el nivel de precios estándar de Recomendaciones.

Antes de empezar

Para poder ver recomendaciones y estadísticas, haz lo siguiente:

  • Para obtener los permisos necesarios para ver y usar las estadísticas y las recomendaciones, asegúrate de que tienes los roles necesarios.
    Tasks Roles
    Ver recomendaciones Uno de estos roles: recommender.cloudsqlViewer o cloudsql.viewer.
    Aplicar recomendaciones Uno de estos roles: recommender.cloudsqlAdmin, cloudsql.editor o cloudsql.admin.
    Para obtener más información sobre los roles, consulta los artículos sobre descripción de roles y concesión de permisos de gestión de identidades y accesos.
  • Enable the Recommender API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

Mostrar recomendaciones de rendimiento de instancias

Puedes consultar las recomendaciones de rendimiento de las instancias mediante la Google Cloud consolagcloud CLI, gcloud o la API Recommender.

Las recomendaciones para mejorar el rendimiento de las instancias solo se muestran si tienes instancias que se acercan a los límites del umbral de rendimiento.

Consola

Para ver las recomendaciones sobre el rendimiento de las instancias mediante la consola deGoogle Cloud , sigue estos pasos:

  1. Ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Haga clic en Ver todas en el banner de recomendaciones de la tabla Aumento de la caché abierta.

También puedes seguir estos pasos:

  1. Ve al centro de recomendaciones. Consulta también el artículo Primeros pasos con el centro de recomendaciones.

    Ir al centro de recomendaciones

  2. En la tarjeta Mejorar el rendimiento de la instancia de Cloud SQL, haz clic en Ver todo.

  3. Seleccione las instancias con la recomendación Aumentar la caché de apertura de tablas.

CLI de gcloud

Para enumerar las recomendaciones de mejora del rendimiento de las instancias mediante gcloud CLI, ejecuta el comando gcloud recommender recommendations list de la siguiente manera:

gcloud recommender recommendations list \
--project=PROJECT_ID \
--location=LOCATION \
--recommender=google.cloudsql.instance.PerformanceRecommender \
--filter=recommenderSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE

Haz los cambios siguientes:

  • PROJECT_ID: tu ID de proyecto
  • LOCATION: una región, como us-central1

API

Para mostrar las recomendaciones de mejora del rendimiento de las instancias mediante la API Recommendations, llama al método recommendations.list de la siguiente manera:

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations

Haz los cambios siguientes:

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: una región, como us-central1.

Si el recomendador detecta instancias que tienen un número elevado de tablas abiertas, las muestra en una tabla junto con otras recomendaciones de rendimiento. En cada fila se muestra el ID de la instancia, una breve recomendación, el motor de la base de datos, la ubicación y la fecha de la última actualización.

Ver estadísticas y recomendaciones detalladas

Puedes consultar estadísticas y recomendaciones detalladas sobre las instancias que tienen un número elevado de tablas abiertas mediante la Google Cloud consolagcloud CLI o la API Recommender.

Consola

Para ver estadísticas y recomendaciones detalladas sobre las instancias que están cerca del umbral de rendimiento mediante la consola Google Cloud , haga clic en el enlace de la recomendación en la lista de instancias.

CLI de gcloud

Para ver estadísticas y recomendaciones detalladas sobre las instancias que se acercan al umbral de rendimiento mediante gcloud CLI, ejecuta el comando gcloud recommender insights list de la siguiente manera:

gcloud recommender insights list \
--project=PROJECT_ID \
--location=LOCATION \
--insight-type=google.cloudsql.instance.PerformanceInsight \
--filter=insightSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES

Haz los cambios siguientes:

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: una región, como us-central1.

API

Para ver estadísticas y recomendaciones detalladas sobre las instancias que tienen un número elevado de tablas abiertas mediante la API Recommendations, llama al método insights.list de la siguiente manera:

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfOpenTables/insights

Haz los cambios siguientes:

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: una región, como us-central1.

En la siguiente tabla se muestran los datos y las recomendaciones que genera el recomendador de gran número de tablas abiertas de Cloud SQL para ayudarte a mejorar el rendimiento. Los subtipos se pueden ver en los resultados de gcloud CLI y de la API.

Insight Recomendación
El número de tablas abiertas es igual al valor de la marca table_open_cache.
Subtype: MYSQL_HIGH_NUMBER_OF_OPEN_TABLES
Aumenta el rendimiento de las instancias de Cloud SQL reduciendo el número de tablas abiertas.
Subtype: MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE

Aplicar recomendaciones

Evalúa las recomendaciones detenidamente y haz lo siguiente:

  • Para examinar la instancia, haz clic en Ver instancia. Consulte Optimizar el rendimiento de su instancia y siga las recomendaciones.

  • Para rechazar la recomendación y que aparezca atenuada, haz clic en Rechazar.

  • Para cerrar el panel sin aplicar ni rechazar la recomendación, haz clic en Cancelar.

Optimizar el rendimiento de una instancia

Para optimizar el rendimiento de su instancia, haga lo siguiente:

  1. Aumenta el valor de table_open_cache en 500 hasta que desaparezca la recomendación. La recomendación se actualiza a diario, así que, después de aumentar el valor de table_open_cache, espera 24 horas antes de volver a consultarla.

  2. Si el valor de open_tables es superior a table_open_cache, aumenta el valor de table_open_cache hasta el valor de open_tables.

    Para obtener información sobre cómo actualizar una marca de base de datos, consulta Configurar marcas de bases de datos.

Siguientes pasos