Elección del tipo de instancia de base de datos de Neptune correcto - Amazon Neptune

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Elección del tipo de instancia de base de datos de Neptune correcto

Amazon Neptune dispone de varios tamaños y familias de instancias diferentes, que ofrecen distintas capacidades que se adaptan a diferentes cargas de trabajo de gráficos. El objetivo de esta sección es ayudarle a elegir el mejor tipo de instancia para sus necesidades.

Para conocer los precios de cada tipo de instancia de estas familias, consulte la página de precios de Neptune.

Información general sobre la asignación de recursos de instancias

Cada tipo y tamaño de instancia de Amazon EC2 que se utiliza en Neptune tiene una cantidad definida de computación (vCPU) y memoria del sistema. El almacenamiento principal de Neptune es externo a las instancias de base de datos de un clúster, lo que permite que la capacidad de procesamiento y almacenamiento se escale de forma independiente.

Esta sección se centra en cómo se pueden escalar los recursos de computación y en las diferencias entre cada una de las distintas familias de instancias.

En todas las familias de instancias, los recursos de vCPU se asignan para admitir dos (2) subprocesos de ejecución de consultas por vCPU. Esta capacidad viene determinada por el tamaño de la instancia. Al determinar el tamaño adecuado de una instancia de base de datos de Neptune específica, debe tener en cuenta la posible simultaneidad de la aplicación y la latencia media de las consultas. Puede calcular la cantidad de vCPU necesaria de la siguiente manera, donde la latencia se mide como la latencia media de consultas en segundos y la simultaneidad se mide como el número objetivo de consultas por segundo:

Fórmula para calcular las vCPU necesarias para una instancia
nota

En determinadas circunstancias, las consultas de SPARQL, las consultas de openCypher y las consultas de lectura de Gremlin que utiliza el motor de consultas de DFE pueden emplear más de un subproceso de ejecución por consulta. Al dimensionar inicialmente el clúster de base de datos, comience con la suposición de que cada consulta consume un único subproceso de ejecución por ejecución y escale verticalmente si observa una contrapresión en la cola de consultas. Esto se puede observar mediante el uso de /sparql/status las API /gremlin/status/oc/status, o también se puede observar mediante la métrica. MainRequestsPendingRequestsQueue CloudWatch

La memoria del sistema de cada instancia se divide en dos asignaciones principales: la caché del grupo de búferes y la memoria de subprocesos de ejecución de consultas.

Aproximadamente dos tercios de la memoria disponible de una instancia se asigna a la caché del grupo de búferes. La caché del grupo de búferes se usa para almacenar en caché los componentes del gráfico utilizados más recientemente para acceder más rápidamente a las consultas que acceden repetidamente a esos componentes. Las instancias con una mayor cantidad de memoria del sistema tienen cachés de grupos de búferes más grandes que pueden almacenar una mayor parte del gráfico de forma local. Un usuario puede ajustar la cantidad adecuada de caché del búfer agrupado supervisando las métricas de aciertos y errores de caché disponibles en el búfer. CloudWatch

Es posible que desee aumentar el tamaño de la instancia si la tasa de aciertos de caché desciende por debajo del 99,9 % durante un período de tiempo constante. Esto sugiere que el conjunto de búferes no es lo suficientemente grande y que el motor tiene que buscar datos del volumen de almacenamiento subyacente con una frecuencia que no es eficiente.

El tercio restante de la memoria del sistema se distribuye de manera uniforme entre los subprocesos de ejecución de consultas, con algo de memoria restante para el sistema operativo y un pequeño grupo dinámico para que los subprocesos la utilicen según sea necesario. La memoria disponible para cada subproceso aumenta ligeramente de un tamaño de instancia a otro hasta llegar a un tipo de instancia 8xl, a cuyo tamaño la memoria asignada por subproceso alcanza el máximo.

El momento de añadir más memoria de subprocesos es cuando se encuentra con una OutOfMemoryException (OOM). Las excepciones OOM se producen cuando un subproceso necesita más memoria que la máxima que se le ha asignado (esto no es lo mismo que toda la instancia se quede sin memoria).

Tipos de instancias t3 y t4g

La familia de instancias t3 y t4g es una opción económica para empezar a utilizar una base de datos de gráficos y también para el desarrollo y las pruebas iniciales. Estas instancias son aptas para la oferta de capa gratuita de Neptune, que permite a los nuevos clientes utilizar Neptune sin coste alguno durante las primeras 750 horas de instancia utilizadas en una AWS cuenta independiente o acumuladas en una AWS organización con facturación unificada (cuenta de pagador).

Las instancias t3 y t4g solo se ofrecen en la configuración de tamaño medio (t3.medium y t4g.medium).

No se han diseñado para utilizarse en un entorno de producción.

Dado que estas instancias tienen recursos muy limitados, no se recomiendan para probar el tiempo de ejecución de las consultas o el rendimiento general de la base de datos. Para evaluar el rendimiento de las consultas, actualice a una de las otras familias de instancias.

Familia r4 de tipos de instancias

EN DESUSO: la familia r4 se ofreció en 2018 cuando se lanzó Neptune, pero ahora los tipos de instancias más recientes tienen una relación precio-rendimiento mucho mejor. A partir de la versión 1.1.0.0 del motor, Neptune ya no admite tipos de instancias r4.

Familia r5 de tipos de instancias

