Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am running an embedded Linux on arm with a SD-Card. While writing huge amounts of data I see bizarre effects. E.g, when I dd a 15 MB file few times, it writes the file (normally) in less than 2 Secs. But After lets say 3-4 times it takes sometimes 15 to 30 Seconds to write the same file. If I sync after writing the file, then this does not happen but sync takes long time too. If there is enough gap between writing two files than presumably kernel syncs itself. How can I optimize the whole performance so that write should always finish inside 2 Seconds. The File system I am using is ext3. Any pointers?

share|improve this question
Is using another filesystem (ext2) an option? – Bobby Oct 23 '12 at 12:46
yes I can try that. Do you think it can improve performance because its not a JFS? – user1566277 Oct 23 '12 at 13:13
changed to ext2. It's the same. – user1566277 Oct 23 '12 at 13:34
In that case I'd guess that it is due to a cache. Your data is not really writting onto the card but is instead cached somewhere and then get's asynchronously written to the card. You could try to mount it via mount -o sync CARD MOUNTPOINT. – Bobby Oct 23 '12 at 13:46
Well, then it is the cache which makes it appear faster the first few times. Get a faster SD-Card reader then would be the only answer. – Bobby Oct 23 '12 at 14:05

You must log in to answer this question.

Browse other questions tagged .