在嵌入式系统中,我们会经常关注cpu的温度特别是再工业级的环境中,本章节我们就对这个方面做一个学习。
以6ul产品为例。
一般显示温度的命令为
cat /sys/class/thermal/thermal_zone0/temp
当然显示出来的温度单位不一样,需要乘以一定的倍数,都是整数倍,如有的带2个小数点等等,不一一赘述。
这样我们就可以使用脚本循环打印温度了,那么如何显示负载呢,
再不同的平台中负载一般可以通过三个命令来实现,top,vmstat,mpstat,根据不同的平台可能有所不同。再这里我们使用的是vmstat
显示效果如下:
[2023/6/5 10:35:17] procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
[2023/6/5 10:35:17] r b swpd free buff cache si so bi bo in cs us sy id wa st
[2023/6/5 10:35:17] 2 0 0 438316 4276 30128 0 0 29 2 117 212 2 62 36 0 0
[2023/6/5 10:35:18] 1 0 0 438320 4276 30128 0 0 0 0 138 138 2 98 0 0 0
[2023/6/5 10:35:19] 1 0 0 438320 4276 30128 0 0 0 0 122 122 3 97 0 0 0
一般我们可以使用md5算法,给cpu加负载,命令如下:
cat /dev/urandom | md5sum &
再不同的平台下有不同的反应,对于多cpu来讲,一般一条指令就将一个cpu负载占满,对于6ul来将,因为它是一个cpu,基本就是占用cpu 100%了。
那么我们如何控制呢,可以使用cpulimit,具体cpulimit的详细用法,这里不再说明,可参考我的其他文章。我们仅简单列举下
./cpulimit -p 900 -l 75
这样就是将进程id为900的进程占用cpu负载压缩到最大75%。
root@imx6ulevk:~# ./cpulimit -p 900 -l 50------------------------------------------------------------------------
[2023/6/5 10:34:03]
[2023/6/5 10:34:03] imx6ul platform test 73 begining!
[2023/6/5 10:34:03]
[2023/6/5 10:34:03] Process 900 found
[2023/6/5 10:34:03] 19:16:44 current temperature= 50.316 runtime= 932.90 343.84
[2023/6/5 10:34:03] 19:16:44 current freq= 528000
[2023/6/5 10:34:03] procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
[2023/6/5 10:34:03] r b swpd free buff cache si so bi bo in cs us sy id wa st
[2023/6/5 10:34:03] 2 0 0 438356 4220 30096 0 0 32 2 117 217 2 61 37 0 0
[2023/6/5 10:34:04] 1 0 0 438296 4220 30096 0 0 0 0 148 217 3 96 1 0 0
[2023/6/5 10:34:05] 1 0 0 438296 4220 30096 0 0 0 0 107 206 2 52 46 0 0
[2023/6/5 10:34:15] ------------------------------------------------------------------------
[2023/6/5 10:34:15]
[2023/6/5 10:34:15] imx6ul platform test 74 begining!
[2023/6/5 10:34:15] 19:16:57 current temperature= 48.600 runtime= 945.29 349.16
[2023/6/5 10:34:15] 19:16:57 current freq= 528000
[2023/6/5 10:34:15] procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
[2023/6/5 10:34:15] r b swpd free buff cache si so bi bo in cs us sy id wa st
[2023/6/5 10:34:15] 0 0 0 438336 4228 30096 0 0 31 2 117 217 2 61 37 0 0
[2023/6/5 10:34:16] 1 0 0 438296 4228 30100 0 0 0 0 115 206 0 50 50 0 0
[2023/6/5 10:34:17] 1 0 0 438296 4228 30100 0 0 0 0 111 192 0 58 42 0 0
[2023/6/5 10:34:21] root@imx6ulevk:~#
[2023/6/5 10:34:21] root@imx6ulevk:~#
[2023/6/5 10:34:21] root@imx6ulevk:~#
[2023/6/5 10:34:24] root@imx6ulevk:~# killall cat
[2023/6/5 10:34:24] root@imx6ulevk:~# f4aff7f9cf61c9e29d38d15e6f0aa485 -
[2023/6/5 10:34:25]
[2023/6/5 10:34:25] [2]+ Done cat /dev/urandom | md5sum
[2023/6/5 10:34:25] root@imx6ulevk:~#
[2023/6/5 10:34:25] root@imx6ulevk:~#
[2023/6/5 10:34:25] root@imx6ulevk:~#
[2023/6/5 10:34:25] root@imx6ulevk:~#
[2023/6/5 10:34:27] root@imx6ulevk:~# ./cpulimit -p 900 -l 75------------------------------------------------------------------------
[2023/6/5 10:34:27]
[2023/6/5 10:34:27] imx6ul platform test 75 begining!
[2023/6/5 10:34:28] 19:17:09 current temperature= 48.600 runtime= 957.57 354.97
[2023/6/5 10:34:28] 19:17:09 current freq= 528000
[2023/6/5 10:34:28] procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
[2023/6/5 10:34:28] r b swpd free buff cache si so bi bo in cs us sy id wa st
[2023/6/5 10:34:28] 0 0 0 438764 4244 30124 0 0 31 2 117 216 2 61 37 0 0
[2023/6/5 10:34:29] 0 0 0 438788 4244 30124 0 0 0 0 53 59 0 1 99 0 0
[2023/6/5 10:34:30] root@imx6ulevk:~# top 0 0 0 438788 4244 30124 0 0 0 0 44 52 0 0 100 0 0
[2023/6/5 10:34:32] root@imx6ulevk:~# cat /dev/urandom | md5sum &
[2023/6/5 10:34:32] [2] 2403
[2023/6/5 10:34:40] root@imx6ulevk:~# ------------------------------------------------------------------------
[2023/6/5 10:34:40]
[2023/6/5 10:34:40] imx6ul platform test 76 begining!
[2023/6/5 10:34:40] 19:17:21 current temperature= 50.316 runtime= 969.83 359.19
[2023/6/5 10:34:40] 19:17:21 current freq= 528000
[2023/6/5 10:34:40] procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
[2023/6/5 10:34:40] r b swpd free buff cache si so bi bo in cs us sy id wa st
[2023/6/5 10:34:40] 2 0 0 438352 4252 30124 0 0 31 2 117 215 2 61 37 0 0
[2023/6/5 10:34:41] 1 0 0 438320 4252 30124 0 0 0 0 132 127 4 96 0 0 0
[2023/6/5 10:34:42] 1 0 0 438320 4252 30124 0 0 0 12 133 137 1 99 0 0 0
[2023/6/5 10:34:52] ------------------------------------------------------------------------
[2023/6/5 10:34:52]
[2023/6/5 10:34:52] imx6ul platform test 77 begining!
[2023/6/5 10:34:52] 19:17:33 current temperature= 50.316 runtime= 982.12 359.19
[2023/6/5 10:34:52] 19:17:34 current freq= 528000
[2023/6/5 10:34:52] procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
[2023/6/5 10:34:52] r b swpd free buff cache si so bi bo in cs us sy id wa st
[2023/6/5 10:34:52] 2 0 0 438328 4260 30128 0 0 30 2 117 214 2 61 36 0 0
[2023/6/5 10:34:53] 1 0 0 438320 4260 30128 0 0 0 0 130 129 2 98 0 0 0
[2023/6/5 10:34:54] 2 0 0 438320 4260 30128 0 0 0 0 123 125 1 99 0 0 0
[2023/6/5 10:35:04] ------------------------------------------------------------------------
[2023/6/5 10:35:04]
[2023/6/5 10:35:04] imx6ul platform test 78 begining!
[2023/6/5 10:35:04] 19:17:46 current temperature= 50.888 runtime= 994.42 359.19
[2023/6/5 10:35:04] 19:17:46 current freq= 528000
[2023/6/5 10:35:05] procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
[2023/6/5 10:35:05] r b swpd free buff cache si so bi bo in cs us sy id wa st
[2023/6/5 10:35:05] 2 0 0 438344 4268 30128 0 0 30 2 117 213 2 62 36 0 0
[2023/6/5 10:35:06] 1 0 0 438320 4268 30128 0 0 0 0 133 137 5 95 0 0 0
[2023/6/5 10:35:07] 1 0 0 438320 4268 30128 0 0 0 0 123 126 4 96 0 0 0
[2023/6/5 10:35:17] ------------------------------------------------------------------------
[2023/6/5 10:35:17]
[2023/6/5 10:35:17] imx6ul platform test 79 begining!
[2023/6/5 10:35:17] 19:17:58 current temperature= 50.888 runtime= 1006.73 359.19
[2023/6/5 10:35:17] 19:17:58 current freq= 528000
[2023/6/5 10:35:17] procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
[2023/6/5 10:35:17] r b swpd free buff cache si so bi bo in cs us sy id wa st
[2023/6/5 10:35:17] 2 0 0 438316 4276 30128 0 0 29 2 117 212 2 62 36 0 0
[2023/6/5 10:35:18] 1 0 0 438320 4276 30128 0 0 0 0 138 138 2 98 0 0 0
[2023/6/5 10:35:19] 1 0 0 438320 4276 30128 0 0 0 0 122 122 3 97 0 0 0
好了就写到这里。