En esta página, se describe cómo puedes optimizar el rendimiento de Google Cloud NetApp Volumes ajustando la configuración del volumen y del cliente. Estos ajustes mejoran la capacidad de procesamiento, reducen la latencia y mejoran la eficiencia general de la transferencia de datos para tus aplicaciones.
Antes de comenzar
Antes de realizar cambios en tus volúmenes para optimizar el rendimiento, revisa las consideraciones de rendimiento.
Ajusta la configuración del volumen
Puedes optimizar el rendimiento ajustando la siguiente configuración del volumen:
Aumenta la capacidad del volumen: puedes aumentar la capacidad de tu volumen de nivel de servicio Premium, Extremo o Estándar para mejorar la capacidad de procesamiento máxima alcanzable del volumen Para los volúmenes del nivel de servicio Flex (tipo de archivo), aumenta la capacidad del grupo de almacenamiento. Para el rendimiento personalizado de Flex (unificado) o Flex (tipo de archivo), aumenta la capacidad de procesamiento y las IOPS del grupo de almacenamiento.
Actualiza tu nivel de servicio: Puedes mover un volumen de nivel de servicio Premium a un grupo de almacenamiento con un nivel de servicio Extremo para mejorar la capacidad de procesamiento.
Usa grupos de QoS manuales para asignar una mayor capacidad de procesamiento: Puedes disminuir la capacidad de procesamiento asignada de volúmenes más grandes con requisitos de capacidad de procesamiento bajos y aumentar la capacidad de procesamiento de volúmenes más pequeños que necesitan un mayor rendimiento hasta la capacidad de procesamiento disponible del grupo.
El aumento de la capacidad del volumen y la actualización de los niveles de servicio no interrumpen las cargas de trabajo de E/S en proceso en el volumen y no afectan el acceso al volumen de ninguna manera.
Ajusta el cliente
Puedes mejorar el rendimiento ajustando la siguiente configuración en el cliente:
Ubica los clientes en el mismo lugar: Los resultados de latencia se ven directamente afectados por las capacidades y la ubicación del cliente. Para obtener mejores resultados, coloca el cliente en la misma región que el volumen o lo más cerca posible. Prueba el impacto zonal probando la latencia desde un cliente en cada zona y usa la zona con la latencia más baja.
Configura el ancho de banda de red de Compute Engine: Las capacidades de red de las máquinas virtuales de Compute Engine dependen del tipo de instancia que se use. Por lo general, las instancias más grandes pueden generar más capacidad de procesamiento de red. Te recomendamos que selecciones una máquina virtual cliente con una capacidad de ancho de banda de red adecuada, selecciones la interfaz de red de la NIC virtual de Google (gVNIC) y habilites el rendimiento de
Tier_1. Para obtener más información, consulta la documentación de Compute Engine sobre el ancho de banda de red.Abre varias sesiones de TCP: Si tu aplicación requiere un alto rendimiento, puedes saturar la sesión única del protocolo de control de transmisión (TCP) que subyace a una sesión normal de NFS y SMB. En esos casos, aumenta la cantidad de sesiones de TCP que usa tu conexión NFS y SMB.
Usa una de las siguientes pestañas para ajustar tu cliente según el tipo de cliente:
Linux
Tradicionalmente, un cliente de NFS usa una sola sesión de TCP para todos los sistemas de archivos montados en NFS que comparten un extremo de almacenamiento. El uso de la opción de activación
nconnectte permite aumentar la cantidad de sesiones de TCP admitidas hasta un máximo de 16.Te recomendamos las siguientes prácticas recomendadas para ajustar tu tipo de cliente de Linux para aprovechar al máximo
nconnect:Aumenta la cantidad de sesiones de TCP con
nconnect: Cada sesión de TCP adicional agrega una cola para 128 solicitudes pendientes, lo que mejora la simultaneidad potencial.Establece el parámetro
sunrpc.max_tcp_slot_table_entries:sunrpc.max_tcp_slot_table_entrieses un ajuste a nivel de conexión parámetro que puedes modificar para controlar el rendimiento. Te recomendamos que establezcassunrpc.max_tpc_slot_table_enteriesen 128 solicitudes o por conexión y que no superes las 10,000 ranuras para todos los clientes de NFS dentro de un solo proyecto que se conecte a NetApp Volumes. Para establecer el parámetrosunrpc.max_tcp_slot_table_entries, agrega el parámetro a tu archivo/etc/sysctl.confy vuelve a cargar el archivo de parámetros con el comandosysctl -p.Ajusta el valor admitido máximo por sesión a 180: A diferencia de NFSv3, los clientes de NFSv4.1 definen la relación entre el cliente y el servidor en las sesiones. Si bien NetApp Volumes admite hasta 128 solicitudes pendientes por conexión con NFSv3, NFSv4.1 se limita a 180 solicitudes pendientes por sesión. Los clientes de Linux NFSv4.1 tienen como valor predeterminado
64 max_session_slotspor sesión, pero puedes ajustar este valor según sea necesario. Te recomendamos que cambies el valor máximo admitido por sesión a 180.Para ajustar
max_session_slots, crea un archivo de configuración en/etc/modprobe.d. Asegúrate de que no aparezcan comillas (" ") intercaladas. De lo contrario, la opción no tendrá efecto.$ echo "options nfs max_session_slots=180" > /etc/modprobe/d/nfsclient/conf $ reboot Use the systool -v -m nfs command to see the current maximum in use by the client. For the command to work, at least one NFSv4.1 mount must be in place. $ systool -v -v nfs { Module = "nfs" … Parameters: … Max_session_slots = "63" <- … }
En el siguiente gráfico de comparación de
nconnectde NFS, se muestra el impacto que puede tener el uso de la configuración de nconnect en una carga de trabajo de NFS. Esta información se capturó con Fio con la siguiente configuración:Carga de trabajo de lectura del 100%
Tamaño de bloque de 8 KiB en un solo volumen
Máquina virtual
n2-standard-32con el SO Red Hat 9Conjunto de tareas de 6 TiB
El uso de un valor
nconnectde 16 generó cinco veces más rendimiento que cuando no estaba habilitado.
Windows
En el caso de los clientes basados en Windows, el cliente puede usar SMB Multichannel con Receive Side Scaling (RSS) para abrir varias conexiones TCP. Para lograr esta configuración, tu máquina virtual debe tener un adaptador de red asignado que admita RSS. Te recomendamos que establezcas RSS en cuatro u ocho valores. Sin embargo, cualquier valor superior a uno debería aumentar la capacidad de procesamiento.
En el siguiente gráfico, se muestra la diferencia que puede tener el uso de la configuración de RSS en una carga de trabajo de SMB. Esta información se capturó con Fio con la siguiente configuración:
Carga de trabajo de lectura del 100%
Tamaño de bloque de 8 KiB en un solo volumen
Máquina virtual
n2-standard-32única que ejecuta un SO Windows 2022Conjunto de tareas de 6 TiB
Se ejecutaron ocho trabajos con solo la opción RSS del cliente SMB que cambiaba entre las ejecuciones de prueba. El uso de valores RSS de 4, 8 y 16 aumentó el rendimiento dos veces en comparación con el uso de un valor de 1. Cada instancia de RSS se ejecutó nueve veces con un parámetro
numjobsde 8. El parámetroiodepthse aumentó en cinco en cada ejecución hasta que se alcanzó la capacidad de procesamiento máxima.
Cargas de trabajo de computación de alto rendimiento y de alta simultaneidad
Para las cargas de trabajo de NFS a gran escala y de alta simultaneidad, como las que se encuentran en entornos de computación de alto rendimiento (HPC) o EDA, considera aplicar las siguientes optimizaciones del cliente para mejorar el rendimiento y la estabilidad, y evitar problemas como las tormentas de metadatos o los bloqueos del cliente:
Opciones de activación de NFS: Cuando actives el recurso compartido de NFS de NetApp Volumes, incluye las siguientes opciones en tu
/etc/fstabo comando de activación:actimeo=600: Aumenta el tiempo que se almacenan en caché los atributos en el cliente, lo que reduce las llamadas aGETATTR.nconnect=8: Usa varias conexiones TCP por activación, lo que mejora el ancho de banda.
Ejemplo de comando de activación:
sudo mount -t nfs -o rw,hard,intr,rsize=1048576,wsize=1048576,vers=3,tcp,actimeo=600,nconnect=8 SERVER:/SHARE /mnt/netappConfiguración de
keepalivede TCP: Ajusta elkeepalivede TCP del sistema para detectar conexiones que no responden más rápido. Esto se puede configurar consysctl:sudo sysctl -w net.ipv4.tcp_keepalive_time=60Para que este cambio sea persistente en los reinicios, agrega
net.ipv4.tcp_keepalive_time = 60a/etc/sysctl.confy vuelve a cargar consudo sysctl -p.
QoS manual
La calidad de servicio (QoS) manual en NetApp Volumes te permite ajustar el rendimiento del volumen para satisfacer los requisitos de la carga de trabajo y controlar los costos de almacenamiento.
La QoS manual ofrece los siguientes beneficios:
Optimización de costos: Ajusta el rendimiento del volumen dentro de la capacidad del grupo de almacenamiento para optimizar los costos de la nube.
Ajuste instantáneo de la capacidad de procesamiento: Ajusta la capacidad de procesamiento del volumen sin tiempo de inactividad.
Reducción de costos de recuperación ante desastres: Disminuye la QoS para los volúmenes replicados para reducir los costos de recuperación ante desastres de los grupos de destino.
Rendimiento mejorado para clones o cachés: Aumenta el rendimiento de los volúmenes de clon o caché con tamaños asignados pequeños.
Administración flexible de cargas de trabajo: Usa grupos de almacenamiento más grandes como contenedores para varias cargas de trabajo y ajusta la capacidad de procesamiento de cada volumen según sea necesario.
Consideraciones
Puedes administrar la QoS manual con Google Cloud CLI, la API de NetApp Volumes o Terraform. No se admite la Google Cloud consola.
La QoS manual se admite para los niveles de servicio Flex (unificado), Estándar, Premium y Extremo, y no está disponible para el nivel de servicio Flex (tipo de archivo).
Configura los límites de QoS manuales
Para los volúmenes dentro de un grupo de almacenamiento de QoS manual, puedes establecer la capacidad de procesamiento y la capacidad de forma independiente. La capacidad de procesamiento general de todos los volúmenes en un grupo de QoS manual está limitada por la capacidad de procesamiento total del grupo. La capacidad de procesamiento del grupo está determinada por su capacidad asignada y su nivel de servicio. Por ejemplo, un grupo Premium de 40 TiB puede alcanzar una capacidad de procesamiento máxima de 2,560 MiBps a 64 MiBps por TiB, mientras que un grupo Extremo de 200 TiB puede admitir volúmenes con una capacidad de procesamiento combinada de 25,600 MiBps.
Una vez que se configura el grupo de QoS manual, puedes establecer el límite de capacidad de procesamiento requerido para cada volumen dentro de él. El límite máximo de capacidad de procesamiento para un solo volumen es de 4.5 GiBps o de 30 GiBps para volúmenes de gran capacidad.
Los comandos o las APIs de grupo y volumen muestran los valores de capacidad de procesamiento disponibles y asignados para el grupo para ayudarte a administrar la capacidad de procesamiento total. Para crear un grupo de QoS manual y definir la capacidad de procesamiento del volumen, consulta Crea un grupo de almacenamiento y Crea un volumen.
Crea un grupo de almacenamiento
gcloud
Crea un grupo de almacenamiento con QoS manual:
gcloud netapp storage-pools create POOL_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --capacity=CAPACITY \ --service-level=SERVICE_LEVEL \ --qos-type=QOS_TYPE \ --network=name=NETWORK_NAME
Reemplaza la siguiente información:
POOL_NAME: el nombre del grupo que deseas crear. El nombre del grupo debe ser único por ubicación.PROJECT_ID: el nombre del proyecto en el que deseas crear el grupo de almacenamiento.LOCATION: la ubicación del grupo que deseas crear.CAPACITY: la capacidad del grupo en GiB.SERVICE_LEVEL: el nivel de servicio de tu grupo de almacenamiento: Estándar, Premium o Extremo.QOS_TYPE: el tipo de QoS de tu grupo de almacenamiento: automático o manual.NETWORK_NAME: el nombre de la VPC.
Edita un grupo de almacenamiento
gcloud
Edita un grupo de almacenamiento de QoS automático existente para usar la QoS manual:
gcloud netapp storage-pools update POOL_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --qos-type=QOS_TYPE
Reemplaza la siguiente información:
POOL_NAME: el nombre del grupo que deseas actualizar.PROJECT_ID: el nombre del proyecto.LOCATION: la ubicación del grupo.QOS_TYPE: el tipo de QoS actualizado para tu grupo de almacenamiento. Solo se admite la configuración manual.
Crear un volumen
gcloud
Crea un volumen con el límite de capacidad de procesamiento de QoS manual especificado con el siguiente comando:
gcloud netapp volumes create VOLUME_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --storage-pool=STORAGE_POOL \ --capacity=CAPACITY \ --protocols=PROTOCOLS \ --share-name=SHARE_NAME \ --throughput-mibps=THROUGHPUT_MIBPS
Reemplaza la siguiente información:
VOLUME_NAME: el nombre del volumen. Este nombre debe ser único por ubicación.PROJECT_ID: el nombre del proyecto en el que se creará el volumen.LOCATION: la ubicación del volumen.STORAGE_POOL: el grupo de almacenamiento en el que se creará el volumen.CAPACITY: la capacidad del volumen. Define la capacidad que ven los clientes de NAS.PROTOCOLS: elige los protocolos NAS con los que se exporta el volumen. Las opciones válidas son NFSv3, NFSv4, SMB y las siguientes combinaciones:nfsv3,nfsv4nfsv3,smbnfsv4,smb
Según el tipo de protocolo que elijas, te recomendamos que agregues los parámetros específicos del protocolo, como
export-policyosmb-settings.SHARE_NAME: la ruta de exportación de NFS o el nombre del recurso compartido de SMB del volumen.THROUGHPUT_MIBPS: el límite de capacidad de procesamiento del volumen en MiBps.
¿Qué sigue?
Obtén información sobre la migración de volúmenes.