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).

Steven Roose
  • 233
  • 1
  • 2
  • 6
  • 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 :-/ –  Aug 13 '13 at 16:23

2 Answers2

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.

Lekensteyn
  • 1,501
  • 1
  • 15
  • 24
  • 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.

RPiAwesomeness
  • 3,001
  • 4
  • 30
  • 51
Marco
  • 101