PowerScale: Tiempos de espera agotados de JWT y PAPI en PowerScale OneFS 9.5 y superior

Resumen: Es posible que se produzcan tiempos de espera agotados de JWT y PAPI con altos volúmenes de acciones web, API, PAPI y JWT en PowerScale OneFS 9.5 y superior. Esto puede presentarse como extracción de núcleos del proceso JWT. ...

Este artículo se aplica a Este artículo no se aplica a Este artículo no está vinculado a ningún producto específico. No se identifican todas las versiones del producto en este artículo.

Síntomas

Esto se aplica a OneFS 9.5 y versiones posteriores para los impactos; sin embargo, algunas versiones aún más antiguas de OneFS a veces pueden ver estas condiciones.
 Algunos de los comandos de este artículo de la base de conocimientos no funcionarán en versiones de OneFS anteriores a 9.6 (no 9.5) y es probable que no se transfieran a versiones anteriores. Considere la posibilidad de actualizar a niveles de código de destino modernos.



A medida que OneFS evoluciona, los sistemas de API subyacentes se actualizan de forma rutinaria. A partir de la versión 9.5, ciertos flujos de trabajo y casos de uso con altos niveles de sesiones de autenticación API/web frecuentes o simultáneas pueden ver tasas más altas de tiempos de espera de conexión, PAPI, API y similares que pueden superponerse con la extracción de núcleos de procesos relacionados con JWT. JWT es uno de los sistemas involucrados en la gestión de tokens CSRF para la autenticación API según lo requiere nuestro modelo de seguridad moderno.

Los núcleos, si están presentes, tienen el siguiente aspecto:

Powerscale-OneFS-27# isi_for_array -s ls -lah /var/crash/ | grep -i jwt
Powerscale-OneFS-12: -rw-rw----   1 root  daemon     167M Jul 14 23:39 jwt.core.gz
Powerscale-OneFS-13: -rw-rw----   1 root  daemon     214M Jul 15 12:19 jwt.core.gz
Powerscale-OneFS-17: -rw-rw----   1 root  daemon     181M Jul 15 14:03 jwt.core.gz
Powerscale-OneFS-21: -rw-rw----   1 root  daemon     172M Jul 24 14:20 jwt.core.gz
Powerscale-OneFS-22: -rw-rw----   1 root  daemon      37M Jul 24 14:23 jwt.core.gz
Powerscale-OneFS-27: -rw-rw----   1 root  daemon     165M Jul 24 10:08 jwt.core.gz
Powerscale-OneFS-28: -rw-rw----   1 root  daemon     181M Jul 24 13:35 jwt.core.gz
Powerscale-OneFS-29: -rw-rw----   1 root  daemon     181M Jul 24 13:10 jwt.core.gz
Lo que puede incluir errores de registro similares como este:
$ cat Powerscale-OneFS-*/varlog.tar/log/jwt.log | grep 2024-07 | less

2024-07-15T13:00:22.459910-05:00 <30.5> Powerscale-OneFS-66(id71) jwt[83869]: Logging started
2024-07-15T13:25:54.388061-05:00 <30.3> Powerscale-OneFS-66(id71) jwt[83869]: [jwt] Failed to update active session user index. errno: 12 - Cannot allocate memory
2024-07-15T13:25:54.495084-05:00 <30.3> Powerscale-OneFS-66(id71) jwt[83869]: [jwt] Failed to add session: 0801b74c-1abf-4b23-89a0-1e9daf429559 to active session user index identity: SID:S-1-22-1-0, zone: 1. STATUS_INVALID_PARAMETER (0xC000000D)
2024-07-15T14:05:56.869968-05:00 <30.3> Powerscale-OneFS-66(id71) jwt[83869]: [jwt] Failed to update active session user index. errno: 12 - Cannot allocate memory
2024-07-15T14:05:57.115920-05:00 <30.3> Powerscale-OneFS-66(id71) jwt[83869]: [jwt] Failed to add session: 08c173f1-60de-472d-a89d-1d6af2462a28 to active session user index identity: SID:S-1-22-1-0, zone: 1. STATUS_INVALID_PARAMETER (0xC000000D)

2024-07-15T14:28:28.441603-05:00 <30.5> Powerscale-OneFS-66(id71) jwt[2077]: Logging started
2024-07-15T14:52:08.794040-05:00 <30.3> Powerscale-OneFS-66(id71) jwt[2077]: [jwt] Failed to update active session user index. errno: 12 - Cannot allocate memory
2024-07-15T14:52:09.043575-05:00 <30.3> Powerscale-OneFS-66 syslogd: last message repeated 1 times
2024-07-15T14:52:09.070500-05:00 <30.3> Powerscale-OneFS-66(id71) jwt[2077]: [jwt] Failed to add session: a1164a8f-cd68-45bf-bc07-5d7beefe7ba3 to active session user index identity: SID:S-1-22-1-0, zone: 1. STATUS_INVALID_PARAMETER (0xC000000D)
Sin embargo, es posible que el problema no se limite a los núcleos JWT. Los problemas pueden estar presentes en 9.5 o versiones anteriores, pero las soluciones alternativas y las correcciones están disponibles en 9.6 OneFS y versiones posteriores.
Las soluciones alternativas de este artículo de la base de conocimientos en OneFS 9.6 y superior pueden proporcionar alivio a los problemas relacionados con el tiempo de espera agotado relacionado con la API de OneFS.

