Skip to main content

My new home server (fight with noise and temperature monitoring)

Hardware

I've got another new PC for home purpose and decided to make a home server for my sysadmin and programming tasks.  Also, my old PC  is based on AMD 6-cores phenom and six cores is a good value for virtualization. Are you ready to have a cloud at home? Yes, I'm. I bought a special case  (2U size with six places for hard drives. )
This case also has 3 80mm coolers and I hope this a good way to make cold system. Standart PC power supply is placed at a front side and the power cable is going from the front side to the back side. 







My Chiftec power supply has a lot of cord and it is impossible to set up all 6 drives inside. It is no place for the power cord. At this moment I think that power supply with unattachable cord is a good choice.  I spend one drive case for my cables. Another one issue is a noise of low-cost chinese coolers.  They generate a good airstream but noise was unacceptable. I cut  red wire and added a resistor (22 Omh) and 33 Omh to another one cooler. 



Checking temperature.

For receiving temperature linux has sensors application. Installation procedure is a really simple in Debian :

root@debianserver:/home/serg# aptitude search lm-sensors
p   lm-sensors                                                                      - utilities to read temperature/voltage/fan sensors                                         
root@debianserver:/home/serg# aptitude  install  lm-sensors
The following NEW packages will be installed:
  lm-sensors 
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 112 kB of archives. After unpacking 394 kB will be used.
Get: 1 http://ftp.ua.debian.org/debian stretch/main amd64 lm-sensors amd64 1:3.4.0-4 [112 kB]
Fetched 112 kB in 0s (300 kB/s)    
Selecting previously unselected package lm-sensors.
(Reading database ... 40355 files and directories currently installed.)
Preparing to unpack .../lm-sensors_1%3a3.4.0-4_amd64.deb ...
Unpacking lm-sensors (1:3.4.0-4) ...
Setting up lm-sensors (1:3.4.0-4) ...
Created symlink /etc/systemd/system/multi-user.target.wants/lm-sensors.service → /lib/systemd/system/lm-sensors.service.
Processing triggers for systemd (232-25+deb9u3) ...
Processing triggers for man-db (2.7.6.1-2) ...
                                      

Checking temperature is easy too:


root@debianserver:/home/serg# sensors
atk0110-acpi-0
Adapter: ACPI interface
Vcore Voltage:      +0.95 V  (min =  +0.80 V, max =  +1.60 V)
+3.3V Voltage:      +3.36 V  (min =  +2.97 V, max =  +3.63 V)
+5V Voltage:        +4.98 V  (min =  +4.50 V, max =  +5.50 V)
+12V Voltage:      +11.98 V  (min = +10.20 V, max = +13.80 V)
CPU Fan Speed:     4090 RPM  (min =  600 RPM, max = 7200 RPM)
Chassis Fan Speed: 1985 RPM  (min =  600 RPM, max = 7200 RPM)
Power Fan Speed:   2766 RPM  (min =  600 RPM, max = 7200 RPM)
CPU Temperature:    +41.0°C  (high = +60.0°C, crit = +95.0°C)
MB Temperature:     +40.0°C  (high = +45.0°C, crit = +75.0°C)

fam15h_power-pci-00c4
Adapter: PCI adapter
power1:       28.69 W  (crit = 125.02 W)

k10temp-pci-00c3
Adapter: PCI adapter
temp1:        +23.4°C  (high = +70.0°C)
                       (crit = +70.0°C, hyst = +67.0°C)


Power Fan has 33 Omh resisitor and speed 1985 RPM, Chassis Fan has 22 Omh resistor and speed 2766 RPM. At this moment I hear CPU fan only.  I would like to speed down it by fancontrol.  But at this moment I dont known temperatures  of my hdd.


rroot@debianserver:/home/serg# aptitude search hddtemp
p   hddtemp                                                                         - hard drive temperature monitoring utility                                                 
root@debianserver:/home/serg# aptitude install hddtemp
The following NEW packages will be installed:
  hddtemp 
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 57.8 kB of archives. After unpacking 184 kB will be used.
Get: 1 http://ftp.ua.debian.org/debian stretch/main amd64 hddtemp amd64 0.3-beta15-52+b1 [57.8 kB]
Fetched 57.8 kB in 0s (269 kB/s)   
Preconfiguring packages ...
Selecting previously unselected package hddtemp.
(Reading database ... 40391 files and directories currently installed.)
Preparing to unpack .../hddtemp_0.3-beta15-52+b1_amd64.deb ...
Unpacking hddtemp (0.3-beta15-52+b1) ...
Setting up hddtemp (0.3-beta15-52+b1) ...
Processing triggers for systemd (232-25+deb9u3) ...
Processing triggers for man-db (2.7.6.1-2) ...

root@debianserver:/home/serg# hddtemp /dev/sdb
/dev/sdb: ST31000520AS: 36°C

 Fancontrol

Fancontrol has ability check temperature , cooler's speed and make a simple managment using config file.  Setting this  up has three steps: selecting sensors, creating config file and  power fancontrol on. 




