On Friday 06 December 2013 01:27:09 Dominic Raferd wrote: > I am responsible for a PBX system which uses embedded uClinux on 256MB > internal memory disk, this uses YAFFS2 filesystem and it is rapidly running > out of memory. df used space is 240MB (96% of total) and du used space is > 76MB. Once df gets to 100% used I guess the whole system will fail and be > irrecoverable. I don't understand much about YAFFS but here is some info: > > root@G-124:~# cat /proc/yaffs > YAFFS built:Apr 22 2010 11:02:12 > $Id: yaffs_fs.c,v 1.89 2009-11-29 21:50:10 charles Exp $ > $Id: yaffs_guts.c,v 1.98 2009-12-07 01:17:33 charles Exp $ > > > Device 0 "file system" > startBlock......... 0 > endBlock........... 1951 > totalBytesPerChunk. 2048 > nDataBytesPerChunk. 2048 > chunkGroupBits..... 0 > chunkGroupSize..... 1 > nErasedBlocks...... 63 > nReservedBlocks.... 5 > blocksInCheckpoint. 0 > nTnodesCreated..... 97500 > nFreeTnodes........ 41 > nObjectsCreated.... 96700 > nFreeObjects....... 92 > nFreeChunks........ 8822 > nPageWrites........ 8033 > nPageReads......... 89169 > nBlockErasures..... 180 > nGCCopies.......... 4471 > garbageCollections. 72 > passiveGCs......... 0 > nRetriedWrites..... 0 > nShortOpCaches..... 10 > nRetireBlocks...... 0 > eccFixed........... 0 > eccUnfixed......... 0 > tagsEccFixed....... 0 > tagsEccUnfixed..... 0 > cacheHits.......... 20 > nDeletedFiles...... 0 > nUnlinkedFiles..... 56 > nBackgroudDeletions 0 > useNANDECC......... 1 > noTagsECC.......... 0 > isYaffs2........... 1 > inbandTags......... 0 > emptyLostAndFound.. 0 > disableLazyLoad.... 0 > > (The mounting memory loss may be related to frequent power cuts. Is there > anything that can be done to recover the lost memory (currently 164MB) > before the system fails entirely? > > I would be very grateful for some urgent help/input, and can pay something > for a positive resolution. (The PBX box also has an attached USB drive > (8GB) but although this is working fine I don't believe the system can boot > from here, and it has no local interface, only via ethernet.) Hello Dominic If you have a wide disparity between du and df this typically means that you have lots of small files. du just adds up file contents and such to estimate space used with no knowledge of file system layout. It makes various guesses. df asks the file system what space is in use so that is a more accurate value. If you store a 1-byte file in Yaffs you will end up with: 1x object header chunk + 1x data chunk = 2 chunks = 4k on your system. However that overhead is fixed, so if you have a 1MB file, it just takes up 1MB + 1x object header chunk = 1MB + 2048 bytes. So... what are you storing that you can get rid of?