My actual configuration is as follows:
Hardware
- Spoiler: show
- I am using Raspberry PI (RPI) 3 B+
RAM 128 Mb GPU + 872 Mb CPU
SWAP 250 Mb
SD Card 64 Gb
Software
- Spoiler: show
- Updated from Debian Stretch to Buster
Linux raspberrypi 4.19.118-v7+ #1311 SMP Mon Apr 27 14:21:24 BST 2020 armv7l GNU/Linux
Domoticz Version 2020.2
Updated all installed system packages on the 10/6/2020.
Firefox Quantum ESR (68.9.0esr(32 bit)
Wrote a script, based on other examples, to collect % CPULoad (5 min average); % used RAM Memory and % used SWAP Memory. My Domoticz has seven active scripts. Four are device triggered while the other three are time triggered . The first time triggered script executes on sunrise and sunset; the second script collects system diagnostic information above every other hour and the third script reads device battery levels once per day. There are 11 Z-wave devices (opening, motion, alarm siren) connected to Domoticz and MONIT confirms that Domoticz application system resource load is stable.
- Spoiler: show
Code: Select all
--[[ El Zorro, 5/6/2020 Raspberry PI (RPI) Health Status Script Ver 1 Asummes that MONIT has been configured to monitor RPI resources and Domoticz Server Application. Assumes that DUMMY/Virtual Device with Virtual Sensor has been configured on Hardware Page. Assumes that 7 new variables were also created for diagnostics purposes. Refer to sTable for virtual sensor's default names. Command $ uptime -s outputs RPI running time in text format Command $ sudo monit status generates a system resource status report. Status report is piped to bash mawk command which extracts data. Output is one line with comma separated values. Output example: 3.0,54.3,52.2 Values are then read in Domoticz and stored in a table --]] local dz = domoticz return { active = true, on = { timer = { 'every other hour', -- 00:00, 02:00, ..., 22:00 (12x per 24hrs) -- 'at 19:00', -- specific time } }, logging = { level = domoticz.LOG_DEBUG, marker = "CMD" }, execute = function(dz) -- Script Definition of Virtual Sensors in PI Diag Virtual (Dummy) Device local sTable = { -- Virtual Sensor Sensor Type {"Domoticz uptime", "Text"}, -- Domoticz Server running time {"PI Uptime", "Text"}, -- Time since RPI has been up and running {"PI CPU Load 5min", "Percentage"}, -- 5 minute average CPU Load {"PI RAM Memory", "Percentage"}, -- % Used Memory {"PI Swap Memory", "Percentage"}, -- % Used Swap } local function osCommand(cmd) -- if dz == nil then dz = domoticz end -- Ensure dz is declared as domoticz object dz.log('Executing Command: ' .. cmd,dz.LOG_DEBUG) local fileHandle = assert(io.popen(cmd .. ' 2>&1 || echo ::ERROR::', 'r')) local commandOutput = assert(fileHandle:read('*a')) local returnTable = {fileHandle:close()} if commandOutput:find '::ERROR::' then -- something went wrong dz.log('Error ==>> ' .. tostring(commandOutput:match('^(.*)%s+::ERROR::') or ' ... but no error message ' ) ,dz.LOG_ERROR) else -- all is fine!! dz.log('ReturnCode: ' .. returnTable[3] .. '\ncommandOutput:\n' .. commandOutput, dz.LOG_DEBUG) end return commandOutput,returnTable[3] -- rc[3] contains returnCode end -- local function updateSensor(name,deviceType, value) if deviceType == "Text" then dz.devices(name).updateText(value) elseif deviceType == 'Percentage' then dz.devices(name).updatePercentage(value) end end -- local function processData(data) dTable = dz.utils.stringSplit(data,',') -- converts CVS data to a table -- dz.utils.dumpTable(dTable) -- debug -- print ( dz.utils._.size(dTable)) for i=1,dz.utils._.size(dTable) do updateSensor(sTable[i+2][1], sTable[i+2][2], dTable[i] ) end end -- -- MAIN SCRIPT BODY -- local days = dz.startTime.daysAgo local hours = dz.startTime.hoursAgo%24 local minutes = dz.startTime.minutesAgo%60 local uptimeString = days .. " days, " .. hours .. " hours " .. minutes .. " minutes" local result, rc = osCommand('uptime -s') local result2, rc2 = osCommand('sudo monit status | mawk -f /home/pi/Scripts/rpidia') -- dz.log('return Code: ' .. rc ,dz.LOG_FORCE) -- Debug -- dz.log('Result: \n' .. result,dz.LOG_FORCE) -- Debug updateSensor(sTable[1][1],sTable[1][2],uptimeString) -- Store Uptime in Virtual Sensor dz.variables("uptimeString").set(uptimeString) -- define var as type string dz.variables("uptimeMinutes").set(dz.startTime.minutesAgo) -- define var as type integer dz.variables("uptimeHours").set(dz.startTime.hoursAgo) -- define var as type integer dz.variables("uptimeDays").set(dz.startTime.daysAgo) -- define var as type integer dz.variables("startTime").set(dz.startTime.rawTime:sub(1, -4)) -- define var as type time dz.variables("startDate").set(dz.startTime.day .. "/" .. dz.startTime.month .. "/" .. dz.startTime.year) -- define var as type date dz.variables("startDateTime").set(dz.startTime.raw) -- if rc == 0 then updateSensor(sTable[2][1],sTable[2][2], result) -- Store RPI Uptime in Virtual Sensor end -- if rc2 == 0 then processData(result2) -- Store RPI System Resources in Virtual Sensors end end }
General RPI forums discuss about web browser memory leak issues and they recommend to limit the cache use (website history, cookies, etc). Other posts recommending OS commands to free-up cache memory. Please see attached bash script.
- Spoiler: show
Code: Select all
# 13/6/2020 # El Zorro # Script meant to Clear Cache Memory # If you are using firefox as web browser,open page about:memory and press Minimize memory usage echo "Clear Cache Memory in Use" # 1 Freeing Up the Page Cache sudo sh -c "echo 1 > /proc/sys/vm/drop_caches" # 2. Freeing Up the Dentries and Inodes sudo sh -c "echo 2 > /proc/sys/vm/drop_caches" # 3. Freeing Up the Page Cache, Dentries and Inodes sudo sh -c "echo 3 > /proc/sys/vm/drop_caches" # 4. Flushing the File System Buffers sync
Mozilla support posts ask users to login to about:memory page and click the "Minimize memory usage" button. There were other comments like add more memory to your PC or RAM usage of Firefox is normal to make it "faster". My guess is that these folks never used an HP 41CX in their lives and would balk at the thought of using a micro PC with 6 Kb RAM. Since RPI’s resources are limited compared to a desktop, a few Mb can make a big difference and one must be frugal with system resources.
Please see the system diagnostics trends below. The graph show the % SWAP Memory Usage; % RAM Memory Usage and CU Load 5min collected every two hours. Ignore data on the far left for it was collected during script testing and at faster intervals.
Without Firefox running, data on the far right show a plateau with RAM Memory around 26.5 %. Domoticz and all other applications do not appear to consume system resources. As Firefox was brought on-line, CPU Load is relatively the same; RAM Memory jump to 51.5 % and % SWAP Memory jumps to 8.7 %. Memory usage tends to increase slowly. My gut feeling is that RAM memory will eventually saturate. Please find two files with sorted process structure ( ps -auxf | sort -r -k 4 > psout) without and with the browser running.
Without Firefox
- Spoiler: show
Code: Select all
Process structure without Web Browser Mem 240M/875M or 27 % SWAP 512K/250M or 0.2 % Average 5 Min CPLoad 10 % USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 653 0.1 6.7 277708 60128 tty7 Ssl+ juin10 4:15 \_ /usr/lib/xorg/Xorg :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch pi 955 0.0 5.5 263904 49736 ? Sl juin10 0:01 clipit root 668 0.7 5.1 277148 45916 ? Ssl juin10 23:27 /home/pi/domoticz/domoticz -daemon -www 8080 -sslwww 443 -log /tmp/domoticz.txt pi 924 0.2 4.3 161920 38840 ? Sl juin10 7:54 \_ lxpanel --profile LXDE-pi pi 940 0.0 3.6 67512 32892 ? Sl juin10 0:00 /usr/bin/python -O /usr/share/wicd/gtk/wicd-client.py --tray pi 9058 0.0 3.2 89852 29296 ? S juin11 0:00 | \_ claws-mail pi 1602 0.0 3.2 86176 29512 ? Sl juin10 1:17 | \_ lxterminal pi 931 0.0 3.2 158580 28976 ? Rl juin10 0:09 \_ pcmanfm --desktop --profile LXDE-pi root 626 0.1 3.0 70616 27440 ? Sl juin10 3:22 \_ /usr/bin/vncserver-x11-core -service pi 1096 0.0 2.5 177664 22844 ? Sl juin10 0:00 \_ /usr/lib/gnome-online-accounts/goa-daemon pi 990 0.0 2.1 191724 19292 ? S<sl juin10 0:00 \_ /usr/bin/pulseaudio --daemonize=no pi 915 0.0 1.8 64256 16408 ? S juin10 0:03 \_ openbox --config-file /home/pi/.config/openbox/lxde-pi-rc.xml pi 9041 0.0 1.7 96452 15456 ? Sl juin11 0:00 | \_ /usr/lib/gvfs/gvfsd-smb-browse --spawner :1.5 /org/gtk/gvfs/exec_spaw/2 pi 994 0.0 1.7 32220 15372 ? S juin10 0:00 \_ /usr/bin/vncserverui -statusicon 5 root 345 0.2 1.6 34276 14372 ? Ss juin10 6:39 /usr/bin/python -O /usr/share/wicd/daemon/wicd-daemon.py --no-daemon --keep-connection pi 962 0.0 1.4 32392 12828 ? S juin10 0:02 /usr/bin/vncserverui service 20 root 495 0.0 1.4 23696 13016 ? S juin10 2:47 \_ /usr/bin/python -O /usr/share/wicd/daemon/monitor.py pi 794 0.0 1.3 55004 12220 ? Ssl juin10 0:00 \_ /usr/bin/lxsession -s LXDE-pi -e LXDE pi 1052 0.0 1.2 98688 10952 ? Ssl juin10 0:01 \_ /usr/lib/gvfs/gvfs-udisks2-volume-monitor pi 916 0.0 1.2 47700 11196 ? Sl juin10 0:00 \_ lxpolkit root 330 0.0 1.1 64000 10276 ? Ssl juin10 0:01 /usr/lib/udisks2/udisksd root 672 0.0 1.0 16948 9520 ? S juin10 0:47 /usr/bin/vncagent service 20 root 1 0.0 0.9 33948 8316 ? Ss juin10 0:09 /sbin/init splash pi 1075 0.0 0.8 56228 7300 ? Ssl juin10 0:00 \_ /usr/lib/gvfs/gvfs-afc-volume-monitor root 122 0.0 0.8 18828 7936 ? Ss juin10 0:02 /lib/systemd/systemd-journald pi 736 0.0 0.8 14840 7440 ? Ss juin10 0:00 /lib/systemd/systemd --user pi 9035 0.0 0.7 62636 6872 ? Sl juin11 0:00 | \_ /usr/lib/gvfs/gvfsd-network --spawner :1.5 /org/gtk/gvfs/exec_spaw/1 pi 9049 0.0 0.7 54464 6512 ? Sl juin11 0:00 | \_ /usr/lib/gvfs/gvfsd-dnssd --spawner :1.5 /org/gtk/gvfs/exec_spaw/3 pi 1132 0.0 0.7 54332 7136 ? Sl juin10 0:00 \_ /usr/lib/gnome-online-accounts/goa-identity-service root 325 0.0 0.7 42968 6412 ? Ssl juin10 0:00 /usr/lib/accountsservice/accounts-daemon root 429 0.0 0.7 39340 6984 ? Ssl juin10 0:00 /usr/lib/policykit-1/polkitd --no-debug pi 1192 0.0 0.6 53316 6228 ? Sl juin10 0:00 | \_ /usr/lib/gvfs/gvfsd-trash --spawner :1.5 /org/gtk/gvfs/exec_spaw/0 root 625 0.0 0.6 47076 5936 ? Ssl juin10 0:00 /usr/sbin/lightdm pi 944 0.0 0.6 46276 5540 ? Sl juin10 0:00 /usr/lib/at-spi2-core/at-spi-bus-launcher --launch-immediately pi 905 0.0 0.6 43616 6204 ? Ssl juin10 0:00 \_ /usr/lib/gvfs/gvfsd pi 1083 0.0 0.6 40308 5572 ? Ssl juin10 0:00 \_ /usr/lib/gvfs/gvfs-goa-volume-monitor pi 1209 0.0 0.6 31356 5444 ? Ssl juin10 0:00 \_ /usr/lib/gvfs/gvfsd-metadata root 786 0.0 0.6 30216 5960 ? Sl juin10 0:00 \_ lightdm --session-child 12 15 systemd+ 282 0.0 0.6 22536 5688 ? Ssl juin10 0:01 /lib/systemd/systemd-timesyncd root 468 0.0 0.6 17152 5396 ? Sl juin10 0:35 /usr/bin/monit -c /etc/monit/monitrc root 344 0.0 0.6 13388 5828 ? Ss juin10 0:00 /lib/systemd/systemd-logind pi 910 0.0 0.5 54512 5184 ? Sl juin10 0:00 \_ /usr/lib/gvfs/gvfsd-fuse /run/user/1000/gvfs -f -o big_writes pi 1069 0.0 0.5 41876 5012 ? Ssl juin10 0:00 \_ /usr/lib/gvfs/gvfs-gphoto2-volume-monitor pi 1062 0.0 0.5 40308 4704 ? Ssl juin10 0:00 \_ /usr/lib/gvfs/gvfs-mtp-volume-monitor pi 1098 0.0 0.5 30616 5216 ? Sl juin10 0:02 /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session pi 1055 0.0 0.5 26444 5176 ? Sl juin10 0:00 /usr/lib/menu-cache/menu-cached /run/user/1000/menu-cached-:0 pi 12875 0.0 0.5 25996 4572 ? Sl juin11 0:00 \_ /usr/lib/dconf/dconf-service root 332 0.0 0.5 11776 4492 ? SNs juin10 0:00 /usr/sbin/alsactl -E HOME=/run/alsa -s -n 19 -c rdaemon root 636 0.0 0.5 10928 5276 ? Ss juin10 0:00 /usr/sbin/sshd -D root 616 0.0 0.4 9808 4204 ? Ss juin10 0:00 /usr/lib/bluetooth/bluetoothd pi 1608 0.0 0.4 9024 3828 pts/0 Ss juin10 0:00 | | \_ bash message+ 321 0.1 0.4 7304 3884 ? Ss juin10 4:23 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only root 629 0.0 0.4 26708 4068 ? Ssl juin10 0:00 /usr/bin/bluealsa root 154 0.0 0.4 18880 4100 ? Ss juin10 0:02 /lib/systemd/systemd-udevd root 442 0.0 0.4 11472 4088 ? Ss juin10 0:20 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dnl80211,wext root 328 0.0 0.4 10740 4028 ? Ss juin10 0:01 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant pi 803 0.0 0.3 7128 3548 ? Ss juin10 0:00 \_ /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only pi 974 0.0 0.3 6764 2996 ? S juin10 0:00 \_ /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3 avahi 319 0.0 0.3 6384 3168 ? Ss juin10 2:48 avahi-daemon: running [raspberrypi.local] root 654 0.0 0.3 5928 2748 tty1 Ss juin10 0:00 /bin/login -f root 320 0.0 0.3 25860 2992 ? Ssl juin10 0:00 /usr/sbin/rsyslogd -n -iNONE pi 17859 0.0 0.3 10296 2932 pts/0 R+ 21:31 0:00 | | \_ ps -auxf root 612 0.0 0.2 8976 2620 ? Ss juin10 0:00 /usr/bin/vncserver-x11-serviced -fg pi 761 0.0 0.2 8848 2608 tty1 S+ juin10 0:00 \_ -bash root 351 0.0 0.2 8324 2284 ? Ss juin10 0:00 /usr/sbin/cron -f nobody 329 0.0 0.2 4668 2160 ? Ss juin10 0:01 /usr/sbin/thd --triggers /etc/triggerhappy/triggers.d/ --socket /run/thd.socket --user nobody --deviceglob /dev/input/event* root 610 0.0 0.2 2968 1996 ? Ss juin10 0:21 /sbin/dhcpcd -q -w rtkit 323 0.0 0.2 23536 2232 ? SNsl juin10 0:02 /usr/lib/rtkit/rtkit-daemon pi 739 0.0 0.2 17228 1908 ? S juin10 0:00 \_ (sd-pam) root 363 0.0 0.1 27656 1348 ? SLsl juin10 1:46 /usr/sbin/rngd -r /dev/hwrng avahi 334 0.0 0.0 6120 288 ? S juin10 0:00 \_ avahi-daemon: chroot helper pi 938 0.0 0.0 4520 292 ? Ss juin10 0:00 /usr/bin/ssh-agent -s pi 836 0.0 0.0 4520 288 ? Ss juin10 0:00 \_ /usr/bin/ssh-agent x-session-manager root 590 0.0 0.0 2136 116 ? S juin10 0:00 /usr/bin/hciattach /dev/serial1 bcm43xx 3000000 flow - b8:27:eb:d4:88:98 pi 17860 0.0 0.0 12964 488 pts/0 S+ 21:31 0:00 | | \_ sort -r -k 4 root 79 0.0 0.0 0 0 ? S juin10 0:21 \_ [irq/86-mmc1] root 206 0.0 0.0 0 0 ? S juin10 0:07 \_ [brcmf_wdog/mmc1] root 16 0.0 0.0 0 0 ? S juin10 0:04 \_ [ksoftirqd/1] root 86 0.0 0.0 0 0 ? S juin10 0:03 \_ [jbd2/mmcblk0p7-] root 9 0.0 0.0 0 0 ? S juin10 0:02 \_ [ksoftirqd/0] root 40 0.0 0.0 0 0 ? S juin10 0:00 \_ [watchdogd] root 76 0.0 0.0 0 0 ? S< juin10 0:00 \_ [vchiq-sync/0] root 74 0.0 0.0 0 0 ? S< juin10 0:00 \_ [vchiq-slot/0] root 75 0.0 0.0 0 0 ? S< juin10 0:00 \_ [vchiq-recy/0] root 77 0.0 0.0 0 0 ? S juin10 0:00 \_ [vchiq-keep/0] root 78 0.0 0.0 0 0 ? S< juin10 0:00 \_ [SMIO] root 170 0.0 0.0 0 0 ? S< juin10 0:00 \_ [SMIO] root 35 0.0 0.0 0 0 ? S juin10 0:00 \_ [oom_reaper] root 25 0.0 0.0 0 0 ? S juin10 0:00 \_ [migration/3] root 20 0.0 0.0 0 0 ? S juin10 0:00 \_ [migration/2] root 15 0.0 0.0 0 0 ? S juin10 0:00 \_ [migration/1] root 12 0.0 0.0 0 0 ? S juin10 0:00 \_ [migration/0] root 2 0.0 0.0 0 0 ? S juin10 0:00 [kthreadd] root 46 0.0 0.0 0 0 ? S juin10 0:00 \_ [kswapd0] root 26 0.0 0.0 0 0 ? S juin10 0:00 \_ [ksoftirqd/3] root 21 0.0 0.0 0 0 ? S juin10 0:00 \_ [ksoftirqd/2] root 648 0.0 0.0 0 0 ? S< juin10 0:00 \_ [krfcommd] root 34 0.0 0.0 0 0 ? S juin10 0:00 \_ [khungtaskd] root 29 0.0 0.0 0 0 ? S juin10 0:00 \_ [kdevtmpfs] root 37 0.0 0.0 0 0 ? S juin10 0:00 \_ [kcompactd0] root 1202 0.0 0.0 0 0 ? S juin10 0:00 \_ [jbd2/mmcblk0p9-] root 1271 0.0 0.0 0 0 ? S juin10 0:00 \_ [jbd2/mmcblk0p13] root 1323 0.0 0.0 0 0 ? S juin10 0:00 \_ [jbd2/mmcblk0p12] root 1347 0.0 0.0 0 0 ? S juin10 0:00 \_ [jbd2/mmcblk0p11] root 111 0.0 0.0 0 0 ? S juin10 0:00 \_ [irq/166-usb-001] root 24 0.0 0.0 0 0 ? S juin10 0:00 \_ [cpuhp/3] root 19 0.0 0.0 0 0 ? S juin10 0:00 \_ [cpuhp/2] root 14 0.0 0.0 0 0 ? S juin10 0:00 \_ [cpuhp/1] root 13 0.0 0.0 0 0 ? S juin10 0:00 \_ [cpuhp/0] root 10 0.0 0.0 0 0 ? I juin10 0:30 \_ [rcu_sched] root 89 0.0 0.0 0 0 ? I< juin10 0:05 \_ [kworker/0:2H-mmc_complete] root 18 0.0 0.0 0 0 ? I< juin10 0:02 \_ [kworker/1:0H-kblockd] root 85 0.0 0.0 0 0 ? I< juin10 0:01 \_ [kworker/3:1H-kblockd] root 95 0.0 0.0 0 0 ? I< juin10 0:01 \_ [kworker/2:1H-kblockd] root 43 0.0 0.0 0 0 ? I< juin10 0:00 \_ [xprtiod] root 36 0.0 0.0 0 0 ? I< juin10 0:00 \_ [writeback] root 41 0.0 0.0 0 0 ? I< juin10 0:00 \_ [rpciod] root 4 0.0 0.0 0 0 ? I< juin10 0:00 \_ [rcu_par_gp] root 3 0.0 0.0 0 0 ? I< juin10 0:00 \_ [rcu_gp] root 11 0.0 0.0 0 0 ? I juin10 0:00 \_ [rcu_bh] root 47 0.0 0.0 0 0 ? I< juin10 0:00 \_ [nfsiod] root 30 0.0 0.0 0 0 ? I< juin10 0:00 \_ [netns] root 8 0.0 0.0 0 0 ? I< juin10 0:00 \_ [mm_percpu_wq] root 82 0.0 0.0 0 0 ? I< juin10 0:00 \_ [mmc_complete] root 199 0.0 0.0 0 0 ? I< juin10 0:00 \_ [mmal-vchiq] root 198 0.0 0.0 0 0 ? I< juin10 0:00 \_ [mmal-vchiq] root 197 0.0 0.0 0 0 ? I< juin10 0:00 \_ [mmal-vchiq] root 594 0.0 0.0 0 0 ? I< juin10 0:00 \_ [kworker/u9:2-hci0] root 42 0.0 0.0 0 0 ? I< juin10 0:00 \_ [kworker/u9:0-hci0] root 69 0.0 0.0 0 0 ? I< juin10 0:00 \_ [kthrotld] root 39 0.0 0.0 0 0 ? I< juin10 0:00 \_ [kblockd] root 71 0.0 0.0 0 0 ? I< juin10 0:00 \_ [iscsi_eh] root 91 0.0 0.0 0 0 ? I< juin10 0:00 \_ [ipv6_addrconf] root 87 0.0 0.0 0 0 ? I< juin10 0:00 \_ [ext4-rsv-conver] root 1348 0.0 0.0 0 0 ? I< juin10 0:00 \_ [ext4-rsv-conver] root 1324 0.0 0.0 0 0 ? I< juin10 0:00 \_ [ext4-rsv-conver] root 1272 0.0 0.0 0 0 ? I< juin10 0:00 \_ [ext4-rsv-conver] root 1203 0.0 0.0 0 0 ? I< juin10 0:00 \_ [ext4-rsv-conver] root 72 0.0 0.0 0 0 ? I< juin10 0:00 \_ [dwc_otg] root 73 0.0 0.0 0 0 ? I< juin10 0:00 \_ [DWC Notificatio] root 38 0.0 0.0 0 0 ? I< juin10 0:00 \_ [crypto] root 204 0.0 0.0 0 0 ? I< juin10 0:00 \_ [cfg80211] root 205 0.0 0.0 0 0 ? I< juin10 0:00 \_ [brcmf_wq/mmc1:0] root 17785 0.0 0.0 0 0 ? I 21:29 0:00 \_ [kworker/u8:1-cfg80211] root 17782 0.0 0.0 0 0 ? I 21:29 0:00 \_ [kworker/0:0-events] root 17672 0.0 0.0 0 0 ? I< 21:27 0:00 \_ [kworker/2:2H] root 17671 0.0 0.0 0 0 ? I 21:27 0:00 \_ [kworker/1:2-mm_percpu_wq] root 17540 0.0 0.0 0 0 ? I< 21:25 0:00 \_ [kworker/1:2H] root 17500 0.0 0.0 0 0 ? I< 21:25 0:00 \_ [kworker/0:0H] root 17461 0.0 0.0 0 0 ? I 21:24 0:00 \_ [kworker/0:1-events] root 17424 0.0 0.0 0 0 ? I 21:23 0:00 \_ [kworker/u8:0-cfg80211] root 17341 0.0 0.0 0 0 ? I 21:22 0:00 \_ [kworker/1:1-mm_percpu_wq] root 17051 0.0 0.0 0 0 ? I 21:17 0:00 \_ [kworker/u8:2-events_unbound] root 16860 0.0 0.0 0 0 ? I< 21:15 0:00 \_ [kworker/2:0H] root 16659 0.0 0.0 0 0 ? I 21:11 0:00 \_ [kworker/2:1-mm_percpu_wq] root 16284 0.0 0.0 0 0 ? I< 21:04 0:00 \_ [kworker/3:0H] root 15563 0.0 0.0 0 0 ? I 20:51 0:00 \_ [kworker/0:2-events] root 13891 0.0 0.0 0 0 ? I 20:23 0:00 \_ [kworker/3:2] root 13646 0.0 0.0 0 0 ? I 20:18 0:00 \_ [kworker/2:2-mm_percpu_wq] root 8309 0.0 0.0 0 0 ? I 18:42 0:00 \_ [kworker/1:0-events_freezable] root 32658 0.0 0.0 0 0 ? I 16:09 0:01 \_ [kworker/3:1-mm_percpu_wq]
With Firefox
- Spoiler: show
Code: Select all
Process structure with Web Browser running Mem 446M/875M or 51 % SWAP 21M/250M or 8 % Average 5 Min CPLoad 28 % USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND pi 29118 1.1 9.5 392828 85676 ? Sl 11:27 0:07 \_ /usr/lib/firefox-esr/firefox-esr -contentproc -childID 2 -isForBrowser -prefsLen 5960 -prefMapSize 185699 -parentBuildID 20200527211442 -greomni /usr/lib/firefox-esr/omni.ja -appomni /usr/lib/firefox-esr/browser/omni.ja -appdir /usr/lib/firefox-esr/browser 28990 true tab root 653 0.1 8.2 296404 73696 tty7 Ssl+ juin10 6:20 \_ /usr/lib/xorg/Xorg :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch pi 29228 0.3 6.6 370276 59644 ? Sl 11:28 0:01 \_ /usr/lib/firefox-esr/firefox-esr -contentproc -childID 4 -isForBrowser -prefsLen 7296 -prefMapSize 185699 -parentBuildID 20200527211442 -greomni /usr/lib/firefox-esr/omni.ja -appomni /usr/lib/firefox-esr/browser/omni.ja -appdir /usr/lib/firefox-esr/browser 28990 true tab pi 955 0.0 5.1 263904 45876 ? Sl juin10 0:03 clipit root 668 0.7 4.6 277028 41388 ? Ssl juin10 29:45 /home/pi/domoticz/domoticz -daemon -www 8080 -sslwww 443 -log /tmp/domoticz.txt pi 924 0.2 4.6 169932 41468 ? Sl juin10 10:15 \_ lxpanel --profile LXDE-pi pi 1602 0.0 3.0 86176 27164 ? Sl juin10 1:25 | \_ lxterminal pi 931 0.0 3.0 159260 26932 ? Rl juin10 0:27 \_ pcmanfm --desktop --profile LXDE-pi pi 9058 0.0 2.9 89852 26264 ? S juin11 0:00 | \_ claws-mail root 626 0.1 2.8 69008 25236 ? Sl juin10 5:08 \_ /usr/bin/vncserver-x11-core -service pi 940 0.0 2.8 67512 25168 ? Sl juin10 0:00 /usr/bin/python -O /usr/share/wicd/gtk/wicd-client.py --tray pi 28990 20.1 25.9 748520 232760 ? Sl 11:27 2:02 \_ /usr/lib/firefox-esr/firefox-esr pi 1096 0.0 2.3 177664 21084 ? Sl juin10 0:00 \_ /usr/lib/gnome-online-accounts/goa-daemon pi 990 0.0 2.0 191724 18160 ? S<sl juin10 0:00 \_ /usr/bin/pulseaudio --daemonize=no pi 9041 0.0 1.6 96452 14976 ? Sl juin11 0:00 | \_ /usr/lib/gvfs/gvfsd-smb-browse --spawner :1.5 /org/gtk/gvfs/exec_spaw/2 pi 915 0.0 1.5 64604 14048 ? S juin10 0:05 \_ openbox --config-file /home/pi/.config/openbox/lxde-pi-rc.xml pi 29156 8.5 15.5 455300 138880 ? Sl 11:27 0:50 \_ /usr/lib/firefox-esr/firefox-esr -contentproc -childID 3 -isForBrowser -prefsLen 5960 -prefMapSize 185699 -parentBuildID 20200527211442 -greomni /usr/lib/firefox-esr/omni.ja -appomni /usr/lib/firefox-esr/browser/omni.ja -appdir /usr/lib/firefox-esr/browser 28990 true tab pi 994 0.0 1.5 32220 14120 ? S juin10 0:00 \_ /usr/bin/vncserverui -statusicon 5 pi 29056 4.5 13.7 502028 122744 ? Sl 11:27 0:27 \_ /usr/lib/firefox-esr/firefox-esr -contentproc -childID 1 -isForBrowser -prefsLen 1 -prefMapSize 185699 -parentBuildID 20200527211442 -greomni /usr/lib/firefox-esr/omni.ja -appomni /usr/lib/firefox-esr/browser/omni.ja -appdir /usr/lib/firefox-esr/browser 28990 true tab root 345 0.2 1.3 34276 12320 ? Ss juin10 8:31 /usr/bin/python -O /usr/share/wicd/daemon/wicd-daemon.py --no-daemon --keep-connection root 495 0.0 1.3 23696 12388 ? S juin10 3:34 \_ /usr/bin/python -O /usr/share/wicd/daemon/monitor.py pi 962 0.0 1.2 32392 11352 ? S juin10 0:03 /usr/bin/vncserverui service 20 pi 1052 0.0 1.1 98688 10136 ? Ssl juin10 0:01 \_ /usr/lib/gvfs/gvfs-udisks2-volume-monitor pi 794 0.0 1.1 55004 9888 ? Ssl juin10 0:01 \_ /usr/bin/lxsession -s LXDE-pi -e LXDE root 330 0.0 1.0 64000 9228 ? Ssl juin10 0:01 /usr/lib/udisks2/udisksd pi 916 0.0 1.0 47700 8980 ? Sl juin10 0:00 \_ lxpolkit root 672 0.0 1.0 16948 9324 ? S juin10 1:05 /usr/bin/vncagent service 20 root 122 0.0 0.8 18832 7276 ? Ss juin10 0:03 /lib/systemd/systemd-journald pi 9035 0.0 0.7 62768 6848 ? Sl juin11 0:00 | \_ /usr/lib/gvfs/gvfsd-network --spawner :1.5 /org/gtk/gvfs/exec_spaw/1 pi 1075 0.0 0.7 56228 7012 ? Ssl juin10 0:00 \_ /usr/lib/gvfs/gvfs-afc-volume-monitor pi 9049 0.0 0.7 54464 6628 ? Sl juin11 0:00 | \_ /usr/lib/gvfs/gvfsd-dnssd --spawner :1.5 /org/gtk/gvfs/exec_spaw/3 pi 1132 0.0 0.7 54332 6836 ? Sl juin10 0:00 \_ /usr/lib/gnome-online-accounts/goa-identity-service pi 1192 0.0 0.7 53316 6992 ? Sl juin10 0:00 | \_ /usr/lib/gvfs/gvfsd-trash --spawner :1.5 /org/gtk/gvfs/exec_spaw/0 root 429 0.0 0.7 39340 6504 ? Ssl juin10 0:00 /usr/lib/policykit-1/polkitd --no-debug root 1 0.0 0.7 33948 6984 ? Ss juin10 0:10 /sbin/init splash pi 905 0.0 0.6 43616 5736 ? Ssl juin10 0:00 \_ /usr/lib/gvfs/gvfsd root 325 0.0 0.6 42968 6012 ? Ssl juin10 0:00 /usr/lib/accountsservice/accounts-daemon pi 1098 0.0 0.6 30616 6140 ? Sl juin10 0:03 /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session root 786 0.0 0.6 30216 5720 ? Sl juin10 0:00 \_ lightdm --session-child 12 15 pi 736 0.0 0.6 14840 5424 ? Ss juin10 0:00 /lib/systemd/systemd --user pi 910 0.0 0.5 54512 4612 ? Sl juin10 0:00 \_ /usr/lib/gvfs/gvfsd-fuse /run/user/1000/gvfs -f -o big_writes root 625 0.0 0.5 47076 5196 ? Ssl juin10 0:00 /usr/sbin/lightdm pi 944 0.0 0.5 46276 5060 ? Sl juin10 0:00 /usr/lib/at-spi2-core/at-spi-bus-launcher --launch-immediately pi 1069 0.0 0.5 41876 4620 ? Ssl juin10 0:00 \_ /usr/lib/gvfs/gvfs-gphoto2-volume-monitor pi 1083 0.0 0.5 40308 5368 ? Ssl juin10 0:00 \_ /usr/lib/gvfs/gvfs-goa-volume-monitor pi 1062 0.0 0.5 40308 5268 ? Ssl juin10 0:00 \_ /usr/lib/gvfs/gvfs-mtp-volume-monitor pi 1209 0.0 0.5 31356 5112 ? Ssl juin10 0:00 \_ /usr/lib/gvfs/gvfsd-metadata pi 1055 0.0 0.5 26444 4936 ? Sl juin10 0:00 /usr/lib/menu-cache/menu-cached /run/user/1000/menu-cached-:0 systemd+ 282 0.0 0.5 22536 4684 ? Ssl juin10 0:01 /lib/systemd/systemd-timesyncd root 468 0.0 0.5 17152 4852 ? Sl juin10 0:45 /usr/bin/monit -c /etc/monit/monitrc root 344 0.0 0.5 13388 4800 ? Ss juin10 0:01 /lib/systemd/systemd-logind root 636 0.0 0.5 10928 4760 ? Ss juin10 0:00 /usr/sbin/sshd -D root 616 0.0 0.4 9808 4368 ? Ss juin10 0:00 /usr/lib/bluetooth/bluetoothd pi 1608 0.0 0.4 9024 3732 pts/0 Ss juin10 0:00 | | \_ bash message+ 321 0.1 0.4 7304 3672 ? Ss juin10 5:37 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only root 629 0.0 0.4 26708 3904 ? Ssl juin10 0:00 /usr/bin/bluealsa pi 12875 0.0 0.4 25996 4464 ? Sl juin11 0:00 \_ /usr/lib/dconf/dconf-service root 332 0.0 0.4 11776 4376 ? SNs juin10 0:00 /usr/sbin/alsactl -E HOME=/run/alsa -s -n 19 -c rdaemon root 442 0.0 0.4 11472 4184 ? Ss juin10 0:26 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dnl80211,wext pi 803 0.0 0.3 7128 3284 ? Ss juin10 0:00 \_ /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only pi 974 0.0 0.3 6764 3172 ? S juin10 0:00 \_ /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3 avahi 319 0.0 0.3 6384 3108 ? Ss juin10 3:40 avahi-daemon: running [raspberrypi.local] root 320 0.0 0.3 25860 3508 ? Ssl juin10 0:00 /usr/sbin/rsyslogd -n -iNONE root 154 0.0 0.3 18880 2824 ? Ss juin10 0:02 /lib/systemd/systemd-udevd root 328 0.0 0.3 10740 3556 ? Ss juin10 0:01 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant pi 29789 0.0 0.3 10296 2920 pts/0 R+ 11:37 0:00 | | \_ ps -auxf root 612 0.0 0.2 8976 2324 ? Ss juin10 0:00 /usr/bin/vncserver-x11-serviced -fg pi 761 0.0 0.2 8848 2452 tty1 S+ juin10 0:00 \_ -bash root 351 0.0 0.2 8324 2232 ? Ss juin10 0:00 /usr/sbin/cron -f root 654 0.0 0.2 5928 2660 tty1 Ss juin10 0:00 /bin/login -f nobody 329 0.0 0.2 4668 2160 ? Ss juin10 0:01 /usr/sbin/thd --triggers /etc/triggerhappy/triggers.d/ --socket /run/thd.socket --user nobody --deviceglob /dev/input/event* root 610 0.0 0.2 2968 1812 ? Ss juin10 0:28 /sbin/dhcpcd -q -w rtkit 323 0.0 0.2 23536 2228 ? SNsl juin10 0:03 /usr/lib/rtkit/rtkit-daemon pi 836 0.0 0.1 4520 1056 ? Ss juin10 0:01 \_ /usr/bin/ssh-agent x-session-manager root 363 0.0 0.1 27656 1348 ? SLsl juin10 2:16 /usr/sbin/rngd -r /dev/hwrng pi 739 0.0 0.1 17228 1252 ? S juin10 0:00 \_ (sd-pam) avahi 334 0.0 0.0 6120 252 ? S juin10 0:00 \_ avahi-daemon: chroot helper pi 938 0.0 0.0 4520 4 ? Ss juin10 0:00 /usr/bin/ssh-agent -s root 590 0.0 0.0 2136 108 ? S juin10 0:00 /usr/bin/hciattach /dev/serial1 bcm43xx 3000000 flow - b8:27:eb:d4:88:98 pi 29790 0.0 0.0 12964 452 pts/0 S+ 11:37 0:00 | | \_ sort -r -k 4 root 79 0.0 0.0 0 0 ? S juin10 0:27 \_ [irq/86-mmc1] root 206 0.0 0.0 0 0 ? S juin10 0:09 \_ [brcmf_wdog/mmc1] root 16 0.0 0.0 0 0 ? S juin10 0:06 \_ [ksoftirqd/1] root 86 0.0 0.0 0 0 ? S juin10 0:04 \_ [jbd2/mmcblk0p7-] root 9 0.0 0.0 0 0 ? S juin10 0:03 \_ [ksoftirqd/0] root 40 0.0 0.0 0 0 ? S juin10 0:00 \_ [watchdogd] root 76 0.0 0.0 0 0 ? S< juin10 0:00 \_ [vchiq-sync/0] root 74 0.0 0.0 0 0 ? S< juin10 0:00 \_ [vchiq-slot/0] root 75 0.0 0.0 0 0 ? S< juin10 0:00 \_ [vchiq-recy/0] root 77 0.0 0.0 0 0 ? S juin10 0:00 \_ [vchiq-keep/0] root 78 0.0 0.0 0 0 ? S< juin10 0:00 \_ [SMIO] root 170 0.0 0.0 0 0 ? S< juin10 0:00 \_ [SMIO] root 35 0.0 0.0 0 0 ? S juin10 0:00 \_ [oom_reaper] root 25 0.0 0.0 0 0 ? S juin10 0:00 \_ [migration/3] root 20 0.0 0.0 0 0 ? S juin10 0:00 \_ [migration/2] root 15 0.0 0.0 0 0 ? S juin10 0:00 \_ [migration/1] root 12 0.0 0.0 0 0 ? S juin10 0:00 \_ [migration/0] root 2 0.0 0.0 0 0 ? S juin10 0:00 [kthreadd] root 46 0.0 0.0 0 0 ? S juin10 0:00 \_ [kswapd0] root 26 0.0 0.0 0 0 ? S juin10 0:00 \_ [ksoftirqd/3] root 21 0.0 0.0 0 0 ? S juin10 0:00 \_ [ksoftirqd/2] root 648 0.0 0.0 0 0 ? S< juin10 0:00 \_ [krfcommd] root 34 0.0 0.0 0 0 ? S juin10 0:00 \_ [khungtaskd] root 29 0.0 0.0 0 0 ? S juin10 0:00 \_ [kdevtmpfs] root 37 0.0 0.0 0 0 ? S juin10 0:00 \_ [kcompactd0] root 1202 0.0 0.0 0 0 ? S juin10 0:00 \_ [jbd2/mmcblk0p9-] root 1271 0.0 0.0 0 0 ? S juin10 0:00 \_ [jbd2/mmcblk0p13] root 1323 0.0 0.0 0 0 ? S juin10 0:00 \_ [jbd2/mmcblk0p12] root 1347 0.0 0.0 0 0 ? S juin10 0:00 \_ [jbd2/mmcblk0p11] root 111 0.0 0.0 0 0 ? S juin10 0:00 \_ [irq/166-usb-001] root 24 0.0 0.0 0 0 ? S juin10 0:00 \_ [cpuhp/3] root 19 0.0 0.0 0 0 ? S juin10 0:00 \_ [cpuhp/2] root 14 0.0 0.0 0 0 ? S juin10 0:00 \_ [cpuhp/1] root 13 0.0 0.0 0 0 ? S juin10 0:00 \_ [cpuhp/0] root 10 0.0 0.0 0 0 ? I juin10 0:39 \_ [rcu_sched] root 89 0.0 0.0 0 0 ? I< juin10 0:07 \_ [kworker/0:2H-mmc_complete] root 85 0.0 0.0 0 0 ? I< juin10 0:02 \_ [kworker/3:1H-kblockd] root 18 0.0 0.0 0 0 ? I< juin10 0:02 \_ [kworker/1:0H-kblockd] root 95 0.0 0.0 0 0 ? I< juin10 0:01 \_ [kworker/2:1H-kblockd] root 43 0.0 0.0 0 0 ? I< juin10 0:00 \_ [xprtiod] root 36 0.0 0.0 0 0 ? I< juin10 0:00 \_ [writeback] root 41 0.0 0.0 0 0 ? I< juin10 0:00 \_ [rpciod] root 4 0.0 0.0 0 0 ? I< juin10 0:00 \_ [rcu_par_gp] root 3 0.0 0.0 0 0 ? I< juin10 0:00 \_ [rcu_gp] root 11 0.0 0.0 0 0 ? I juin10 0:00 \_ [rcu_bh] root 47 0.0 0.0 0 0 ? I< juin10 0:00 \_ [nfsiod] root 30 0.0 0.0 0 0 ? I< juin10 0:00 \_ [netns] root 8 0.0 0.0 0 0 ? I< juin10 0:00 \_ [mm_percpu_wq] root 82 0.0 0.0 0 0 ? I< juin10 0:00 \_ [mmc_complete] root 199 0.0 0.0 0 0 ? I< juin10 0:00 \_ [mmal-vchiq] root 198 0.0 0.0 0 0 ? I< juin10 0:00 \_ [mmal-vchiq] root 197 0.0 0.0 0 0 ? I< juin10 0:00 \_ [mmal-vchiq] root 594 0.0 0.0 0 0 ? I< juin10 0:00 \_ [kworker/u9:2-hci0] root 42 0.0 0.0 0 0 ? I< juin10 0:00 \_ [kworker/u9:0-hci0] root 69 0.0 0.0 0 0 ? I< juin10 0:00 \_ [kthrotld] root 39 0.0 0.0 0 0 ? I< juin10 0:00 \_ [kblockd] root 71 0.0 0.0 0 0 ? I< juin10 0:00 \_ [iscsi_eh] root 91 0.0 0.0 0 0 ? I< juin10 0:00 \_ [ipv6_addrconf] root 87 0.0 0.0 0 0 ? I< juin10 0:00 \_ [ext4-rsv-conver] root 1348 0.0 0.0 0 0 ? I< juin10 0:00 \_ [ext4-rsv-conver] root 1324 0.0 0.0 0 0 ? I< juin10 0:00 \_ [ext4-rsv-conver] root 1272 0.0 0.0 0 0 ? I< juin10 0:00 \_ [ext4-rsv-conver] root 1203 0.0 0.0 0 0 ? I< juin10 0:00 \_ [ext4-rsv-conver] root 72 0.0 0.0 0 0 ? I< juin10 0:00 \_ [dwc_otg] root 73 0.0 0.0 0 0 ? I< juin10 0:00 \_ [DWC Notificatio] root 38 0.0 0.0 0 0 ? I< juin10 0:00 \_ [crypto] root 204 0.0 0.0 0 0 ? I< juin10 0:00 \_ [cfg80211] root 205 0.0 0.0 0 0 ? I< juin10 0:00 \_ [brcmf_wq/mmc1:0] root 29792 0.0 0.0 0 0 ? I< 11:37 0:00 \_ [kworker/3:0H] root 29755 0.0 0.0 0 0 ? I 11:37 0:00 \_ [kworker/2:1-mm_percpu_wq] root 29754 0.0 0.0 0 0 ? I 11:37 0:00 \_ [kworker/1:1-events] root 29752 0.0 0.0 0 0 ? I< 11:37 0:00 \_ [kworker/0:0H] root 29697 0.0 0.0 0 0 ? I 11:35 0:00 \_ [kworker/u8:1-brcmf_wq/mmc1:0001:1] root 29537 0.0 0.0 0 0 ? I< 11:33 0:00 \_ [kworker/1:1H] root 29498 0.0 0.0 0 0 ? I< 11:32 0:00 \_ [kworker/3:2H] root 29465 0.0 0.0 0 0 ? I< 11:32 0:00 \_ [kworker/0:1H] root 29451 0.0 0.0 0 0 ? I 11:31 0:00 \_ [kworker/3:0-events] root 29441 0.0 0.0 0 0 ? I 11:31 0:00 \_ [kworker/2:0-mm_percpu_wq] root 29457 0.0 0.0 0 0 ? I< 11:31 0:00 \_ [kworker/2:0H-kblockd] root 29390 0.0 0.0 0 0 ? I 11:30 0:00 \_ [kworker/1:2-mm_percpu_wq] root 29403 0.0 0.0 0 0 ? I 11:30 0:00 \_ [kworker/0:0-events] root 29302 0.0 0.0 0 0 ? I 11:29 0:00 \_ [kworker/u8:2-events_unbound] root 28976 0.0 0.0 0 0 ? I< 11:27 0:00 \_ [kworker/1:2H] root 28832 0.0 0.0 0 0 ? I 11:25 0:00 \_ [kworker/1:0-mm_percpu_wq] root 28620 0.0 0.0 0 0 ? I 11:21 0:00 \_ [kworker/0:1-events_power_efficient] root 28137 0.0 0.0 0 0 ? I 11:12 0:00 \_ [kworker/3:2] root 28013 0.0 0.0 0 0 ? I 11:09 0:00 \_ [kworker/u8:0-cfg80211] root 27744 0.0 0.0 0 0 ? I 11:05 0:00 \_ [kworker/2:2-mm_percpu_wq]
% SWAP Memory

% RAM Memory

% CPU LOAD 5min

One solution to limit this “memory hog” would be to open/close the browser during each session. There was a thread where it was suggested to use crontab entry to periodically stop/start the browser or even reboot RPI.
Is my situation unique?
If not, what other solutions are possible to stop memory hogs?
Your feedback is most appreciated.