Análisis del rendimiento del servidor Linux NFS

Análisis del rendimiento del servidor Linux NFS

Me gustaría hacer un análisis de nuestro servidor NFS para ayudar a localizar posibles cuellos de botella en nuestras aplicaciones. El servidor ejecuta SUSE Enterprise Linux 10.

El tipo de cosas que estoy buscando saber son:

  • A qué archivos acceden qué clientes
  • Rendimiento de lectura/escritura por cliente
  • Gastos generales impuestos por otras llamadas RPC
  • Tiempo dedicado a esperar otras solicitudes de NFS, o E/S de disco, para atender a un cliente

Ya conozco las estadísticas disponibles en /proc/net/rpc/nfsdy de hecho escribí unentrada en el blogdescribiéndolos en profundidad. Lo que estoy buscando es una manera de profundizar y ayudar a comprender qué factores contribuyen al desempeño visto por un cliente en particular. Quiero analizar el papel que desempeña el servidor NFS en el rendimiento de una aplicación en nuestro clúster para poder pensar en formas de optimizarlo mejor.

Respuesta1

Sólo una idea: intente detectar el tráfico de nfs con Wirehark. Podría indicarle qué usuario accedió a qué archivo:

tshark -R nfs -i eth0

Respuesta2

Tengo que decir que de todas las diferentes utilidades *stat disponibles para uno, ¡nfsstat es, con diferencia, la peor! Te da la posibilidad de mirar un montón de contadores, pero eso es todo. Si los miras dos veces, TÚ tienes que hacer el trabajo de intentar calcular cuánto cambió cada contador y si quieres saber la tasa de cambio, entonces debes dividir por la cantidad de segundos entre muestras. Para ser justos, nfsstat se remonta a muchos años atrás, cuando las cosas todavía eran bastante toscas y ahora se ve obstaculizado porque nadie quiere cambiar el formato de salida porque probablemente rompería muchas cosas.

En cuanto al uso de Collectl para monitorear nfs, proporciona resultados de nfsstat en un formato mucho más fácil de leer, pero lo que es aún mejor: puede dejarlo funcionar durante horas o días y reproducir los datos que recopiló en segundo plano. En cuanto a la solicitud para ver qué procesos están haciendo, Collectl también puede recopilar datos del proceso, incluida la cantidad de E/S que realiza cada proceso, e incluso reproducirlos mostrando los principales usuarios de E/S. También puede utilizar la función superior en tiempo real.

Si desea ver los temas de los discos recopilados, también puede hacerlo y mostrar todo en una visualización coordinada.

Compruébalo... -marca

Respuesta3

recoger(especialmente susubsistema NFS) es una utilidad muy buena que podría ser útil para su análisis, pero nonocoincide con su lista de requisitos. No conozco ninguna utilidad de Linux que lo haga.

(Permítanme agregar esta nota fuera de tema: hayessoftware que se adapta a sus necesidades: basado en DTrace de SunAnálisis (pdf)- pero lamentablemente no está disponible en Linux. Encontrarás muchos buenos ejemplos enEl blog de Brendan Gregg.que ilustran las capacidades de esta herramienta.)

Respuesta4

En mi opinión, esto resalta exactamente el problema de las herramientas actuales. Aquí mencionamos al menos 3, incluidos nfsstat, iostat e iotop. Luego hubo una mención pasajera de wireshare y nfsreplay. ¿Esto realmente suena como una forma normal de hacer las cosas? Además de Wireshark, que es una categoría propia, ¿no preferirías 1 herramienta?

Para empezar, si bien encuentro muy útil la salida de iostat, es demasiado difícil de leer con todos esos .00 en los números. Collectl informa exactamente los mismos datos pero con un formato mucho más agradable a la vista. Ya sabes lo que pienso de nfsstat y dado que Collectl puede reproducir cualquier dato, no hay necesidad de una utilidad de "reproducción". En cuanto a 'iotop', recopilar también puede mostrar procesos ordenados por cualquier E/S incluida.

Ahí lo tienes todo también, completo con marcas de tiempo. Si necesita un intervalo de monitoreo más preciso, siempre puede reducir el muestreo a 0,1 o 0,5 segundos o algo intermedio, aunque generará más gastos generales si monitorea los procesos tan rápido, pero lo haría con cualquier utilidad de monitoreo de procesos.

Y la ventaja final es que todo lo que recopile con Collectl se puede cargar en una hoja de cálculo y trazar fácilmente O usar colplot, que forma parte de Collectl-Utils.

-marca

información relacionada