我真的很难在Ubuntu服务器上处理这些结果。 当JBoss尝试创build/移动文件时,我的JBoss服务器遇到了一个主要问题,那就是FileNotFoundExceptions和"No space left on device"错误:
java.io.FileNotFoundException: /data/ftp/statistik/processed/chma10_20140528092555212.xml (No space left on device)
。 我想“也许我的磁盘空间不足”,并使用df命令来计算出我剩下多less:
root@ubuntu1:/# df -h Filsystem Storlek Anvnt Tillg Anv% Monterat på /dev/mapper/ubuntu1-root 36G 13G 21G 38% / none 2,0G 192K 2,0G 1% /dev none 2,0G 0 2,0G 0% /dev/shm none 2,0G 64K 2,0G 1% /var/run none 2,0G 0 2,0G 0% /var/lock /dev/sda1 228M 23M 193M 11% /boot /dev/mapper/vgdata-lvdata 79G 9,2G 66G 13% /data
正如你所看到的,我有足够的空间。 而且我也检查了我是否在i节点之外:
root@ubuntu1:/# df -i Filsystem Inoder IAnv IFria IAnv% Monterat på /dev/mapper/ubuntu1-root 2346512 61992 2284520 3% / none 505380 773 504607 1% /dev none 507383 1 507382 1% /dev/shm none 507383 30 507353 1% /var/run none 507383 2 507381 1% /var/lock /dev/sda1 124496 230 124266 1% /boot /dev/mapper/vgdata-lvdata 10486784 233945 10252839 3% /data
但后来我用du :
root@ubuntu1:/# du -s -h /* 7,5M /bin 23M /boot 19G /data 192K /dev 11G /eniro 5,3M /etc 112K /home 0 /initrd.img 183M /lib 0 /lib64 16K /lost+found 12K /media 4,0K /mnt 4,0K /opt du: kan inte komma åt "/proc/20452/task/20452/fd/3": Filen eller katalogen finns inte du: kan inte komma åt "/proc/20452/task/20452/fdinfo/3": Filen eller katalogen finns inte du: kan inte komma åt "/proc/20452/fd/3": Filen eller katalogen finns inte du: kan inte komma åt "/proc/20452/fdinfo/3": Filen eller katalogen finns inte 0 /proc 18M /root 8,2M /sbin 4,0K /selinux 8,0K /srv 0 /sys 40K /tmp 691M /usr 1,2G /var 0 /vmlinuz
请注意, /data和/eniro是30G的组合! 这怎么可能? 我是否有内存泄漏? 或者是别的什么?
—–编辑1 —–
好吧,我发现/data有它自己的mount,所以不可能把/data和/eniro结合起来,因为它们不在同一个mount上。 但是如何在第一个命令上说9,2G的时候说19G上的第三个目录/data呢?
—–编辑2 —–
@Pedro Sousa:
root@ubuntu1:# du -h --max-depth=1 / 0 /sys 192K /dev 4,0K /opt 40K /tmp 18M /root 8,2M /sbin du: kan inte komma åt "/proc/24487/task/24487/fd/3": Filen eller katalogen finns inte du: kan inte komma åt "/proc/24487/task/24487/fdinfo/3": Filen eller katalogen finns inte du: kan inte komma åt "/proc/24487/fd/3": Filen eller katalogen finns inte du: kan inte komma åt "/proc/24487/fdinfo/3": Filen eller katalogen finns inte 0 /proc 19G /data 183M /lib 11G /eniro 12K /media 112K /home 1,2G /var 16K /lost+found 23M /boot 4,0K /mnt 4,0K /selinux 691M /usr 7,5M /bin 8,0K /srv 5,3M /etc 31G / root@ubuntu1:# sudo cat /etc/mtab /dev/mapper/EnirostatTest1-root / ext4 rw,errors=remount-ro 0 0 proc /proc proc rw,noexec,nosuid,nodev 0 0 none /sys sysfs rw,noexec,nosuid,nodev 0 0 fusectl /sys/fs/fuse/connections fusectl rw 0 0 none /sys/kernel/debug debugfs rw 0 0 none /sys/kernel/security securityfs rw 0 0 none /dev devtmpfs rw,mode=0755 0 0 none /dev/pts devpts rw,noexec,nosuid,gid=5,mode=0620 0 0 none /dev/shm tmpfs rw,nosuid,nodev 0 0 none /var/run tmpfs rw,nosuid,mode=0755 0 0 none /var/lock tmpfs rw,noexec,nosuid,nodev 0 0 /dev/sda1 /boot ext2 rw 0 0 /dev/mapper/vgdata-lvdata /data ext4 rw,errors=remount-ro 0 0 /data/ftp/recordings /data/export/recordings none rw,bind 0 0 rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0 nfsd /proc/fs/nfsd nfsd rw 0 0 root@ubuntu1:# sudo fdisk -l Disk /dev/sda: 42,9 GB, 42949672960 byte 255 huvuden, 63 sektorer/spår, 5221 cylindrar Enheter = cylindrar av 16065 · 512 = 8225280 byte Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Diskidentifierare: 0x0008762a Enhet Start Början Slut Block Id System /dev/sda1 * 1 32 248832 83 Linux Partition 1 slutar inte på cylindergräns. /dev/sda2 32 5222 41691137 5 Utökad /dev/sda5 32 5222 41691136 8e Linux LVM Disk /dev/sdb: 107,4 GB, 107374182400 byte 255 huvuden, 63 sektorer/spår, 13054 cylindrar Enheter = cylindrar av 16065 · 512 = 8225280 byte Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Diskidentifierare: 0x58aa8283 Enhet Start Början Slut Block Id System /dev/sdb1 1 13054 104856223+ 83 Linux Disk /dev/dm-0: 85,9 GB, 85903540224 byte 255 huvuden, 63 sektorer/spår, 10443 cylindrar Enheter = cylindrar av 16065 · 512 = 8225280 byte Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Diskidentifierare: 0x00000000 Disk /dev/dm-0 innehåller inte en giltig partitionstabell Disk /dev/dm-1: 38,4 GB, 38394658816 byte 255 huvuden, 63 sektorer/spår, 4667 cylindrar Enheter = cylindrar av 16065 · 512 = 8225280 byte Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Diskidentifierare: 0x00000000 Disk /dev/dm-1 innehåller inte en giltig partitionstabell Disk /dev/dm-2: 4294 MB, 4294967296 byte 255 huvuden, 63 sektorer/spår, 522 cylindrar Enheter = cylindrar av 16065 · 512 = 8225280 byte Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Diskidentifierare: 0x00000000 Disk /dev/dm-2 innehåller inte en giltig partitionstabell root@ubuntu1:# ls -alh /data totalt 30K drwxr-xr-x 6 root root 1,0K 2013-10-01 08:17 . drwxr-xr-x 23 root root 4,0K 2014-06-05 10:36 .. drwxr-xr-x 2 stat stat 11K 2014-06-04 23:00 eniro_ftp drwxrwxrwx 3 root root 1,0K 2013-05-13 14:21 export drwxrwxrwx 5 root root 1,0K 2013-10-01 08:07 ftp drwx------ 2 root root 12K 2013-05-11 16:30 lost+found
当我执行dmesg时,我注意到一个错误:
EXT4-fs warning (device dm-0): ext4_dx_add_entry:1535: Directory index full!
它表明JBoss正试图移动/创build文件的目录有一个不再可编辑的索引。 出于好奇,我执行了ls -l /data/ftp/statistik/processed/ | wc -l ls -l /data/ftp/statistik/processed/ | wc -l在我认为应该只包含193074文件组成的193074文件的目录中。 我把他们的一半移到另一个文件夹,错误不再出现。 所以得出的结论是,我在一个目录中有太多的文件,导致它的索引是不可编辑的