root@debianserver:/etc# sensors-detect
# sensors-detect revision 6284 (2015-05-31 14:00:33 +0200)
# Board: ASUSTeK Computer INC. M5A88-M EVO
# Kernel: 4.9.0-6-amd64 x86_64
# Processor: AMD FX(tm)-6350 Six-Core Processor (21/2/0)

This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you're doing.

Some south bridges, CPUs or memory controllers contain embedded sensors.
Do you want to scan for them? This is totally safe. (YES/no): yes
Module cpuid loaded successfully.
Silicon Integrated Systems SIS5595...                       No
VIA VT82C686 Integrated Sensors...                          No
AMD Family 11h thermal sensors...                           No
AMD Family 12h and 14h thermal sensors...                   No
AMD Family 15h thermal sensors...                           Success!
    (driver `k10temp')
AMD Family 16h thermal sensors...                           No
AMD Family 15h power sensors...                             Success!
    (driver `fam15h_power')
AMD Family 16h power sensors...                             No

Found `ITE IT8721F/IT8758E Super IO Sensors'                Success!
    (address 0x290, driver `it87')
Probing for Super-I/O at 0x4e/0x4f
Trying family `National Semiconductor/ITE'...               No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               No
Trying family `ITE'...                                      No

Some systems (mainly servers) implement IPMI, a set of common interfaces
through which system health data may be retrieved, amongst other things.
We first try to get the information from SMBIOS. If we don't find it
there, we have to read from arbitrary I/O ports to probe for such
interfaces. This is normally safe. Do you want to scan for IPMI
interfaces? (YES/no): yes
Probing for `IPMI BMC KCS' at 0xca0...                      No
Probing for `IPMI BMC SMIC' at 0xca8...                     No

Some hardware monitoring chips are accessible through the ISA I/O ports.
We have to write to arbitrary I/O ports to probe them. This is usually
safe though. Yes, you do have ISA I/O ports even if you do not have any
ISA slots! Do you want to scan the ISA I/O ports? (yes/NO): no

Lastly, we can probe the I2C/SMBus adapters for connected hardware
monitoring devices. This is the most risky part, and while it works
reasonably well on most systems, it has been reported to cause trouble
on some systems.
Do you want to probe the I2C/SMBus adapters now? (YES/no): 
Using driver `i2c-piix4' for device 0000:00:14.0: ATI Technologies Inc SB600/SB700/SB800 SMBus
Module i2c-dev loaded successfully.


Now follows a summary of the probes I have just done.
Just press ENTER to continue: 

Driver `k10temp' (autoloaded):
  * Chip `AMD Family 15h thermal sensors' (confidence: 9)

Driver `fam15h_power' (autoloaded):
  * Chip `AMD Family 15h power sensors' (confidence: 9)

Driver `it87':
  * ISA bus, address 0x290
    Chip `ITE IT8721F/IT8758E Super IO Sensors' (confidence: 9)

To load everything that is needed, add this to /etc/modules:
#----cut here----
# Chip drivers
it87
#----cut here----
If you have some drivers built into your kernel, the list above will
contain too many modules. Skip the appropriate ones!

Do you want to add these lines automatically to /etc/modules? (yes/NO)

Unloading i2c-dev... OK
Unloading cpuid... OK

root@debianserver:/etc# sensors -s
root@debianserver:/etc# pwmconfig 
# pwmconfig revision 6243 (2014-03-20)
This program will search your sensors for pulse width modulation (pwm)
controls, and test each one to see if it controls a fan on
your motherboard. Note that many motherboards do not have pwm
circuitry installed, even if your sensor chip supports pwm.

We will attempt to briefly stop each fan using the pwm controls.
The program will attempt to restore each fan to full speed
after testing. However, it is ** very important ** that you
physically verify that the fans have been to full speed
after the program has completed.

/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed

 sensors are detected but pwmconfig reports error.  Log above inform that it87 need to be added to modules. But direct module loading  failed:


root@debianserver:/etc# modprobe it87
modprobe: ERROR: could not insert 'it87': Device or resource busy
  
updating /etc/default/grub  by next string fixes this issue:
GRUB_CMDLINE_LINUX="acpi_enforce_resources=lax"

 pwmconfig is working ok now: 

root@debianserver:/home/serg#  /usr/sbin/pwmconfig 
# pwmconfig revision 6243 (2014-03-20)
This program will search your sensors for pulse width modulation (pwm)
controls, and test each one to see if it controls a fan on
your motherboard. Note that many motherboards do not have pwm
circuitry installed, even if your sensor chip supports pwm.

We will attempt to briefly stop each fan using the pwm controls.
The program will attempt to restore each fan to full speed
after testing. However, it is ** very important ** that you
physically verify that the fans have been to full speed
after the program has completed.

Found the following devices:
   hwmon0 is it8721
   hwmon1 is fam15h_power
   hwmon2 is k10temp

Found the following PWM controls:
   hwmon0/pwm1           current value: 12
hwmon0/pwm1 is currently setup for automatic speed control.
In general, automatic mode is preferred over manual mode, as
it is more efficient and it reacts faster. Are you sure that
you want to setup this output for manual control? (n) 
   hwmon0/pwm2           current value: 106
hwmon0/pwm2 is currently setup for automatic speed control.
In general, automatic mode is preferred over manual mode, as
it is more efficient and it reacts faster. Are you sure that
you want to setup this output for manual control? (n) 
There are no usable PWM outputs.


Turning on  fancontrol and checking result

 Result of the previous steps is creating /etc/fancontrol config file .  Now we can turn on fancontrol and check temperature and cooler's speed. 





root@debianserver:/home/serg# sensors | egrep  "(RPM|temp)"
k10temp-pci-00c3
temp1:        +24.4°C  (high = +70.0°C)
fan1:        6750 RPM  (min =   11 RPM)
fan2:        2721 RPM  (min =   50 RPM)
fan3:        2860 RPM  (min =   11 RPM)
temp1:        +42.0°C  (low  = +87.0°C, high = +23.0°C)  ALARM  sensor = thermistor
temp2:        +40.0°C  (low  = +90.0°C, high = +52.0°C)  sensor = thermistor
temp3:       -128.0°C  (low  = +115.0°C, high = +42.0°C)  sensor = disabled
root@debianserver:/home/serg# service fancontrol start
root@debianserver:/home/serg# 
root@debianserver:/home/serg# 
root@debianserver:/home/serg# sensors | egrep  "(RPM|temp)"
k10temp-pci-00c3
temp1:        +24.4°C  (high = +70.0°C)
fan1:        1132 RPM  (min =   11 RPM)
fan2:        2027 RPM  (min =   50 RPM)
fan3:        2777 RPM  (min =   11 RPM)
temp1:        +42.0°C  (low  = +87.0°C, high = +23.0°C)  ALARM  sensor = thermistor
temp2:        +39.0°C  (low  = +90.0°C, high = +52.0°C)  sensor = thermistor
temp3:       -128.0°C  (low  = +115.0°C, high = +42.0°C)  sensor = disabled
root@debianserver:/home/serg# sensors | egrep  "(RPM|temp)"

Fancontrol slows down CPU Fan from 6750 RPM to 1132 RPM  and  one of the case's cooler has new speed  2027 RPM (previous 2721 RPM)
Not bad for 2 hours work! 

Comments

Popular posts from this blog

Upgrade postgres 9.4 to 9.6 at Debian linux

I'm using virtual server based on Debian Linux for some my free projects.  One of them is based on Postgres with PostGIS extension.   This windy rainy day is a good time for executing some upgrade. Also I would like to add partman extension for partituoning.
Checking new version. Update package list :
aptitude update Get: 1 http://ftp.debian.org/debian jessie-updates InRelease [145 kB] Get: 2 http://security.debian.org stretch/updates InRelease [62.9 kB] Get: 3 http://security.debian.org jessie/updates InRelease [63.1 kB]
 Check for new version:


dpkg-query -l postgresql* Desired=Unknown/Install/Remove/Purge/Hold| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)||/ Name Version Ar…

Postfix can not start via systemd (simple fix)

Solving problem related to systemd process I like postfix.   This is really smart and secure mail server. I'm helping above  dozen clients around the world and  tunning  postfix is really fun task. This morning I was downgrading postfix  to the stable version for one of the my friends and come across interesting issue. 
root@newserver:/etc/init.d# systemctl status postfix ● postfix.service Loaded: masked (/dev/null; bad) Active: inactive (dead) since вт 2017-06-13 14:35:41 EEST; 1h 48min ago Main PID: 25145 (code=exited, status=0/SUCCESS)чер 13 14:47:09 newserver systemd[1]: Stopped postfix.service.чер 13 14:47:29 newserver systemd[1]: Stopped postfix.service.чер 13 14:58:22 newserver systemd[1]: Stopped postfix.service.чер 13 14:58:23 newserver systemd[1]: Stopped postfix.service.чер 13 15:05:20 newserver systemd[1]: Stopped postfix.service.чер 13 15:29:06 newserver systemd[1]: Stopped postfix.service.чер 13 15:29:06 newserver systemd[1]: Stopped postfix.service.чер 13 15:…

Small python script for monitoring MySQL performance

I have few services which use MySQL as database server. I would like to have information about load in PNG  image  or  in Cacti app.
MySQL   has  performance information at 'SHOW STATUS' command.

Values  which  are monitored : 
 threads_running, threads_connected, thread_cached, slow_queries
 Of course,  it is really easy to add more variables.

Connection to MySQL is accomplished by MySQLdb  module. Typical example of usage is below :
import MySQLdb mydb = MySQLdb.connect(host = 'hostname', user = 'username', password = 'secret', database = 'mysatabase' ) mycursor = mydb.cursor() mycursor.execute('SQL command') sqlresult = cur.fetchall()
Storing data in rrd file is aviable via rrdtools package. This one is present in debian and Centos OS. example of creating file is below: import rrdtool rrdtool.create("myfile.rrd" , "DS:value1:datatype:hea…