En esta página se explica cómo puedes optimizar el rendimiento de Google Cloud NetApp Volumes.
Antes de empezar
Antes de hacer cambios en tus volúmenes para optimizar el rendimiento, consulta las consideraciones sobre el rendimiento.
Ajustar la configuración del volumen
Para optimizar el rendimiento, puede ajustar los siguientes ajustes de volumen:
Aumentar la capacidad del volumen: puedes aumentar la capacidad de tu volumen de nivel de servicio Premium, Extreme o Standard para mejorar el rendimiento máximo del volumen. En el caso de los volúmenes con el nivel de servicio Flex, aumenta la capacidad de los grupos de almacenamiento.
Cambiar a un nivel de servicio superior: puedes cambiar tus volúmenes del nivel de servicio Premium al nivel de servicio Extreme para mejorar el rendimiento. Te recomendamos que asignes el volumen a otro grupo de almacenamiento con un nivel de servicio diferente.
Usar grupos de QoS manuales para asignar un mayor rendimiento: puedes reducir el rendimiento asignado de volúmenes más grandes con requisitos de rendimiento bajos y aumentar el rendimiento de volúmenes más pequeños que necesiten un rendimiento mayor hasta el rendimiento disponible del grupo.
Aumentar la capacidad de volumen y mejorar los niveles de servicio no interrumpe las cargas de trabajo de E/S en proceso en el volumen y no afecta al acceso al volumen de ninguna manera.
Ajustar el cliente
Para mejorar el rendimiento, puedes ajustar los siguientes ajustes en el cliente:
Colocar clientes: los resultados de latencia se ven afectados directamente por las funciones y la ubicación del cliente. Para obtener los mejores resultados, coloca el cliente en la misma región que el volumen o lo más cerca posible. Prueba el impacto zonal comprobando la latencia de un cliente en cada zona y usa la zona con la latencia más baja.
Configurar el ancho de banda de la red de Compute Engine: las funciones de red de las máquinas virtuales de Compute Engine dependen del tipo de instancia que se utilice. Por lo general, las instancias más grandes pueden generar un mayor rendimiento de red. Te recomendamos que selecciones una máquina virtual cliente con una capacidad de ancho de banda de red adecuada, que elijas la interfaz de red NIC virtual de Google (gVNIC) y que habilites el rendimiento
Tier_1
. Para obtener más información, consulta la documentación de Compute Engine sobre el ancho de banda de red.Abrir varias sesiones TCP: si tu aplicación requiere un alto rendimiento, puedes saturar la sesión del protocolo de control de transmisión (TCP) que subyace a una sesión normal de NFS y SMB. En estos casos, aumenta el número de sesiones TCP que usan tus conexiones NFS y SMB.
Usa una de las siguientes pestañas para ajustar tu cliente en función del tipo de cliente:
Linux
Tradicionalmente, un cliente NFS usa una sola sesión TCP para todos los sistemas de archivos montados en NFS que comparten un endpoint de almacenamiento. La opción de montaje
nconnect
te permite aumentar el número de sesiones TCP admitidas hasta un máximo de 16.Para aprovechar al máximo
nconnect
, te recomendamos que sigas estas prácticas recomendadas para ajustar el tipo de cliente Linux:Aumentar el número de sesiones TCP con
nconnect
: cada sesión TCP adicional añade una cola de 128 solicitudes pendientes, lo que mejora la simultaneidad potencial.Definir el parámetro
sunrpc.max_tcp_slot_table_entries
:sunrpc.max_tcp_slot_table_entries
es un parámetro de ajuste a nivel de conexión que puedes modificar para controlar el rendimiento. Recomendamos definirsunrpc.max_tpc_slot_table_enteries
en 128 solicitudes o por conexión y no superar las 10.000 ranuras para todos los clientes de NFS de un mismo proyecto que se conecten a volúmenes de NetApp. Para definir el parámetrosunrpc.max_tcp_slot_table_entries
, añádelo al archivo/etc/sysctl.conf
y vuelve a cargar el archivo de parámetros con el comandosysctl -p
.Ajusta el valor máximo admitido 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 sesiones. Aunque NetApp Volumes admite hasta 128 solicitudes pendientes por conexión con NFSv3, NFSv4.1 está limitado a 180 solicitudes pendientes por sesión. Los clientes de Linux NFSv4.1 tienen un valor predeterminado de
64 max_session_slots
por 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 (" ") en línea. De lo contrario, la opción no se aplicará.$ 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 NFS
nconnect
se muestra el impacto que puede tener la configuración de nconnect en una carga de trabajo de NFS. Esta información se ha obtenido con Fio y los siguientes ajustes:Carga de trabajo de lectura al 100 %
Tamaño de bloque de 8 KiB en un único volumen
Máquina virtual
n2-standard-32
con el SO Red Hat 9Conjunto de trabajo de 6 TiB
Al usar un valor de
nconnect
de 16, el rendimiento fue cinco veces mayor que cuando no estaba habilitado.Windows
En el caso de los clientes basados en Windows, pueden usar SMB Multichannel con Receive Side Scaling (RSS) para abrir varias conexiones TCP. Para conseguir esta configuración, tu máquina virtual debe tener un adaptador de red asignado que admita RSS. Te recomendamos que definas RSS en cuatro u ocho valores. Sin embargo, cualquier valor superior a uno debería aumentar el rendimiento.
En el siguiente gráfico se muestra la diferencia que puede suponer la configuración de RSS en una carga de trabajo de una pyme. Esta información se ha obtenido con Fio y los siguientes ajustes:
Carga de trabajo de lectura al 100 %
Tamaño de bloque de 8 KiB en un único volumen
Una sola máquina virtual
n2-standard-32
que ejecute un SO Windows 2022Conjunto de trabajo de 6 TiB
Se ejecutaron ocho trabajos en los que solo cambiaba la opción RSS del cliente SMB entre las ejecuciones de prueba. Al usar valores de RSS de 4, 8 y 16, el rendimiento se duplicó en comparación con el uso del valor 1. Cada instancia de RSS se ejecutó nueve veces con un parámetro
numjobs
de 8. El parámetroiodepth
se ha incrementado en cinco en cada ejecución hasta alcanzar el rendimiento máximo.
QoS manual
La calidad de servicio (QoS) manual de NetApp Volumes te permite ajustar el rendimiento de los volúmenes para cumplir los requisitos de las cargas de trabajo y controlar los costes de almacenamiento.
La QoS manual ofrece las siguientes ventajas:
Optimización de costes: escala el rendimiento del volumen dentro de la capacidad de tu grupo de almacenamiento para optimizar los costes en la nube.
Ajuste instantáneo del rendimiento: ajusta el rendimiento del volumen sin tiempo de inactividad.
Reducción de los costes de recuperación tras desastres: reduce la calidad del servicio de los volúmenes replicados para reducir los costes de recuperación tras desastres de los grupos de destino.
Rendimiento mejorado para clones o cachés: aumenta el rendimiento de los volúmenes de clones o de caché con tamaños asignados pequeños.
Gestión flexible de cargas de trabajo: usa grupos de almacenamiento más grandes como contenedores de varias cargas de trabajo y ajusta el rendimiento de cada volumen según sea necesario.
Cuestiones importantes
Puedes gestionar la calidad del servicio manual con la CLI de Google Cloud, la API NetApp Volumes o Terraform. La consola Google Cloud no es compatible.
La QoS manual se admite en los niveles de servicio Standard, Premium y Extreme, pero no está disponible en el nivel de servicio Flex.
Configurar límites de QoS manuales
En el caso de los volúmenes de un grupo de almacenamiento de calidad del servicio manual, puedes definir el rendimiento y la capacidad de forma independiente. El rendimiento general de todos los volúmenes de un grupo de QoS manual está limitado por el rendimiento total del grupo. El rendimiento de un grupo se determina en función de su capacidad asignada y su nivel de servicio. Por ejemplo, un pool Premium de 40 TiB puede alcanzar un rendimiento máximo de 2560 MiB/s a 64 MiB/s por TiB, mientras que un pool Extreme de 200 TiB puede admitir volúmenes con un rendimiento combinado de 25.600 MiB/s.
Una vez que se haya configurado el grupo de QoS manual, podrá definir el límite de rendimiento necesario para cada volumen. El límite de rendimiento máximo de un solo volumen es de 4,5 GiBps, o de 30 GiBps en el caso de los volúmenes de gran capacidad.
Los comandos o las APIs de grupo y volumen muestran los valores de rendimiento disponibles y asignados del grupo para ayudarte a gestionar el rendimiento total. Para crear un pool de QoS manual y definir el rendimiento del volumen, consulta Crear un pool de almacenamiento y Crear un volumen.
Crear 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
Sustituye la siguiente información:
POOL_NAME
: el nombre del grupo que quieras crear. El nombre del grupo debe ser único por ubicación.PROJECT_ID
: el nombre del proyecto en el que quieras crear el grupo de almacenamiento.LOCATION
: la ubicación del grupo que quieras crear.CAPACITY
: capacidad del grupo en GiB.SERVICE_LEVEL
: el nivel de servicio de tu grupo de almacenamiento: Standard, Premium o Extreme.QOS_TYPE
: el tipo de QoS de tu grupo de almacenamiento: automático o manual.NETWORK_NAME
: el nombre de la VPC.
Editar un grupo de almacenamiento
gcloud
Edita un grupo de almacenamiento de QoS automático para usar QoS manual:
gcloud netapp storage-pools update POOL_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --qos-type=QOS_TYPE
Sustituye la siguiente información:
POOL_NAME
: el nombre del grupo que quieras actualizar.PROJECT_ID
: el nombre del proyecto.LOCATION
: la ubicación de la piscina.QOS_TYPE
: el tipo de QoS actualizado de tu grupo de almacenamiento. Solo se admite la configuración manual.
Crear un volumen
gcloud
Crea un volumen con un límite de rendimiento de QoS manual específico mediante 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
Sustituye 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 va a crear el volumen.LOCATION
: la ubicación del volumen.STORAGE_POOL
: el grupo de almacenamiento en el que se va a crear el volumen.CAPACITY
: 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,nfsv4
nfsv3,smb
nfsv4,smb
En función del tipo de protocolo que elijas, te recomendamos que añadas los parámetros específicos del protocolo, como
export-policy
osmb-settings
.SHARE_NAME
: la ruta de exportación de NFS o el nombre del recurso compartido SMB del volumen.THROUGHPUT_MIBPS
: el límite de rendimiento del volumen en MiBps.
Para obtener más información sobre las marcas opcionales adicionales, consulta la documentación del SDK de Google Cloud sobre la creación de volúmenes.
Siguientes pasos
Consulta información sobre los grupos de almacenamiento.