13

I have a Raspberry Pi running Raspbian Wheezy headlessly with all graphics-related software uninstalled.

I have bitcoind running, which is mostly consuming most of the resources. Usually, when I check the processes via top, I can see that only bitcoind uses a significant amount of resources, with sshd and top on second and third place or so.

For some reason, currently, a new process starts peaking in resource usage, called mmcqd/0. It often uses up to 55% of CPU power in peaks and stays at a constant of around 5% otherwise.

What does this process do?

I have read that this may be caused by a slow SD card, but I tested my read/write speeds and got >15MB/s for both (I got a 32GB class 10 SD card).

  • totally off topic, running bitcoin mining on the raspberry would never even cover your time spent installing it. – lenik May 14 '13 at 16:03
  • The fact that I run bitcoind on it is just context to indicate that it does I/O tasks. Besides, I do not use it for mining. The only reason this question could be off-topic would be because mmcqd is not a Pi-specific process, but exists for Linux in general. – Steven Roose May 14 '13 at 16:18
  • 3
    my comment was off topic, not your question. – lenik May 14 '13 at 16:28
  • just tested - the problem is bitcoind eats all RAM and then starts swapping. Another 1GB RAM needed for RaspberryPI :-/ – user9001 Aug 13 '13 at 16:23
10

mmcqd is a kernel thread, responsible for managing queued I/O operations on the SD card. A high CPU usage from that process indicates that you have a disk I/O bottleneck.

The actual sequential read/write speed are not always meaningful for SD cards, random access is more typical for an Operating System. If you know that bitcoind is frequently writing non-critical data to disk, consider using tmpfs for storage of data. Then, using a cron job, you can periodically synchronize the data in tmpfs to disk.

You can also experiment with using a USB HDD, that should perform better with (random) write access.

  • What's the point of using tmpfs on the SD card instead of accessing the SD card directly? – Steven Roose May 13 '13 at 18:06
  • 2
    tmpfs resides in the RAM. If one process is constantly changing tiny parts of a file, it may be worthwhile to save these changes periodically. Basically you are trading data safety for performance. – Lekensteyn May 13 '13 at 19:45
0

I have had the same problem on an embedded Linux system, so not exactly a Raspberry Pi but not too far off.

In my case the problem was simply that the disk was full and there was a process trying to write logs. I believe the repeated writing failures were causing mmcqd to retry several times and maybe to keep a thread in wait.

After removing some log files everything was fine.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.