Help Quieting My Supermicro Servers

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

Iaroslav

Member
Aug 23, 2017
112
24
18
37
Kyiv
I tried all the settings through IPMI on SC847 - not much help. Noctua fans or controller (NA-FC1) are damn pricey and newer fan "caddies" just won't fit them. And you must be careful not to set the speed too low - HDDs may get hot very fast.
This cheapo PWM controller just did the job with default supermicro fans!
Wide enough manual regulation range and probably you may modify this or find a similar solution to auto-adjust RPM by a temperature sensor.
The only cons: you'll need a cable 4 Pin Molex to 6 Pin PCI-Express PCIE Video Card Power Converter Adapter Cable | eBay and half-cut plastic on each FAN connector to fit.
 
  • Like
Reactions: Eta_Carinae

mattventura

Active Member
Nov 9, 2022
449
218
43
Someone just told me the fanwall on the 4U is seperate from what ipmitool controls.
And they said I could likely just remove the entire fanwall, and put in noctuas?
Is it possible that some of the fans are plugged into one of the backplanes rather than the mobo? If you have enough fan headers, you can move them all to the MB.

You can also do what I do and just not run it with all 7 fans.
 

Deligator

New Member
Jul 31, 2023
2
3
3
I had a similar problem with a recently acquired SYS-5019S-TN4. It was running LOUD at idle. I could get the IPMI raw commands to get it to a healthy noise level .. but then it would stay there when under load .. and so I figured I would put together a little script. It is working for me and thought it was a good little give back to the world as I am only as good as the information I get .. and forums like this help a mediocre techie way outperform his gifts. This box was in a windows environment so I put it together as a PowerShell Script. feel free to use and share. I might go back and do a full PID loop for it but as of now I just go into Quiet Mode when the CPU is below the threshold (currently 50C) and goes into "standard" fan mode (ramps from 45% to 100% based on IPMI temps) above a threshold (currently 53C).. then when it drops back below the quiet temp it goes back to the quiet mode.

Code:
# Function to get CPU temperature using IPMI
 function GetCpuTemperatureFromIPMI {
     $ipmiOutput = & "ipmicfg-win.exe" -sdr
     $cpuTemp = $ipmiOutput | Where-Object { $_ -match '\(4\) CPU Temp\s+\|\s+(\d+(?:\.\d+)?)C/' } | ForEach-Object { $matches[1] }
     return [double]$cpuTemp

 }

 # Function to set fan mode to auto using IPMICFG-Win.exe
 function SetFanModeAuto() {
     Start-Process -FilePath "IPMICFG-Win.exe" -ArgumentList "-fan 0" -Wait
 }

 # Function to set fan mode to quiet using IPMICFG-Win.exe
 function SetFanModeQuiet() {
     Start-Process -FilePath "IPMICFG-Win.exe" -ArgumentList "-fan 1" -Wait
     Start-Process -FilePath "IPMICFG-Win.exe" -ArgumentList "-raw 0x30 0x70 0x66 0x01 0x00 0x06" -Wait
 }

 # Main script logic
 try {
     $currentFanMode = $null  # Variable to store the current fan mode
     while ($true) {
         $cpuTemperature = GetCpuTemperatureFromIPMI

         if ($currentFanMode -ne 1 -and $cpuTemperature -lt 50) {
             SetFanModeQuiet
             $currentFanMode = 1  # Set the current fan mode to quiet (1)
             Write-Host "CPU temperature is below 50°C. Fan mode set to quiet."
         } elseif ($currentFanMode -ne 0 -and $cpuTemperature -ge 53) {
             SetFanModeAuto
             $currentFanMode = 0  # Set the current fan mode to auto (0)
             Write-Host "CPU temperature is above 53°C. Fan mode set to auto."
         }

         # Wait for 20 seconds before the next check
         Start-Sleep -Seconds 20
     }
 } catch {
     Write-Host "Error occurred: $_"
 }
 
  • Like
Reactions: Eta_Carinae