Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Blob Storage ya es compatible con el protocolo Network File System (NFS) 3.0. Este artículo contiene recomendaciones que le ayudan a optimizar el rendimiento de las solicitudes de almacenamiento. Para más información sobre la compatibilidad de NFS 3.0 con Azure Blob Storage, consulte Compatibilidad con el protocolo Network File System (NFS) 3.0 para Azure Blob Storage.
Adición de clientes para aumentar el rendimiento
Azure Blob Storage escala linealmente hasta alcanzar el límite máximo de entrada y salida de la cuenta de almacenamiento. Por lo tanto, las aplicaciones pueden lograr un mayor rendimiento mediante el uso de más clientes. Para ver los límites de salida y entrada de la cuenta de almacenamiento, consulte Objetivos de escalabilidad y rendimiento para las cuentas de almacenamiento estándar.
En el gráfico siguiente se muestra cómo aumenta el ancho de banda a medida que se agregan más clientes. En este gráfico, un cliente es una máquina virtual (VM) y con una cuenta de almacenamiento estándar de uso general v2.
En el gráfico siguiente se muestra este mismo efecto cuando se aplica a una cuenta de almacenamiento de blobs en bloques Premium.
Uso de cuentas de almacenamiento de blobs en bloques Premium para aplicaciones a pequeña escala
No todas las aplicaciones se pueden escalar verticalmente agregando más clientes. Para esas aplicaciones, la cuenta de almacenamiento de blobs en bloques premium de Azure ofrece una baja latencia coherente y altas tasas de transacción. La cuenta de almacenamiento de blobs en bloques prémium puede alcanzar el ancho de banda máximo con menos subprocesos y clientes. Por ejemplo, con un solo cliente, una cuenta de almacenamiento de blobs en bloques Premium puede lograr un ancho de banda de 2,3x en comparación con la misma configuración que se usa con una cuenta de almacenamiento de uso general de rendimiento estándar v2.
Cada barra del gráfico siguiente muestra la diferencia en el ancho de banda alcanzado entre las cuentas de almacenamiento de rendimiento premium y estándar. A medida que aumenta el número de clientes, esa diferencia disminuye.
Mejora del tamaño de lectura anticipada para aumentar el rendimiento de lectura de archivos de gran tamaño
El parámetro de kernel read_ahead_kb representa la cantidad de datos adicionales que se deben leer después de completar una solicitud de lectura determinada. Puede aumentar este parámetro a 16 MiB para mejorar el rendimiento de lectura de archivos de gran tamaño.
export AZMNT=/your/container/mountpoint
echo 16384 > /sys/class/bdi/0:$(stat -c "%d" $AZMNT)/read_ahead_kb
Evitar sobrescrituras frecuentes en los datos
Se tarda más tiempo en completar una operación de sobrescritura que una nueva operación de escritura. Esto se debe a que una operación de sobrescritura de NFS, especialmente una edición parcial de archivos en contexto, es una combinación de varias operaciones de blobs subyacentes: una operación de lectura, una modificación y una operación de escritura. Por lo tanto, una aplicación que requiere ediciones en contexto frecuentes no es adecuada para las cuentas de almacenamiento de blobs habilitadas para NFS.
Despliegue de Azure HPC Cache para aplicaciones sensibles a la latencia
Algunas aplicaciones pueden requerir una latencia baja además de un alto rendimiento. Puede implementar Azure HPC Cache para mejorar significativamente la latencia. Obtenga más información sobre la latencia en Blob Storage.
Aumento del número de conexiones TCP
Puede usar la nconnect
opción de montaje para obtener un mayor rendimiento de lectura y escritura agregados desde una sola máquina virtual, pero solo si el kernel de Linux tiene compatibilidad con Azure nconnect.
nconnect
es una opción de montaje de Linux del lado cliente que permite usar varias conexiones TCP entre el cliente y el punto de conexión de Blob Service. Puede usar la nconnect
opción en el comando mount para especificar el número de conexiones TCP que desea crear (por ejemplo: mount -t aznfs -o nconnect=16,sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdatain
).
Importante
Aunque las distribuciones más recientes de Linux son totalmente compatibles con nconnect, solo debe usar esta opción si el kernel tiene compatibilidad con Azure nconnect. El uso de la opción de montaje sin compatibilidad con Azure nconnect reducirá el nconnect
rendimiento, provocará varios tiempos de espera y provocará que los comandos como READDIR
y READIRPLUS
funcionen incorrectamente.
La compatibilidad con Azure nconnect está disponible con la mayoría de los kernels de Ubuntu más recientes que se pueden usar con máquinas virtuales de Azure. Para averiguar si la compatibilidad con Azure nconnect está disponible para el kernel, ejecute el siguiente comando.
[ -e /sys/module/sunrpc/parameters/enable_azure_nconnect ] && echo "Yes" || echo "No"
Si la compatibilidad con nconnect de Azure está disponible para el kernel, Yes
se imprime en la consola. En caso contrario, 'No
se imprime en la consola.
Si la compatibilidad con Azure nconnect está disponible, habilitela mediante la ejecución del siguiente comando.
echo Y > /sys/module/sunrpc/parameters/enable_azure_nconnect
Otras recomendaciones de procedimientos recomendados
Use máquinas virtuales con ancho de banda de red suficiente.
Use varios puntos de montaje cuando las cargas de trabajo lo permitan.
Use tantos subprocesos como sea posible.
Use tamaños de bloques grandes.
Realice solicitudes de almacenamiento desde un cliente que se encuentre en la misma región que la cuenta de almacenamiento. Esto puede mejorar la latencia de red.
Pasos siguientes
Para más información sobre la compatibilidad de NFS 3.0 con Azure Blob Storage, consulte Compatibilidad con el protocolo Network File System (NFS) 3.0 para Azure Blob Storage.
Para empezar, consulte Montaje de Blob Storage mediante el protocolo Network File System (NFS) 3.0.