{"id":27705,"date":"2020-10-07T18:41:41","date_gmt":"2020-10-07T16:41:41","guid":{"rendered":"https:\/\/pi3g.com\/?p=27705"},"modified":"2020-10-07T18:41:41","modified_gmt":"2020-10-07T16:41:41","slug":"stress-testing-a-raspberry-pi-4-with-picockpit-temperature-monitoring","status":"publish","type":"post","link":"https:\/\/pi3g.com\/de\/stress-testing-a-raspberry-pi-4-with-picockpit-temperature-monitoring\/","title":{"rendered":"Stresstest eines Raspberry Pi 4 mit PiCockpit - Temperatur\u00fcberwachung"},"content":{"rendered":"<p>Using the new <a href=\"https:\/\/picockpit.com\/\">PiCockpit<\/a> v2.0 release, you can monitor the current SoC temperature of the Pi in an easy to use webinterface (in PiStats).<\/p>\n<p>Simply click on <strong>PiStats, <\/strong>and enter temp into the search:<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image-28.png\"><img loading=\"lazy\" decoding=\"async\" width=\"208\" height=\"244\" title=\"image\" style=\"margin: 0px; display: inline; background-image: none;\" alt=\"image\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image_thumb-27.png\" border=\"0\"><\/a><\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image-29.png\"><img loading=\"lazy\" decoding=\"async\" width=\"570\" height=\"332\" title=\"image\" style=\"display: inline; background-image: none;\" alt=\"image\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image_thumb-28.png\" border=\"0\"><\/a><\/p>\n<p>this will narrow the display down to just the SoC temperature. The temperature will be updated every second.<\/p>\n<p>I also recommend you to use the PiDoctor\u2019s System module, on auto-reload to monitor temperature limit, frequency cap and throttling events.<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image-30.png\"><img loading=\"lazy\" decoding=\"async\" width=\"303\" height=\"352\" title=\"image\" style=\"display: inline; background-image: none;\" alt=\"image\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image_thumb-29.png\" border=\"0\"><\/a><\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image-31.png\"><img loading=\"lazy\" decoding=\"async\" width=\"552\" height=\"100\" title=\"image\" style=\"display: inline; background-image: none;\" alt=\"image\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image_thumb-30.png\" border=\"0\"><\/a><\/p>\n<p>scroll down to see the throttling &amp; under-voltage view:<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image-32.png\"><img loading=\"lazy\" decoding=\"async\" width=\"553\" height=\"450\" title=\"image\" style=\"display: inline; background-image: none;\" alt=\"image\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image_thumb-31.png\" border=\"0\"><\/a><\/p>\n<p>This is the view you would like to see \u2013 the system stays within the temperature limits, there is no throttling \u2013 your Pi operates optimally. <\/p>\n<p>There are two different deviations from this: currently out of spec (e.g. is currently in under voltage) , or has been out of spec in the past (e.g. had undervoltage since last boot) \u2013 you can see both in this view.<\/p>\n<h2>Create a button to launch stress on the Pi on-demand<\/h2>\n<p>You will need the command line for this one.<\/p>\n<blockquote>\n<p>sudo apt-get update<\/p>\n<p>sudo apt-get install stress<\/p>\n<p>sudo nano \/etc\/picockpit-client\/apps\/com.picockpit\/picontrol\/modules\/user.json<\/p>\n<\/blockquote>\n<p>Enter the following configuration into the new file:<\/p>\n<blockquote>\n<p>{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;name&#8221;: &#8220;User commands&#8221;,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;icon&#8221;: &#8220;mdi-test-tube&#8221;,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;handle&#8221;: &#8220;user&#8221;,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;description&#8221;: &#8220;User commands for demo of PiControl&#8221;,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;commands&#8221;: {<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;stress&#8221;: {<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;name&#8221;: &#8220;start stress&#8221;,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;icon&#8221;: &#8220;mdi-fire&#8221;,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;description&#8221;: &#8220;Puts stress on the Pi CPU to heat it up&#8221;,<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;command&#8221;: [&#8220;stress&#8221;, &#8220;&#8211;cpu&#8221;, &#8220;80&#8221;]<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br \/>\n}<\/p>\n<\/blockquote>\n<p>Note: Unfortunately WordPress messes up code formatting and characters. Please refer to this screenshot for how the text should look like:<\/p>\n<p>Tip: you can see a <a href=\"https:\/\/cdn.materialdesignicons.com\/4.9.95\/\">list of all available icons here<\/a> (Material Design Icons).<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image-33.png\"><img loading=\"lazy\" decoding=\"async\" width=\"663\" height=\"268\" title=\"image\" style=\"display: inline; background-image: none;\" alt=\"image\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image_thumb-32.png\" border=\"0\"><\/a><\/p>\n<p>Save with Ctrl + O, Exit with Ctrl + X<\/p>\n<p>Then reload picockpit-client.<\/p>\n<blockquote>\n<p>sudo service picockpit-client reload<\/p>\n<\/blockquote>\n<p>In PiControl, a new panel with User commands should now appear:<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image-34.png\"><img loading=\"lazy\" decoding=\"async\" width=\"669\" height=\"520\" title=\"image\" style=\"display: inline; background-image: none;\" alt=\"image\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image_thumb-33.png\" border=\"0\"><\/a><\/p>\n<p>(no need to reload the website \u2013 it will appear by itself, if the Pi is online and the PiCockpit frontend has a connection).<\/p>\n<h1>A screenshot before starting<\/h1>\n<p>Here is a screenshot of the output of PiStats before starting Stress:<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image-35.png\"><img loading=\"lazy\" decoding=\"async\" width=\"667\" height=\"777\" title=\"image\" style=\"display: inline; background-image: none;\" alt=\"image\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image_thumb-34.png\" border=\"0\"><\/a><\/p>\n<p>note the low CPU Load at 1 % and the SoC temperature at 44.303 \u00b0C<\/p>\n<p>Now click the \u201cStart Stress\u201d button to start Stress. The PiControl screen will change like this:<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image-36.png\"><img loading=\"lazy\" decoding=\"async\" width=\"672\" height=\"617\" title=\"image\" style=\"display: inline; background-image: none;\" alt=\"image\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image_thumb-35.png\" border=\"0\"><\/a><\/p>\n<h1>PiStats with stress running<\/h1>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image-37.png\"><img loading=\"lazy\" decoding=\"async\" width=\"672\" height=\"784\" title=\"image\" style=\"display: inline; background-image: none;\" alt=\"image\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image_thumb-36.png\" border=\"0\"><\/a><\/p>\n<p>As you can see, the CPU load is immediately at 100 %, and the SoC temperature jumped to 61.835 \u00b0C. <\/p>\n<p>Using different parameters for stress will allow you to vary the load to model a realistic picture of the expected load. <\/p>\n<p>Additionally, you could load the VideoCore by playing a video for example \u2013 further heating the SoC. <\/p>\n<p>Continue to monitor the <strong>Throttling &amp; under-voltage <\/strong>section in PiDoctor\u2019s System module to see if such events occur. <\/p>\n<h1>Pushing the SoC<\/h1>\n<p>I put some bubble wrap on top of the Pi, to prevent efficient air circulation, and am also running a video off the Pi:<\/p>\n<blockquote>\n<p>omxplayer thais.mp4<\/p>\n<\/blockquote>\n<p>(You will need to provide your own video file for this, <a href=\"https:\/\/www.youtube.com\/watch?v=XJqqT_-tv1M\">I am using a download of this YouTube video<\/a>)<\/p>\n<p>These measures, taken together push the SoC to over 80 \u00b0C:<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image-38.png\"><img loading=\"lazy\" decoding=\"async\" width=\"651\" height=\"303\" title=\"image\" style=\"display: inline; background-image: none;\" alt=\"image\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image_thumb-37.png\" border=\"0\"><\/a><\/p>\n<p>This also shows up in PiDoctor:<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image-39.png\"><img loading=\"lazy\" decoding=\"async\" width=\"652\" height=\"555\" title=\"image\" style=\"display: inline; background-image: none;\" alt=\"image\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image_thumb-38.png\" border=\"0\"><\/a><\/p>\n<p>In this screenshot you see the ARM frequency cap being activated, to protect the SoC from damage by overheating.<\/p>\n<p>Further up in the System module, you can also check the current CPU frequency. In this case it was limited to 1 GHz:<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image-40.png\"><img loading=\"lazy\" decoding=\"async\" width=\"655\" height=\"584\" title=\"image\" style=\"display: inline; background-image: none;\" alt=\"image\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image_thumb-39.png\" border=\"0\"><\/a><\/p>\n<p>The cap is lifted when temperature drops, the frequency goes back to 1,5 GHz (on a Pi 4):<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image-41.png\"><img loading=\"lazy\" decoding=\"async\" width=\"657\" height=\"67\" title=\"image\" style=\"display: inline; background-image: none;\" alt=\"image\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image_thumb-40.png\" border=\"0\"><\/a><\/p>\n<p>But the fact that there had been a frequency capping event will remain until the next boot:<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image-42.png\"><img loading=\"lazy\" decoding=\"async\" width=\"645\" height=\"538\" title=\"image\" style=\"display: inline; background-image: none;\" alt=\"image\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image_thumb-41.png\" border=\"0\"><\/a><\/p>\n<p>Tip: in order to prevent overheating of the Pi 4 under massive workloads, we recommend to use the <a href=\"https:\/\/buyzero.de\/products\/flirc-gehause-fur-raspberry-pi-4?variant=31142645891174\">FLIRC case<\/a>. <\/p>\n<p><\/p>\n<h1>Stopping stress<\/h1>\n<p>Keep the window open where you started stress from \u2013 you will be able to stop it here by clicking on Stop process. <\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image-43.png\"><img loading=\"lazy\" decoding=\"async\" width=\"644\" height=\"350\" title=\"image\" style=\"display: inline; background-image: none;\" alt=\"image\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image_thumb-42.png\" border=\"0\"><\/a><\/p>\n<p>Note: you might get a warning message, but CPU usage will drop back to normal, indicating that stress was stopped:<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image-44.png\"><img loading=\"lazy\" decoding=\"async\" width=\"641\" height=\"216\" title=\"image\" style=\"display: inline; background-image: none;\" alt=\"image\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2020\/10\/image_thumb-43.png\" border=\"0\"><\/a><\/p>\n<p>This is the PiCockpit way of things \u2013 of course, you can also simply run stress from the command line (by SSH for example). <\/p>\n<p>Monitoring temperature this way is great to see the effects of different enclosures &amp; scenarios on your Raspberry Pi. <\/p>\n<p><\/p>\n<h2>Installing picockpit-client &amp; using picockpit<\/h2>\n<p>Click <a href=\"https:\/\/pi3g.com\/2020\/10\/07\/picockpit-v2-0-released-amazing-new-features\/\">here to read my previous blog post<\/a> about how to use the Raspberry Pi with <a href=\"https:\/\/picockpit.com\/\">PiCockpit<\/a>. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit der neuen Version PiCockpit v2.0 k\u00f6nnen Sie die aktuelle SoC-Temperatur des Pi in einem einfach zu bedienenden Webinterface (in PiStats) \u00fcberwachen. Klicken Sie einfach auf PiStats und geben Sie \"temp\" in die Suchfunktion ein: Dadurch wird die Anzeige auf die SoC-Temperatur eingeschr\u00e4nkt. Die Temperatur wird jede Sekunde aktualisiert. Ich empfehle auch...<\/p>","protected":false},"author":830,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[432],"tags":[897,900,896,898,899,894,895],"class_list":["post-27705","post","type-post","status-publish","format-standard","hentry","category-picockpit","tag-monitor-raspberry-pi-temperature","tag-new-picontrol-button","tag-over-temperature","tag-stress","tag-testing-raspberry-pi","tag-throttling","tag-under-voltage"],"_links":{"self":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/27705","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/users\/830"}],"replies":[{"embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/comments?post=27705"}],"version-history":[{"count":1,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/27705\/revisions"}],"predecessor-version":[{"id":27706,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/27705\/revisions\/27706"}],"wp:attachment":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/media?parent=27705"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/categories?post=27705"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/tags?post=27705"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}