La familia r5 contiene tipos de instancias optimizadas para memoria que funcionan bien en la mayoría de los casos de uso de gráficos. La familia r5 contiene tipos de instancias desde r5.large hasta r5.24xlarge. Escalan linealmente el rendimiento de computación a medida que aumenta el tamaño. Por ejemplo, un r5.xlarge (4 vCPU y 32 GiB de memoria) tiene el doble de vCPU y memoria que un r5.large (2 vCPU y 16 GiB de memoria), y un r5.2xlarge (8 vCPU y 64 GiB de memoria) tiene el doble de vCPU y memoria que un r5.xlarge. Puede esperar que el rendimiento de las consultas se escale directamente con la capacidad de computación con tipos de instancias de hasta r5.12xlarge.

La familia de instancias r5 tiene una arquitectura de CPU Intel de 2 sockets. Los tipos r5.12xlarge y los más pequeños utilizan un solo socket y la memoria del sistema es propiedad de ese procesador de un solo socket. Los tipos r5.16xlarge y r5.24xlarge utilizan los dos sockets y la memoria disponible. Dado que se requiere cierta sobrecarga en la administración de la memoria entre dos procesadores físicos de una arquitectura de 2 sockets, las ganancias de rendimiento si se escala verticalmente de un tipo de instancia r5.12xlarge a un r5.16xlarge o r5.24xlarge no son tan lineales como las que se obtienen escalando verticalmente los tamaños más pequeños.

Familia r5d de tipos de instancias

Neptune tiene una característica de caché de búsqueda que se puede utilizar para mejorar el rendimiento de las consultas que necesitan recuperar y devolver un gran número de valores de propiedades y literales. Esta característica la utilizan principalmente los clientes con consultas que necesitan devolver muchos atributos. La caché de búsqueda mejora el rendimiento de estas consultas al obtener estos valores de atributos de forma local en lugar de buscarlos una y otra vez en el almacenamiento indexado de Neptune.

La caché de búsqueda se implementa mediante un volumen de EBS asociado a NVMe en un tipo de instancia r5d. Se habilita mediante un grupo de parámetros de un clúster. A medida que los datos se obtienen del almacenamiento indexado de Neptune, los valores de las propiedades y los literales de RDF se almacenan en caché en este volumen de NVMe.

Si no necesita la característica de caché de búsqueda, utilice un tipo de instancia r5 estándar en lugar de r5d para evitar el mayor costo que supone r5d.

La familia r5d tiene tipos de instancias del mismo tamaño que la familia r5, desde r5d.large hasta r5d.24xlarge.

Familia r6g de tipos de instancias

AWS ha desarrollado su propio procesador basado en ARM, llamado Graviton, que ofrece una mejor relación precio/rendimiento que sus equivalentes de Intel y AMD. La familia r6g utiliza el procesador Graviton2. En nuestras pruebas, el procesador Graviton2 ofrece un rendimiento entre un 10 y un 20 % mejor para las consultas gráficas de estilo OLTP (restringidas). Sin embargo, las consultas más grandes, tipo OLAP, pueden tener un rendimiento ligeramente inferior con los procesadores Graviton2 que con los procesadores Intel, debido a que el rendimiento de paginación de memoria es ligeramente inferior.

También es importante tener en cuenta que la familia r6g tiene una arquitectura de un solo socket, lo que significa que el rendimiento se escala linealmente con la capacidad de computación, desde un r6g.large a un r6g.16xlarge (el tipo más grande de la familia).

Familia r6i de tipos de instancias

Las instancias Amazon R6i funcionan con procesadores escalables Intel Xeon de tercera generación (nombre en código Ice Lake) y son ideales para cargas de trabajo que hacen un uso intensivo de la memoria. Como regla general, ofrecen hasta un 15 % más de rendimiento de computación y hasta un 20 % más de ancho de banda de memoria por vCPU que los tipos de instancias R5 comparables.

Familia x2g de tipos de instancias

Algunos casos de uso de gráficos tienen mejor rendimiento cuando las instancias tienen cachés de grupos de búferes más grandes. La familia x2g se lanzó para facilitar mejor esos casos de uso. La x2g familia tiene una relación de memory-to-v CPU mayor que la familia or. r5 r6g Las instancias x2g también utilizan el procesador Graviton2 y tienen muchas de las mismas características de rendimiento que los tipos de instancias r6g, además de una memoria caché de grupos de búferes más grande.

Si tiene tipos de instancias r5 o r6g con un bajo uso de la CPU y una alta tasa de errores de caché del grupo de búferes, pruebe a usar la familia x2g en su lugar. De esta forma, conseguirá la memoria adicional que necesita sin tener que pagar más capacidad de CPU.

Tipo de instancia serverless

La característica Neptune sin servidor puede escalar el tamaño de la instancia de forma dinámica en función de las necesidades de recursos de la carga de trabajo. En lugar de calcular cuántas vCPU se necesitan para su aplicación, Neptune sin servidor le permite establecer unos límites inferior y superior en la capacidad de computación (medidos en unidades de capacidad de Neptune) para las instancias de su clúster de base de datos. Los costos de las cargas de trabajo con distintos usos se pueden optimizar si se utilizan instancias sin servidor en lugar de aprovisionadas.

Puede configurar instancias aprovisionadas y sin servidor en el mismo clúster de base de datos para lograr una configuración con una relación costo-rendimiento óptima.