Causa

Esto se debe a los cambios en nuestros modelos de API, ya que refinamos rutinariamente nuestros sistemas en cuanto a seguridad y rendimiento, combinados con flujos de trabajo de otros fabricantes que pueden usar más el acceso de tipo API. Es posible que se requiera una mayor sobrecarga para estos procesos y sistemas en OneFS.

Resolución

Estas soluciones alternativas solo se aplican a OneFS 9.6 y versiones posteriores.
 

En versiones inferiores que no hayan llegado al final del ciclo de vida, comuníquese directamente con el soporte. Es posible que haya opciones para seguir, pero debe actualizar OneFS o trabajar con la API o el proveedor externo para distribuir de manera más eficiente su carga de trabajo basada en API en más nodos y durante más tiempo.


Direccionamiento de los límites de vMemory para JWT:

El vmlimit actual para el proceso JWT es de 1 GB. Podemos configurarlo en 2 GB y comprobar si ayuda. Visualización del límite de 1 GB para JWT:

9610-1# limits -P $(pgrep jwt)  -B
Resource limits (current):
  cputime              infinity secs
  filesize             infinity kB
  datasize             33554432 kB
  stacksize              524288 kB
  coredumpsize         infinity kB
  memoryuse            infinity kB
  memorylocked           131072 kB
  maxprocesses             7390
  openfiles               16384
  sbsize               infinity bytes
  vmemoryuse            1048576 kB  <----
  pseudo-terminals     infinity
  swapuse              infinity kB
  kqueues              infinity
  umtxp                infinity

  

Para configurarlo en 2 GB en su lugar:
 

# isi_for_array -s 'limits -P $(pgrep jwt)  -v 2g'

 

Para confirmar el nuevo límite:


  
# isi_for_array -s  'limits -P $(pgrep jwt) -B' | grep vmemoryuse
9610-1:   vmemoryuse            2097152 kB
9610-2:   vmemoryuse            2097152 kB
9610-3:   vmemoryuse            2097152 kB
9610-4:   vmemoryuse            2097152 kB
9610-5:   vmemoryuse            2097152 kB
9610-6:   vmemoryuse            2097152 kB



Puede agregarlo a cron para que sea permanente si esos resultados son satisfactorios utilizando la información en Isilon Cómo editar crontab

Para cronificar esto, querrá configurar este comando para que se ejecute en un intervalo razonable a fin de tener en cuenta que se restablecerá después de cualquier posible reinicio del clúster o nodo, como un cron para ejecutar cada pocas horas:

isi_for_array -s 'limits -P $(pgrep jwt) -v 2g'

 

Comuníquese con el equipo de ingeniería de sistemas de Dell si tiene preguntas sobre la implementación de cron. Si posteriormente tiene dificultades técnicas con eso, comuníquese con el soporte técnico.



Abordar los límites simultáneos de PAPI:

Otro factor que puede afectar sus operaciones es la cantidad de sesiones simultáneas permitidas de PAPI/API. Algunos proveedores externos modernos pueden enviar una verdadera avalancha de actividad hacia la plataforma de almacenamiento para las solicitudes de API, lo que, combinado con nuestras propias operaciones internas que utilizan API, a veces puede hacer que se supere la cantidad máxima de sesiones. El límite máximo predeterminado es 80 con un mínimo mínimo de 40:

 
9610-1# isi_gconfig -t papi | grep -i child
proc.auto_configure_child_limit (bool) = true
proc.child_limit (int) = 80
proc.child_limit_ceiling (int) = 80
proc.child_limit_floor (int) = 40
proc.child_limit_extension (int) = 0


El límite y el techo se pueden aumentar de la siguiente manera para las pruebas/corrección:

 
9610-1# isi_gconfig -t papi proc.child_limit=100; isi_gconfig -t papi proc.child_limit_ceiling=100

9610-1# isi_gconfig -t papi | grep child
proc.auto_configure_child_limit (bool) = true
proc.child_limit (int) = 100
proc.child_limit_ceiling (int) = 100
proc.child_limit_floor (int) = 40
proc.child_limit_extension (int) = 0



Tenga en cuenta que los gconfigs anteriores son una configuración global para todos los nodos; No hay opción local.

Si aumenta esto, puede haber impactos inesperados, como un mayor costo para los sistemas relacionados o impactos teóricos en el rendimiento exclusivos de un entorno determinado, ya que es probable que no haya dos clústeres de almacenamiento que tengan perfiles de rendimiento idénticos. Tales consideraciones son normalmente imposibles de pronosticar con anticipación y solo de manera reactiva.

Comuníquese con su SE o soporte si tiene preguntas sobre esto.

 

Propiedades del artículo
Número del artículo: 000227647
Tipo de artículo: Solution
Última modificación: 18 mar 2026
Versión:  4
Encuentre respuestas a sus preguntas de otros usuarios de Dell
Servicios de soporte
Compruebe si el dispositivo está cubierto por los servicios de soporte.