PowerScale OneFS: Solución de problemas de rendimiento
Summary: Solucione problemas de rendimiento lento de PowerScale OneFS con una guía integral sobre la configuración de red, las cargas de procesamiento y el monitoreo con InsightIQ para mejorar la eficiencia del clúster. ...
Symptoms
Las computadoras cliente funcionan lentamente. Ciertos trabajos, especialmente los que se ejecutan en el clúster, fallan o tardan más de lo esperado en completarse.
Cause
Por lo general, los problemas de rendimiento se deben al tráfico de red, problemas de configuración de red, la carga de procesamiento de clientes o clústeres, o a una combinación de estos factores. En este artículo, se describen varias maneras eficaces de solucionar problemas de rendimiento.
Resolution
Solución de problemas con InsightIQ
Tabla de contenido:
- Uso de Isilon InsightIQ
- Solución de problemas sin InsightIQ
- Rendimiento de la red
- Distribución de conexiones de clientes
- Rendimiento del clúster
- Procesamiento de clústeres
- Operaciones en cola
- CPU
Uso de Isilon InsightIQ
El uso de Isilon InsightIQ es la mejor manera de monitorear el rendimiento y solucionar problemas de rendimiento.
El dispositivo virtual Isilon InsightIQ le permite monitorear y analizar la actividad del clúster Isilon a través de vistas de gráficos flexibles y personalizables en la aplicación web InsightIQ. Estos gráficos proporcionan información detallada sobre el hardware, el software, y el sistema de archivos y las operaciones de protocolo del clúster. InsightIQ transforma los datos en información visual que enfatiza cualquier valor atípico de rendimiento, lo que permite diagnosticar rápidamente los cuellos de botella u optimizar los flujos de trabajo.
Para obtener detalles sobre el uso de InsightIQ, consulte PowerScale InsightIQ: centro de información.
Solución de problemas sin InsightIQ
Si no utiliza InsightIQ, puede ejecutar una variedad de comandos para investigar los problemas de rendimiento. Para solucionar los problemas de rendimiento, primero examine el rendimiento de la red y del clúster; luego, analice el procesamiento del clúster y, por último, revise las tasas de CPU de los nodos individuales.
Rendimiento de la red
Utilice una herramienta de prueba de red como Iperf o Iperf3 para determinar las funcionalidades de rendimiento del clúster y los equipos cliente de la red.
Usando IperfEjecute los siguientes comandos en el clúster y el cliente con lperf. Estos comandos definen un tamaño de ventana que es lo suficientemente grande como para revelar si el enlace de red es una posible causa de problemas de latencia.
- Clúster:
iperf -s -w 262144 - Cliente:
iperf -c <cluster IP> -w 262144
Use: Iperf3Ejecute los siguientes comandos en el clúster y el cliente con lperf. Estos comandos definen un tamaño de ventana que es lo suficientemente grande como para revelar si el enlace de red es una posible causa de problemas de latencia.
- Clúster:
iperf3 -s -w 262144 Cliente:iperf3 -c <cluster IP> -w 262144
Distribución de conexiones de clientes
Compruebe cuántos clientes NFS y SMB están conectados al clúster para asegurarse de que no favorezcan a un nodo.
- Abra una conexión SSH en cualquier nodo en el clúster e inicie sesión con la cuenta “raíz”.
rootAccount - Ejecute el comando
para comprobar los clientes NFS.isi statistics query current list --nodes=all --keys=node.clientstats.connected.nfs,node.clientstats.active.nfs -d
isi statistics query - nodes=all --stats=node.clientstats.connected.nfs,node.clientstats.active.nfs En el resultado, se muestra la cantidad de clientes conectados por nodo y cuántos de esos clientes están activos en cada nodo. - Ejecute el comando
isi statistics query - nodes=all --stats=node.clientstats.connected.nfs,node.clientstats.active.nfsisi statistics query current list --keys=node.clientstats.connected.smb,node.clientstats.active.smb1,node.clientstats.active.smb2 -n all -d
En el resultado, se muestra la cantidad de clientes conectados por nodo y cuántos de esos clientes están activos en cada nodo.
Rendimiento del clúster
Evalúe el rendimiento del clúster realizando algunas pruebas que miden cuánto tiempo se necesita para leer y escribir en un archivo. Realice al menos una prueba de escritura y una prueba de lectura, como se indica a continuación.
- Abra una conexión SSH en cualquier nodo en el clúster e inicie sesión con la cuenta “raíz”.
rootAccount - Cambie a la variable
/ifsdirectorio:cd /ifs - Desde la interfaz de línea de comandos (CLI) en el clúster, o bien desde una computadora cliente UNIX o Linux, utilice el comando
ddpara escribir un nuevo archivo en el clúster.
Ejecute el siguiente comando:dd if=/dev/zero of=1GBfile bs=1024k count=1024
Este comando crea un archivo de muestra de 1 GB e informa la cantidad de tiempo que tardó en escribirse en el disco. - A partir del resultado de este comando, extrapole cuántos MB por segundo se pueden escribir en el disco en flujos de trabajo de un solo flujo.
- Si tiene un cliente Mac y desea realizar un análisis más profundo:
- Abra Activity Monitor.
- Ejecute el comando
cat /dev/zero > /pathToFilecomando, dondepathToFilees la ruta de archivo del archivo de destino.
Este comando ayuda a medir el rendimiento de las operaciones de escritura en el clúster Isilon. (Aunque es posible ejecutar el comandodddesde un cliente Mac, los resultados pueden ser incoherentes). - Monitoree los resultados del comando en la pestaña Network de Activity Monitor.
Cuando mida el rendimiento de las operaciones de lectura, asegúrese de no realizar pruebas de lectura en el archivo que creó durante la prueba de escritura. Debido a que ese archivo se almacenó en caché, los resultados de las pruebas de lectura serían inexactos. En su lugar, pruebe una operación de lectura de un archivo que no se haya almacenado en caché. Busque un archivo en el clúster de más de 1 GB y haga referencia a ese archivo en la prueba de lectura.
- Abra una conexión SSH en cualquier nodo en el clúster e inicie sesión con la cuenta “raíz”.
rootAccount - Desde la CLI en el clúster, o bien desde una computadora cliente UNIX o Linux, utilice el comando
ddpara leer un archivo en el clúster.
Ejecute el comandodd if=/pathToLargeFile of=/dev/null bs=1024kcomando dondepathToFilees la ruta de archivo del archivo de destino.
Este comando lee el archivo de destino e informa la cantidad de tiempo que tardó en leerse. - Si tiene un cliente Mac y desea realizar un análisis más profundo:
- Abra Activity Monitor.
- Ejecute el comando
time cp /pathToLargeFile > /dev/nullcomando dondepathToFilees la ruta de archivo del archivo de destino.
Este comando ayuda a medir el rendimiento de las operaciones de lectura en el clúster Isilon. (Aunque es posible ejecutar el comandodddesde un cliente Mac, los resultados pueden ser incoherentes). - Monitoree los resultados del comando en la pestaña Network de Activity Monitor.
Procesamiento de clústeres
Antes de examinar las operaciones de entrada/salida (I/O) (IOPS) del clúster:
- Determine los trabajos que se ejecutan en el clúster. Si se están ejecutando trabajos de reseccionamiento, como AutoBalance, Collect o MultiScan, considere por qué se están ejecutando esos trabajos y si deben continuar ejecutándose.
- Estos trabajos pueden producir un evento de clúster: Evento 400100008: "Las operaciones de archivos tardaron más de lo esperado".
- Tenga en cuenta el tipo de datos que se consumen. Si las computadoras cliente funcionan con grandes archivos de video o máquinas virtuales (VM), el trabajo de reseccionamiento requiere una mayor cantidad de IOPS de disco de lo normal.
- Considere pausar temporalmente un trabajo de reseccionamiento. Hacerlo puede mejorar considerablemente el rendimiento y puede ser una solución viable a corto plazo para un problema de rendimiento.
Trabajo de SmartPools
El rendimiento de los clientes NFS y SMB puede degradarse mientras se ejecuta el trabajo:
- Determine la prioridad del trabajo de SmartPools
isi job status
-
- Reducir el impacto de la política
isi job types modify SmartPools --policy LOW
-
- Ajustar prioridad
isi job types modify SmartPools --priority 7
-
- Programar la política para horas de inactividad
isi job types modify SmartPools --policy OFF_HOURS
-
- Revise la configuración de niveles y mantenga la cantidad de niveles por debajo de 5
I/O de
discoEl análisis de I/O del disco puede ayudar a determinar si se están sobreutilizando ciertos discos.
Por clúster
- Abra una conexión SSH en cualquier nodo en el clúster e inicie sesión con la cuenta “raíz”.
- Ejecute el comando
para determinar las I/O del disco.isi statistics pstat En el resultado de este comando, divida la IOPS del disco por la cantidad total de discos en el clúster. Por ejemplo, para un clúster de 8 nodos que utiliza nodos Isilon IQ 12000x, los cuales alojan 12 unidades por nodo, divida la IOPS del disco por 96.
Para los nodos de la serie X y la serie NL, se espera ver IOPS de disco de 70 o menos para flujos de trabajo aleatorios en su totalidad o IOPS de disco de 140 o menos para flujos de trabajo completamente secuenciales. Debido a que los nodos de la serie NL tienen menos RAM y menor velocidad de CPU que los nodos de la serie X, estos últimos pueden manejar IOPS de disco más altas.
Por nodo y por disco
- Abra una conexión SSH en cualquier nodo en el clúster e inicie sesión con la cuenta “raíz”.
- Ejecute el comando
para determinar las IOPS del disco por nodo, lo que puede ayudar a descubrir discos que están sobreutilizados.isi statistics query current --nodes=all --stats=node.disk.xfers.rate.sum --format=top - Ejecute el comando
para determinar cómo consultar estadísticas por disco.isi_stats_tool -a get_key_info|grep node.disk.xfer
Operaciones en cola
Otra manera de determinar si se están sobreutilizando discos es determinar cuántas operaciones se ponen en cola para cada disco en el clúster. Para un flujo de trabajo basado en SMB de un solo flujo, una cola de 4 puede indicar un problema, mientras que para las operaciones de espacio de nombres NFS de alta simultaneidad, la cola puede ser mucho mayor.
- Abra una conexión SSH en cualquier nodo en el clúster e inicie sesión con la cuenta “raíz”.
rootAccount - Ejecute el comando
para determinar cuántas operaciones se ponen en cola para cada disco del clúster.isi statistics drive list --nodes=all --sort=queued -d - Determine cuánto tiempo estuvo la operación en la cola:
isi statistics drive list --nodes=all --sort=queued -d
CPU
Los problemas de CPU se rastrean con frecuencia a las operaciones que los clientes están realizando en el clúster. Mediante isi statistics puede determinar las operaciones que se están realizando en el clúster, catalogadas por protocolo de red o computadora cliente.
- Abra una conexión SSH en cualquier nodo en el clúster e inicie sesión con la cuenta “raíz”.
rootAccount - Ejecute el comando
Determine qué operaciones se realizan en toda la red y evalúe cuál de esas operaciones tarda más tiempo mediante el siguiente comando:isi statistics protocol list --long --totalby Op,proto -d --sort TimeAvg --format top
La salida de este comando proporciona estadísticas detalladas para todos los protocolos de red, organizadas por el tiempo que tarda el clúster en responder a los clientes. Aunque es posible que los resultados de este comando no identifiquen qué operación es la más lenta, pueden llevarlo en la dirección correcta. - Ejecute el comando
para obtener más información sobre el procesamiento de CPU, como qué CPU de nodos son las más utilizadas.isi statistics system --nodes all --format top - Ejecute el comando
Para obtener los cuatro procesos en cada nodo, que consumen la mayoría de los recursos de CPU, ejecute el siguiente comando:isi_for_array -sX 'top -u -n |grep PID -A4'
Additional Information
relacionadosEstos son recursos recomendados relacionados con este tema que pueden ser de interés: