Eu tenho uma caixa do Solaris 8 que informa que um sistema de arquivos está cheio:
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
Mas df diz que não está sem blocos livres, e também não está sem inodes livres:
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
Então pensei que talvez algum processo estivesse mantendo descritores de arquivos abertos em mais de 20 GB de arquivos excluídos. Mas lsof, classificando por tamanho, não informa nada acima de 2 GB, e esse é um arquivo 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%
Eu apreciaria qualquer indicação para qualquer outro recurso, exceto blocos e inodes livres cujo esgotamento possa preencher um sistema de arquivos, ou alguma outra maneira de "ocultar" blocos/inodes usados, ou qualquer outra idéia que alguém tenha. Reiniciar esta caixa ou desligar o Oracle não é uma opção de investigação válida.
Editar: Khaled, eu não pude naquele momento. Não posso postar a saída, porque um dos DBAs liberou cerca de 4 GB, o que significa que a máquina pode continuar funcionando, e se eu "preenchê-la" novamente como teste, as coisas vão quebrar. Mas esta é a segunda vez em 24 horas que chega a cerca de 92% cheio e "preenchido" (como em, novos arquivos não podem ser criados e /var/adm/messages
relata "sistema de arquivos cheio"), e sim, quando isso acontece, definitivamente interrompe a criação ou extensão de arquivos nesse FS.
Responder1
Confira o nbfree
valor com
fstyp -v | head -18
Se isso diz algum valor baixo,esta postagem do blog que encontreipode ajudá-lo. Cito o início do post:
No trabalho temos um Solaris 8 com UFS que informa ao aplicativo que não é possível criar novos arquivos. O comando df mostrou muitos inodes livres e também havia espaço livre suficiente no FS. A razão pela qual o aplicativo recebeu o erro foi que, embora ainda houvesse muitos fragmentos livres, nenhum bloco livre estava mais disponível. Você não pode criar um novo arquivo apenas com fragmentos, é necessário ter pelo menos um bloco livre para cada novo arquivo.
Para ver o número de blocos livres de um UFS você pode chamar “fstyp -v | head -18″ e observe o valor atrás de “nbfree”.