Tengo un problema con el almacenamiento en memoria caché de los atributos NFS del lado del cliente. Estoy usando algunos servidores, uno es un servidor NFS y los otros son servidores cliente NFS.comando de limpieza de caché NFS?
Todos los servidores son Debian (lenny, 2.6.26-2-amd64 de Linux) y las versiones son las siguientes.
% dpkg -l | grep nfs
ii libnfsidmap2 0.20-1 An nfs idmapping library
ii nfs-common 1:1.1.2-6lenny1 NFS support files common to client and server
ii nfs-kernel-server 1:1.1.2-6lenny1 support for NFS kernel server
En el servidor NFS,/etc/exports se escribe de la siguiente manera:
/export-path 192.168.0.0/255.255.255.0(async,rw,no_subtree_check)
En los clientes NFS,/etc/fstab se escribe de la siguiente manera:
server:/export-path /mountpoint nfs rw,hard,intr,rsize=8192,async 0 0
Como Como puede ver, la opción "asincrónica" se usa para el rendimiento de acceso de múltiples clientes. Sin embargo, a veces esto puede causar errores de almacenamiento en caché falso.
Dado que mantengo muchos servidores (y no tengo un permiso tan fuerte para cambiar las opciones de montaje), no quiero modificar/etc/exports ni/etc/fstab. Creo que es suficiente si tengo una herramienta de línea de comandos que "limpia" el caché de atributos del lado del cliente NFS con un permiso de usuario.
Por favor, hágamelo saber si hay tales órdenes.
Gracias,
(en anexo)
quiero decir con "errores falsos de almacenamiento en caché",
% ls -l /data/1/kabe/foo
ls: cannot access /data/1/kabe/foo: No such file or directory
% ssh another-server 'touch /data/1/kabe/foo'
% ls -l /data/1/kabe/foo
ls: cannot access /data/1/kabe/foo: No such file or directory
A veces estos casos ocurren. El problema no es un contenido de archivo sino atributos de archivo (= información de dentries) ya que NFS dice que garantiza la coherencia de Close-to-Open.
Encontré esta pregunta mientras investigaba posibles soluciones a este problema (+1 para eso). Preferiría no tener memoria caché local o un tiempo de caducidad muy corto de la caché local si NFS no puede proporcionar coherencia en caso contrario. Gigabit LAN no debería ser un gran obstáculo, así que no espero demasiada pérdida de rendimiento al hacerlo. Una solución ideal sería que el servidor supervise los cambios en el sistema de archivos y notifique a los clientes cuándo deben calarse sus cachés, pero no creo que NFS admita esto. – Tronic
Dado que el ancho de banda no es significativo aquí, sino * latencia *, la LAN Gigabit todavía tiene algún impacto en el rendimiento. FWIW, 'lookupcache = none' elevó el tiempo para' git clone' de 2.7 a 20 segundos para mí. –