

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.

# Selección de tipos de instancia para Amazon Neptune
<a name="instance-types"></a>

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](https://aws.amazon.com/neptune/pricing/).

## Información general sobre la asignación de recursos de instancias
<a name="instance-resources"></a>

Cada tipo y tamaño de instancia de Amazon EC2 que se utiliza en Neptune ofrece una cantidad definida de memoria de sistema y de cómputo (vCPUs). 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 estimar el número de v CPUs necesario de la siguiente manera, donde la latencia se mide como la latencia media de las consultas en segundos y la simultaneidad se mide como el número objetivo de consultas por segundo:

```
vCPUs = (latency x concurrency) / 2
```

**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 con`/gremlin/status`, o `/oc/status` `/sparql/status` APIs, o también se puede observar con la `MainRequestsPendingRequestsQueue` CloudWatch métrica.

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`
<a name="instance-type-t3-t4g"></a>

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](https://aws.amazon.com/neptune/free-trial/) 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
<a name="instance-type-r4"></a>

*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](engine-releases-1.1.0.0.md) del motor, Neptune ya no admite tipos de instancias `r4`.

## Familia `r5` de tipos de instancias
<a name="instance-type-r5"></a>

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 v CPUs y 32 GiB de memoria) tiene el doble de v CPUs y memoria que un `r5.large` (2 v CPUs y 16 GiB de memoria), y un `r5.2xlarge` (8 v CPUs y 64 GiB de memoria) tiene el doble de v CPUs y memoria que an`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
<a name="instance-type-r5d"></a>

Neptune tiene una [característica de caché de búsqueda](feature-overview-lookup-cache.md) 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 EBS NVMe adjunto 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 RDF se almacenan en caché en este volumen. 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
<a name="instance-type-r6g"></a>

AWS ha desarrollado su propio procesador basado en ARM, llamado [Graviton](https://aws.amazon.com/ec2/graviton/), que ofrece mejores prestaciones que sus equivalentes de Intel y AMD. price/performance 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
<a name="instance-type-r6i"></a>

Las [instancias Amazon R6i](https://aws.amazon.com/ec2/instance-types/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
<a name="instance-type-x2g"></a>

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 memory-to-vCPU proporción mayor que la `r5` familia o. `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 utiliza 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.

## Familia `x2iezn` de tipos de instancias
<a name="instance-type-x2iezn"></a>

La `x2iezn` familia ofrece instancias optimizadas para la memoria equipadas con procesadores escalables Intel Xeon y rendimiento de alta frecuencia. Estas instancias ofrecen una memory-to-vCPU relación alta (32 GiB por vCPU), lo que las hace ideales para cargas de trabajo gráficas con uso intensivo de memoria que se benefician de un alto rendimiento de un solo subproceso.

Las características clave incluyen una frecuencia de turbo de hasta 4,5 GHz núcleos y la disponibilidad en tamaños que van desde 2xlarge hasta 12xlarge.

## Familia `x2iedn` de tipos de instancias
<a name="instance-type-x2iedn"></a>

La `x2iedn` familia ofrece instancias optimizadas para la memoria con almacenamiento SSD local. NVMe Estas instancias combinan una alta capacidad de memoria (32 GiB por vCPU) con un almacenamiento local rápido, lo que las hace ideales para cargas de trabajo gráficas que se benefician tanto de grandes cachés en memoria como de almacenamiento en caché de disco local de alto rendimiento.

Estas instancias, equipadas con procesadores escalables Intel Xeon de tercera generación, están disponibles en tamaños que van desde xlarge hasta 32xlarge y están optimizadas para bases de datos de gráficos a gran escala que requieren rendimiento tanto de memoria como de almacenamiento.

## Familia `r8g` de tipos de instancias
<a name="instance-type-r8g"></a>

La `r8g` familia contiene tipos de instancias optimizadas para la memoria que funcionan con procesadores Graviton4. AWS Estas instancias ofrecen mejoras de rendimiento significativas en comparación con las generaciones anteriores, lo que las hace ideales para cargas de trabajo de gráficos que hacen un uso intensivo de la memoria. Las instancias r8g mejoran el rendimiento de las consultas de gráficos entre un 15 y un 20 % en comparación con las instancias r7g.

La `r8g` familia usa una plataforma de doble socket. Los tipos de instancia van de `r8g.large` a `r8g.24xlarge` ejecutarse en un solo socket, lo que significa que el rendimiento se amplía linealmente con la capacidad de cómputo en ese rango. `r8g.48xlarge`Utiliza ambos sockets y es el tipo de instancia más grande de la familia; al igual que ocurre con otras familias de dos sockets, las mejoras de rendimiento al escalar de un `r8g.24xlarge` a otro `r8g.48xlarge` pueden no ser perfectamente lineales debido a la sobrecarga de administración de memoria entre sockets.

Entre las características principales de la familia `r8g` se incluyen:
+ Funciona con procesadores AWS Graviton4 basados en ARM
+ Mayor ancho de banda de memoria por vCPU en comparación con las generaciones anteriores.
+ Excelente price/performance relación tanto para consultas gráficas de estilo OLTP (restringidas) como para cargas de trabajo analíticas de estilo OLAP
+ Capacidades de administración de memoria mejoradas que benefician a los recorridos de gráficos complejos

La familia `r8g` es ideal para cargas de trabajo de producción que requieren una gran capacidad de memoria y un rendimiento coherente. Son especialmente eficaces para aplicaciones con requisitos elevados de simultaneidad de consultas.

## Familia `r7g` de tipos de instancias
<a name="instance-type-r7g"></a>

La `r7g` familia utiliza el procesador AWS Graviton3, que ofrece mejores prestaciones que las instancias anteriores basadas en Graviton2. price/performance En las pruebas, el procesador Graviton3 ofrece un rendimiento entre un 25 y un 30 % superior para las consultas de gráficos de estilo OLTP en comparación con las instancias r6g.

Al igual que la familia `r6g`, la familia `r7g` tiene una arquitectura de un solo socket, lo que significa que el rendimiento se escala linealmente con la capacidad de computación, desde un `r7g.large` a un `r7g.16xlarge` (el tipo más grande de la familia).

Entre las características principales de la familia `r7g` se incluyen:
+ Funciona con procesadores Graviton3 basados en ARM AWS 
+ Rendimiento de paginación de memoria mejorado en comparación con r6g, lo que beneficia tanto a las cargas de trabajo OLTP como OLAP.
+ Eficiencia mejorada de la caché del grupo de búferes.
+ Menor latencia para operaciones que requieren un uso intensivo de memoria.

La familia `r7g` es adecuada para entornos de producción con patrones de consulta variados y es especialmente eficaz para cargas de trabajo que se benefician de un mayor ancho de banda de memoria.

## Familia `r7i` de tipos de instancias
<a name="instance-type-r7i"></a>

La familia `r7i` funciona con procesadores escalables Intel Xeon de 4.ª generación (cuyo nombre en código es Sapphire Rapids) y ofrece mejoras significativas con respecto a las instancias r6i. Estas instancias proporcionan aproximadamente un 15% más de procesamiento price/performance y hasta un 20% más de ancho de banda de memoria por vCPU que los tipos de instancias r6i comparables.

La familia de instancias `r7i` tiene una arquitectura de CPU Intel de 2 sockets, similar a la familia `r5`. Los tipos `r7i.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 `r7i.16xlarge` y `r7i.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 `r7i.12xlarge` a un `r7i.16xlarge` o `r7i.24xlarge` no son tan lineales como las que se obtienen escalando verticalmente los tamaños más pequeños.

Entre las características principales de la familia `r7i` se incluyen:
+ Tecnología de procesadores escalables Intel Xeon de 4.ª generación.
+ El rendimiento se escala linealmente con la capacidad de computación hasta r7i.12xlarge
+ Mejora de la administración de la memoria entre procesadores físicos en la arquitectura de 2 sockets
+ Rendimiento mejorado para operaciones de gráficos que requieren un uso intensivo de memoria

Para todas estas familias de instancias, puedes estimar la cantidad de v CPUs necesaria con la misma fórmula que se mencionó anteriormente:

```
vCPUs = (latency x concurrency) / 2
```

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.

## Tipo de instancia `serverless`
<a name="instance-type-serverless"></a>

La característica [Neptune sin servidor](neptune-serverless.md) 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ántos v CPUs se necesitan para su aplicación, Neptune Serverless le permite [establecer límites inferior y superior de la capacidad de procesamiento (medidos en unidades de capacidad](neptune-serverless-capacity-scaling.md) 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.