{"id":189,"date":"2025-02-23T12:23:19","date_gmt":"2025-02-23T12:23:19","guid":{"rendered":"https:\/\/thevadasan.com\/?p=189"},"modified":"2025-02-16T12:37:11","modified_gmt":"2025-02-16T12:37:11","slug":"optimizing-power-consumption-on-my-home-server-part-2-applying-power-saving-settings-permanently","status":"publish","type":"post","link":"https:\/\/thevadasan.com\/?p=189","title":{"rendered":"Optimizing Power Consumption on My Home Server: Part 2 &#8211; Applying Power-Saving Settings Permanently"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Making PowerTOP Optimizations Persistent<\/h2>\n\n\n\n<p>In Part 1, we explored how PowerTOP works and how to analyze power consumption on a Linux system. Now, in Part 2, we&#8217;ll focus on applying PowerTOP\u2019s recommendations permanently, ensuring that our power optimizations persist after reboots.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"701\" height=\"661\" data-id=\"191\"  src=\"https:\/\/thevadasan.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-16-225106.png\" alt=\"\" class=\"wp-image-191\" srcset=\"https:\/\/thevadasan.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-16-225106.png 701w, https:\/\/thevadasan.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-16-225106-300x283.png 300w, https:\/\/thevadasan.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-16-225106-600x566.png 600w\" sizes=\"(max-width: 701px) 100vw, 701px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"706\" data-id=\"192\"  src=\"https:\/\/thevadasan.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-16-225316-1024x706.png\" alt=\"\" class=\"wp-image-192\" srcset=\"https:\/\/thevadasan.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-16-225316-1024x706.png 1024w, https:\/\/thevadasan.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-16-225316-300x207.png 300w, https:\/\/thevadasan.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-16-225316-768x530.png 768w, https:\/\/thevadasan.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-16-225316-600x414.png 600w, https:\/\/thevadasan.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-16-225316.png 1086w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"754\" data-id=\"193\"  src=\"https:\/\/thevadasan.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-16-230901-1024x754.png\" alt=\"\" class=\"wp-image-193\" srcset=\"https:\/\/thevadasan.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-16-230901-1024x754.png 1024w, https:\/\/thevadasan.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-16-230901-300x221.png 300w, https:\/\/thevadasan.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-16-230901-768x565.png 768w, https:\/\/thevadasan.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-16-230901-600x442.png 600w, https:\/\/thevadasan.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-16-230901.png 1117w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Applying Power-Saving Settings Automatically<\/h2>\n\n\n\n<p>PowerTOP provides temporary tuning recommendations that reset upon reboot. To make these changes permanent, we need to apply them automatically at system startup.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Enable Runtime Power Management for PCI Devices<\/strong><\/h3>\n\n\n\n<p>To enable runtime power management for all PCI devices, run:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">for d in \/sys\/bus\/pci\/devices\/*\/power\/control; do echo auto | sudo tee $d; done<\/code><\/pre>\n\n\n\n<p>To apply this automatically at boot, create a systemd service:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo nano \/etc\/systemd\/system\/pci_pm.service<\/code><\/pre>\n\n\n\n<p>Add the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">[Unit]\nDescription=Enable PCI Runtime Power Management\nAfter=multi-user.target\n\n[Service]\nType=oneshot\nExecStart=\/bin\/sh -c 'for d in \/sys\/bus\/pci\/devices\/*\/power\/control; do echo auto &gt; $d; done'\nRemainAfterExit=yes\n\n[Install]\nWantedBy=multi-user.target<\/code><\/pre>\n\n\n\n<p>Enable it:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo systemctl daemon-reload\nsudo systemctl enable pci_pm\nsudo systemctl start pci_pm<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Enable SATA Link Power Management<\/strong><\/h3>\n\n\n\n<p>To enable SATA link power management:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">for d in \/sys\/class\/scsi_host\/host*\/link_power_management_policy; do echo med_power_with_dipm | sudo tee $d; done<\/code><\/pre>\n\n\n\n<p>For persistence:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo nano \/etc\/systemd\/system\/sata_pm.service<\/code><\/pre>\n\n\n\n<p>Paste:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">[Unit]\nDescription=Enable SATA Link Power Management\nAfter=multi-user.target\n\n[Service]\nType=oneshot\nExecStart=\/bin\/sh -c 'for d in \/sys\/class\/scsi_host\/host*\/link_power_management_policy; do echo med_power_with_dipm &gt; $d; done'\nRemainAfterExit=yes\n\n[Install]\nWantedBy=multi-user.target<\/code><\/pre>\n\n\n\n<p>Then enable it:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo systemctl daemon-reload\nsudo systemctl enable sata_pm\nsudo systemctl start sata_pm<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Enable Disk Power Management<\/strong><\/h3>\n\n\n\n<p>Enable runtime power management for disks:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">for d in \/sys\/block\/sd*\/device\/power\/control; do echo auto | sudo tee $d; done<\/code><\/pre>\n\n\n\n<p>For persistence:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo nano \/etc\/systemd\/system\/disk_pm.service<\/code><\/pre>\n\n\n\n<p>Paste:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">[Unit]\nDescription=Enable SATA Link Power Management\nAfter=multi-user.target\n\n[Service]\nType=oneshot\nExecStart=\/bin\/sh -c 'for d in \/sys\/class\/scsi_host\/host*\/link_power_management_policy; do echo med_power_with_dipm &gt; $d; done'\nRemainAfterExit=yes\n\n[Install]\nWantedBy=multi-user.target<\/code><\/pre>\n\n\n\n<p>Then enable it:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">sudo systemctl daemon-reload\nsudo systemctl enable sata_pm\nsudo systemctl start sata_pm<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Disable NMI Watchdog<\/strong><\/h3>\n\n\n\n<p>To disable the NMI watchdog (which can prevent deep CPU sleep states):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">echo 0 | sudo tee \/proc\/sys\/kernel\/nmi_watchdog<\/code><\/pre>\n\n\n\n<p>For persistence:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">sudo nano \/etc\/sysctl.d\/disable_nmi_watchdog.conf<\/code><\/pre>\n\n\n\n<p>Add:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">kernel.nmi_watchdog = 0<\/code><\/pre>\n\n\n\n<p>Apply:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">sudo sysctl --system<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. Automate PowerTOP\u2019s Auto-Tuning Feature<\/strong><\/h3>\n\n\n\n<p>To let PowerTOP apply its optimizations automatically at boot:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">sudo nano \/etc\/systemd\/system\/powertop.service<\/code><\/pre>\n\n\n\n<p>Add:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">[Unit]\nDescription=Powertop tunings\nAfter=multi-user.target\n\n[Service]\nExecStart=\/usr\/sbin\/powertop --auto-tune\nRemainAfterExit=yes\n\n[Install]\nWantedBy=multi-user.target<\/code><\/pre>\n\n\n\n<p>Then enable it:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">sudo systemctl daemon-reload\nsudo systemctl enable powertop\nsudo systemctl start powertop<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Final Thoughts<\/strong><\/h2>\n\n\n\n<p>By applying these changes, your home server (or any Linux system) will now retain PowerTOP\u2019s optimizations after every reboot. You should notice lower power consumption and possibly reduced heat and noise levels.<\/p>\n\n\n\n<p>Have you tried optimizing your server\u2019s power usage? Let me know your experience in the comments!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Making PowerTOP Optimizations Persistent In Part 1, we explored how PowerTOP works and how to analyze power consumption on a Linux system. Now, in Part 2, we&#8217;ll focus on applying PowerTOP\u2019s recommendations permanently, ensuring that our power optimizations persist after reboots. Applying Power-Saving Settings Automatically PowerTOP provides temporary tuning recommendations that reset upon reboot. To [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":195,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[17,18,34],"tags":[],"_links":{"self":[{"href":"https:\/\/thevadasan.com\/index.php?rest_route=\/wp\/v2\/posts\/189"}],"collection":[{"href":"https:\/\/thevadasan.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thevadasan.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thevadasan.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thevadasan.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=189"}],"version-history":[{"count":4,"href":"https:\/\/thevadasan.com\/index.php?rest_route=\/wp\/v2\/posts\/189\/revisions"}],"predecessor-version":[{"id":199,"href":"https:\/\/thevadasan.com\/index.php?rest_route=\/wp\/v2\/posts\/189\/revisions\/199"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thevadasan.com\/index.php?rest_route=\/wp\/v2\/media\/195"}],"wp:attachment":[{"href":"https:\/\/thevadasan.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thevadasan.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thevadasan.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}