[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: smart fans



On 8/28/21 3:55 PM, Emanuel Berg wrote:
David Christensen wrote:

You want to watch the test run, so that you can monitor
progress, make adjustments, and/or stop it if things
go badly.

Don't worry about it...

Here are the 20 first lines of the output:

time, governor, processes, CPU temperature C, system load, CPU fan speed RPM, CPU frequencies MHz
1630072652, conservative, 157, 33.25, 0.00, 0, 1685.535 1416.164 3029.758 1415.421
1630072712, conservative, 157, 33.25, 0.00, 0, 1537.245 1402.528 3118.173 1286.090
1630072772, conservative, 157, 33.25, 0.06, 0, 1426.077 1356.078 1358.613 3049.180
1630072778, conservative, 158, 44.5, 0.14, 0, 2056.087 1620.633 3871.754 1571.838
1630072784, conservative, 158, 44.75, 0.21, 0, 2041.653 1563.035 3872.665 1599.792
1630072790, conservative, 158, 44.75, 0.55, 0, 1706.676 1610.757 3870.038 2752.512
1630072796, conservative, 158, 45, 0.59, 0, 2313.482 3446.144 3869.807 2325.238
1630072802, conservative, 158, 45, 0.62, 0, 2169.143 1572.604 3873.451 1564.032
1630072808, conservative, 158, 45.25, 0.65, 0, 1969.447 1719.104 3869.058 2789.924
1630072814, conservative, 158, 45.25, 0.70, 0, 1924.617 2776.821 3872.058 1615.040
1630072821, conservative, 158, 45.25, 0.73, 0, 2553.058 1642.274 3870.106 1636.617
1630072827, conservative, 158, 45.25, 0.75, 0, 2509.193 1643.395 3875.505 1624.528
1630072833, conservative, 158, 45.25, 0.77, 0, 2542.012 1619.204 3873.868 1608.061
1630072839, conservative, 159, 48.5, 0.87, 0, 2234.947 1624.853 3846.943 3846.329
1630072845, conservative, 159, 48.875, 1.04, 0, 2463.900 1649.777 3845.442 3845.337
1630072851, conservative, 159, 47.125, 1.12, 0, 2171.265 3848.972 3849.260 1606.988
1630072857, conservative, 159, 47, 1.19, 0, 1743.183 3846.028 3845.345 2728.237
1630072863, conservative, 159, 47, 1.26, 0, 2218.865 3846.552 3846.422 1573.131

The entire file:

   https://dataswamp.org/~incal/ebchw/cpu.txt


That is a start.


Feeding the raw data into LibreOffice Calc was problematic -- header line field names do not have a one-to-one with data line field values. I reworked the header line as follows:

time, governor, processes, CPU_temperature, system_load, CPU_fan_speed, core1_freq, core2_freq, core3_freq, core4_freq

Please fix the header line.


Looking at the test procedure outline I posted previously:

On 8/23/21 6:51 PM, David Christensen wrote:
> For a CPU with N cores (N=4 for an AMD Ryzen 3 3200G?) and an otherwise
> unloaded system, your test procedure should be something like:
>
>     loop over governor choices
>       set governor
>        loop 3 times
>          sleep 60 seconds
>          print statistics
>        endloop
>       loop from 1 to N
>         start background process
>         loop 10 times
>           sleep 6 seconds
>           print statistics
>         endloop
>       endloop
>       kill all background processes
>     endloop
>
>
> "print statistics" should include time, governor setting, number of
> background processes running, and CPU temperature.  If would be nice to
> also include system loading percent, CPU frequency, and CPU fan speed.


The system *must* be otherwise idle before and during the test. The data indicates it was not.


The "CPU_fan_speed" was 0 throughout. Your data collection code for that field value is broken.


There is supposed to be a cool-down delay at the start of each governor sub-run. My WAG was 3 minutes. Your test did 2 minutes (off by 1 error).


After each loading cycle, the load processes must be killed. The data indicates that they were not. Instead, your overall test accumulated 4 units of load for 6 governors, producing a system load of 24 (!). This is what I meant when I said "stop it if things go badly". (But, the fact that the CPU did not throttle or malfunction with ~15 minutes of full load indicates that the cooling is good.)


Please correct your test script and try again.  Then tune it:

- Cool-down delay -- the output variable values (CPU_temperature, system_load, CPU_fan_speed, core1_freq, core2_freq, core3_freq, core4_freq) must be stable when each governor cool-down delay ends (3 loops * 60 seconds). Furthermore, they must be consistent across all six governor sub-runs. Adjust the cool-down delay loop count and/or time increment if and as required. Or, or add code to find stability and make the decision.

- Incremental load period -- the output variables must have reached their steady-state values when each incremental load period ends (10 loops * 6 seconds). Adjust and/or code accordingly.


Have you isolated and identified the primary noise source(s)? Have you quantified them (e.g. sound measurement)? Can you get that data into your test script?


David


Reply to: