Read the statement by Michael Teeuw here.
Electron CPU usage
-
Cause i didn’t want to run 2.1.0 and also got many errors every time i looked in the logs, i decided to do a fresh install and try again.
So i just installed a fresh Raspbian stretch lite and followed this guide: https://github.com/MichMich/MagicMirror/wiki/Jessie-Lite-Installation-Guide
after the first start i got 80-85% cpu usage just playing the default modules.
so i went into my MagicMirror folder and just typed “npm install electron@1.4.15”.
It said that the version seems to be invalid, but after a reboot i tooled a look in the
“/home/pi/MagicMirror/node_modules/electron/dist/version”
and saw a 1.4.15 shown.thats all.
so in my experience its just the electron version needed to downgrade. Neither the OS nor the MagicMirror Version needs to be downgraded.
Loaded up a video: https://youtu.be/ak_mEMuLpYc
shows “nmon-stats” while adding Traffic- and News-Module via Remote Control
Still shows peaks when animation comes, but its fluety anyway -
I have been having the issue, thanks so much for all the detailed information! I am going to do a fresh install with Jessy and downgrade Electron and MM2.
-
First off, apologies for the necro! But I had to reinstall MM this weekend and came across this same issue. After a fair bit of time reinstalling/googling, I managed to resolve it by adding the following to /etc/environment
ELECTRON_FORCE_WINDOW_MENU_BAR=1
So thought I’d post it here in case anyone else experiences this.
I’ve had the default install running for a while since adding the fix and my load avg has dropped from 6+ to “0.00, 0.02, 0.02” and electron seems to peak at around 7% every ~30s for about 2s. The rest of the time it isn’t even visible in top’s list.credit to reddit: https://www.reddit.com/r/kde/comments/5x9t7j/electron_app_high_cpu_usage/
Edit: After adding my usual modules, electron’s CPU usage has gone up to a fairly constant ~9% across 3 processes.top - 00:04:33 up 25 min, 3 users, load average: 0.06, 0.13, 0.13 Tasks: 156 total, 2 running, 154 sleeping, 0 stopped, 0 zombie %Cpu(s): 2.0 us, 0.4 sy, 0.0 ni, 97.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 947732 total, 486072 used, 461660 free, 26476 buffers KiB Swap: 102396 total, 0 used, 102396 free. 240288 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1387 pi 20 0 300260 98384 55840 S 4.9 10.4 0:45.48 electron 1394 pi 20 0 286500 68700 49420 S 2.0 7.2 0:23.08 electron 1358 pi 20 0 436408 78528 57656 S 1.0 8.3 0:19.25 electron
Edit2: Left it running over night, and it’s stable:
top - 07:51:22 up 8:12, 3 users, load average: 0.24, 0.23, 0.17 Tasks: 153 total, 1 running, 152 sleeping, 0 stopped, 0 zombie %Cpu(s): 2.1 us, 0.3 sy, 0.0 ni, 97.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 947732 total, 543280 used, 404452 free, 34664 buffers KiB Swap: 102396 total, 0 used, 102396 free. 271040 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1798 pi 20 0 301180 99652 56580 S 5.3 10.5 22:54.84 electron 1805 pi 20 0 321060 79368 50868 S 2.6 8.4 11:36.49 electron 1770 pi 20 0 480972 82744 58648 S 1.0 8.7 7:20.91 electron
-
@mattn I am pretty new to linux/raspbian… I do not have any file/folder under /etc with the name environment?
Should i create a file and add this line in? add it somewhere else?
Thanks
-
Thanks v.much to everyone on this forum. I just downgraded Electron to 1.4.15, without downgrading either MagicMirror2 or my OS, and my CPU usage and temperature are significantly down. But I’m facing yet another problem because of this downgrading of Electron. My MMM-PIR-Sensor module is giving this error:
App threw an error during load Error: Module version mismatch. Expected 50, got 54. at Error (native) at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:173:20) at Object.Module._extensions..node (module.js:583:18) at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:173:20) at Module.load (module.js:473:32) at tryModuleLoad (module.js:432:12) at Function.Module._load (module.js:424:3) at Module.require (module.js:483:17) at require (internal/module.js:20:19) at bindings (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/bindings/bindings.js:81:44) Whoops! There was an uncaught exception... Error: Module version mismatch. Expected 50, got 54. at Error (native) at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:173:20) at Object.Module._extensions..node (module.js:583:18) at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:173:20) at Module.load (module.js:473:32) at tryModuleLoad (module.js:432:12) at Function.Module._load (module.js:424:3) at Module.require (module.js:483:17) at require (internal/module.js:20:19) at bindings (/home/pi/MagicMirror/modules/MMM-PIR-Sensor/node_modules/bindings/bindings.js:81:44)
Any help on fixing this would be appreciated.
-
Fixed it! I just went to the modules/MMM-PIR-Sensor directory and did
npm install
That fixed it.
-
@Doum Yeah, just create the file, paste that line, save and reboot.
-
@mattn What version of electron are you running? I downgraded to 1.4.15 electron, have v6.12.3 nodejs and 2.3.1Magic Mirror. I set the environment variable as you indicated. CPU usage goes down remarkably, although not as much as in your case.
Did you also got rid of a memory leak? I start with 43% free and this falls to 7% after a day. Stays between 5%-7% for a few days and then after 3-5 days my mirror halts completely with E_NOMEM panic in the log files. Any reader knows of handy memory leak analysistools for nodejs? It seems you keep on having 50% used / 50% free… Not me ;(.
top - 20:03:02 up 21:14, 3 users, load average: 0,30, 0,33, 0,41 Tasks: 165 total, 2 running, 163 sleeping, 0 stopped, 0 zombie %Cpu(s): 8,6 us, 4,5 sy, 0,0 ni, 86,9 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st KiB Mem: 949580 total, 907688 used, 41892 free, 60200 buffers KiB Swap: 102396 total, 5172 used, 97224 free. 444532 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1178 pi 20 0 828888 244624 65840 R 22,5 25,8 327:41.98 electron 1216 pi 20 0 603272 349144 290184 S 13,6 36,8 132:11.73 electron 666 root 20 0 200848 58756 28796 S 12,2 6,2 131:39.07 Xorg 24453 pi 20 0 5224 2580 2148 R 1,0 0,3 0:02.03 top
-
@martinkooij TBH, I have no clue how to check my electron version, but I used the MM install script and haven’t downgraded anything. So I’m running the version supplied by the script as of approximately two weeks ago.
I’ve not noticed any mem issues. My mirror’s been up 6 days mem usage is ~10% per process:
top - 19:19:50 up 6 days, 8:37, 3 users, load average: 0.13, 0.24, 0.20 Tasks: 155 total, 1 running, 153 sleeping, 0 stopped, 1 zombie %Cpu(s): 32.7 us, 4.8 sy, 0.0 ni, 62.5 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 947732 total, 674684 used, 273048 free, 96984 buffers KiB Swap: 102396 total, 0 used, 102396 free. 288436 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1099 pi 20 0 310396 98548 55500 S 104.4 10.4 765:21.28 electron 1111 pi 20 0 366396 102884 51368 S 21.5 10.9 297:36.05 electron 1071 pi 20 0 474832 84892 58020 S 12.3 9.0 244:20.94 electron
Could it be a module causing it? Or try reinstalling MM with the script and see what happens with the default install/modules
As far as my modules go, I’m only using the date and weather mods from standard and then 4 custom mods(technically 2, as 3 are separate instances of the same mod for bus/train times).
Regards,
Matt
-
@mattn thanks! I love my modules, so difficult to lose one ;).
It however seems you have a slow leak too, growing memory usage of ca 200Mbyte in 6 days. Much less than me, but still more than it should be, I guess. Just let us know how you fare! Thanks for sharing.