En esta página se describen las prácticas recomendadas para las transferencias del sistema de archivos.
Prácticas recomendadas para mejorar el rendimiento
Estas son las prácticas recomendadas para asegurar un buen rendimiento de la transferencia:
Compara tu rendimiento transfiriendo un corpus de datos grande, normalmente de al menos 100 GB.
Servicio de transferencia de Storage es un servicio a gran escala optimizado para el rendimiento, por lo que el rendimiento que obtenga con conjuntos de datos de prueba muy pequeños no será indicativo del rendimiento que obtendrá con conjuntos de datos grandes en producción.
Limita las carpetas de origen a 1 millón de archivos. Los directorios que contienen millones de archivos pueden ralentizar toda la transferencia.
Ejecuta agentes en máquinas virtuales independientes para poder escalar el consumo de recursos de forma más eficaz.
Verifica que la interfaz de red de las máquinas del agente tenga el tamaño adecuado para el ancho de banda de lectura/escritura que necesitas.
Por ejemplo, si quieres utilizar por completo una red de área extensa (WAN) de 20 Gbps, la interfaz de red de tu máquina del agente debe admitir 20 Gbps para leer datos de tu sistema de archivos en red y otros 20 Gbps para transferir datos a Cloud Storage, o 40 Gbps de ancho de banda total.
Monitoriza la CPU, la memoria y la red de los equipos del agente para asegurarte de que los equipos no estén sobrecargados por otras cargas de trabajo, ya que esto puede afectar negativamente al rendimiento. Consulta los requisitos de hardware del agente para ver las cifras de memoria y CPU sugeridas.
Subidas multiparte
Si la transferencia se realiza desde un sistema de archivos POSIX a Cloud Storage o entre sistemas de archivos POSIX, te recomendamos que habilites las subidas multiparte. La subida por partes puede acelerar las transferencias que incluyen archivos grandes hasta un 300 % si se dividen los archivos grandes (más de 1 GiB) en partes más pequeñas y se suben esas partes en paralelo.
Los sistemas de archivos compatibles con HDFS y S3 no admiten subidas multiparte.
Habilitar las subidas multiparte
Para habilitar las subidas multiparte, sigue estos pasos:
Debes conceder los permisos necesarios a la cuenta que autoriza a los agentes de transferencia, ya sea una cuenta de usuario o una cuenta de servicio.
El segmento de destino o intermedio no debe tener una política de conservación ni un bloqueo de objeto.
Una vez habilitado, el servicio de transferencia de Storage usa la subida multiparte automáticamente cuando es probable que acelere una transferencia.
Configurar reglas de ciclo de vida de objetos multiparte
Puedes usar la gestión del ciclo de vida de los objetos de Cloud Storage para abortar una subida multiparte incompleta y eliminar las partes asociadas. Consulta Abort incomplete multipart uploads (Abortar subidas multiparte incompletas) en la documentación de Cloud Storage.
Te recomendamos que definas un valor de age
de 7 días.
Inhabilitar las subidas multiparte
Para inhabilitar las subidas multiparte, vuelve a instalar los agentes de transferencia con docker run
y pasa --enable-multipart=false
:
sudo docker run --ulimit memlock=64000000 -d --rm \ -v /usr/local/research:/usr/local/research \ gcr.io/cloud-ingest/tsop-agent:latest \ --project-id=PROJECT_ID \ --agent-pool=AGENT_POOL \ --creds-file=CREDENTIAL_FILE \ --hostname=$(hostname) \ --enable-multipart=false
Haz los cambios siguientes:
PROJECT_ID
especifica el ID del proyecto que aloja la transferencia.CREDENTIAL_FILE
: si el agente de transferencia usa una cuenta de servicio para la autenticación, especifica la ruta a un archivo de credenciales de cuenta de servicio en formato JSON.
También puedes revocar los permisos necesarios de la cuenta que autoriza a los agentes de transferencia, ya sea una cuenta de usuario o una cuenta de servicio.
Maximizar el rendimiento de los agentes de transferencia
El rendimiento de las transferencias se ve afectado por las siguientes variables:
Funciones del sistema de archivos.
Limitaciones del hardware subyacente.
El tipo de medio del disco duro, el bus de entrada/salida y la conectividad de la red de área local (LAN) afectan al rendimiento.
Rendimiento y uso de la WAN.
Una WAN más lenta o muy utilizada ralentiza el rendimiento.
Características del archivo.
Por ejemplo, muchos archivos grandes tienen un rendimiento de red mayor que muchos archivos pequeños debido a la sobrecarga de la red.
Debido a estas variables, no podemos predecir el rendimiento real ni proporcionar un número óptimo de agentes.
Como mínimo, te recomendamos que uses tres agentes en diferentes máquinas, si es posible, para que la transferencia siga tolerando fallos. Puedes añadir agentes de transferencia mientras se ejecutan las transferencias, ya que el rendimiento aumenta de forma dinámica.
Para observar el impacto de añadir agentes y elegir el número de agentes que mejor se adapte a tu entorno, sigue estos pasos:
Inicia una transferencia grande que tarde al menos 1 hora en completarse. Por ejemplo, inicia una transferencia que contenga al menos 100.000 archivos y que tenga un tamaño total de al menos 100 GB.
Usa Cloud Monitoring para observar el rendimiento general del agente.
Espera a que el rendimiento se estabilice y determina si estás limitado por la capacidad de tu WAN o por el límite de ancho de banda.
Si no has saturado la capacidad de tu WAN y no has alcanzado el límite de transferencia deseado, añade otro agente. El agente adicional aumenta automáticamente el rendimiento de la transferencia. Espera aproximadamente 3 minutos para que el rendimiento se estabilice en Cloud Monitoring.
Repite los pasos 3 y 4, añadiendo un agente cada vez hasta alcanzar el límite que quieras. Siempre que haya recursos de computación, de sistema de archivos y de red disponibles, puedes ejecutar hasta 100 agentes simultáneamente por grupo de agentes.
Si saturas tu ancho de banda de salida antes de alcanzar el límite deseado, puedes hacer lo siguiente:
- Controlar el ancho de banda que usa Servicio de transferencia de Storage.
- Obtener más ancho de banda de red.
Si has añadido agentes, pero el rendimiento no aumenta y tu WAN no está saturada, investiga el rendimiento del sistema de archivos. En raras ocasiones, el rendimiento del sistema de archivos se satura, lo que dificulta que aumentes el rendimiento de la transferencia.
Asignar nombres a agentes
Cuando asignes nombres a los agentes, te recomendamos que hagas lo siguiente:
Incluye siempre el nombre de host en tu agente. Esto te ayuda a encontrar la máquina en la que se está ejecutando un agente. Te recomendamos que pases
--hostname=$(hostname)
al comandorun
de Docker.Elige un esquema de prefijo de agente que te ayude a identificar los agentes en el contexto de tu monitorización y organización de la infraestructura. Por ejemplo:
Si tienes tres proyectos de transferencia independientes, puede que te interese incluir el nombre del equipo en tu agente. Por ejemplo,
logistics
.Si estás ejecutando dos proyectos de transferencia diferentes para dos centros de datos distintos, puedes incluir el nombre del centro de datos en el prefijo del agente. Por ejemplo,
omaha
.