Tengo un cuadro de Solaris 8 que informa que un sistema de archivos está lleno:
db% tail -2 /var/adm/messages
Nov 22 08:32:27 db ufs: [ID 845546 kern.notice] NOTICE: alloc: /u03: file system full
Nov 22 08:34:51 db last message repeated 12 times
Pero df dice que no se han quedado sin bloques libres, y tampoco se han quedado sin inodos libres:
db% df -k /u03
Filesystem kbytes used avail capacity Mounted on
/dev/md/dsk/d6 282330903 254957403 24550191 92% /u03
db% df -o i /u03
Filesystem iused ifree %iused Mounted on
/dev/md/dsk/d6 29663278 4230866 88% /u03
Entonces pensé que tal vez algún proceso mantiene los descriptores de archivos abiertos en más de 20 GB de archivos eliminados. Pero lsof, al ordenar por tamaño, no informa nada de más de 2 GB, y ese es un archivo legítimo:
db% lsof /u03 | sort -n +6
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
[...]
oracle 1257 oracle 278u VREG 85,6 2097160192 9685782 /u03/oradata/(redacted)/data/foo_tab_14.dbf
db%
Agradecería cualquier sugerencia sobre cualquier otro recurso, excepto bloques e inodos libres cuyo agotamiento pueda llenar un sistema de archivos, o alguna otra forma de "ocultar" bloques/inodos usados, o cualquier otra idea que alguien tenga. Reiniciar este cuadro o cerrar Oracle no es una opción de investigación válida.
Editar: Khaled, no pude en ese momento. No puedo publicar el resultado porque uno de los administradores de bases de datos ha liberado aproximadamente 4 GB, lo que significa que la máquina puede seguir funcionando, y si lo "lleno" nuevamente como prueba, todo se romperá. Pero esta es la segunda vez en 24 horas que llega aproximadamente al 92% de su capacidad y "lleno" (es decir, no se pueden crear archivos nuevos y /var/adm/messages
reporta "sistema de archivos lleno"), y sí, cuando sucede definitivamente interrumpe la creación o extensión de archivos en ese FS.
Respuesta1
Comprueba el nbfree
valor con
fstyp -v | head -18
Si eso dice algún valor bajo,esta publicación de blog que encontrépodría ayudarte. Cito el comienzo del post:
En el trabajo tenemos un Solaris 8 con un UFS que le dijo a la aplicación que no puede crear archivos nuevos. El comando df mostró muchos inodos libres y también había suficiente espacio libre en el FS. La razón por la que la aplicación recibió el error fue que, aunque todavía había muchos fragmentos libres, ya no había ningún bloque libre disponible. No puedes crear un archivo nuevo sólo con fragmentos, necesitas tener al menos un bloque libre para cada archivo nuevo.
Para ver el número de bloques libres de una UFS puedes llamar a “fstyp -v | diríjase -18 ″ y observe el valor detrás de “nbfree”.