//
远程办公第一天
//
今天是立春,春天就要来了,一切都要过去了。
这两天疫情还在高峰期,确诊的病例依旧增多,本来想着坐火车来北京的,但是鉴于北京的确诊病例比较多,最终还是自驾13个小时来北京了,"进京难,难于上青天",各个高速路口都被封着,只开通了几个出口,我们在高速路上绕了好几个弯最后找到了一条可以通行的路。下了告诉,紧接着是长达两个小时的排队测体温,从进京的这个节奏看,2020,注定是不简单的一年~
最近还是不要聚集了,北京已经发生了多起聚集传染事件,大家还是要重视起来,出门戴口罩,除此之外,最近已经证实了粪口传播的可能性,一定要记得勤洗手。这次来北京我做的第一件事情就是去超市购物,想买洗手液,发现洗手液都被买空了,于是买了个硫磺皂来代替。
今天第一天远程工作,还是有点不习惯,笔记本电脑上有一些环境还没有配置好,有些文档类的东西还在公司没有拷贝过来,干不了那些重要的事情,最近准备研究研究MySQL8.0的一些新特性,到时候挑拣出来一些比较有用的特性分享出来,大家一起看看。
本来想了很多工作学习计划,但是鉴于最近情况特殊,暂时把目标设定为:好好活着~
最后,写一个前段时间帮朋友解决的Linux小问题。
我们知道,在Linux中,使用top命令,然后点击按键1,会显示所有的cpu信息,如下:
如何将这些信息保存在一个文件里面呢?我们知道top命令显示的内容是每2s实时刷新的,想要保存在文件里面不是很容易。
top - 23:33:33 up 32 days, 5:37, 1 user, load average: 0.00, 0.15, 0.56
Tasks: 144 total, 1 running, 143 sleeping, 0 stopped, 0 zombie
Cpu0 : 0.3%us, 0.3%sy, 0.0%ni, 96.7%id, 2.7%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.3%us, 0.3%sy, 0.0%ni, 99.0%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 0.7%us, 0.0%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
这个问题其实可以换一种思路,要想得到CPU的信息,其实可以使用mpstat命令来代替,该命令可以显示CPU的状态信息,如果有多个CPU,该命令可以查看任意一个CPU的状态,该命令的参数最重要的是-P参数,该参数后面可以跟制定的cpu编号或者所有cpu,使用方法如下:
[root@ ~]# mpstat --help
Usage: mpstat [ options ] [ <interval> [ <count> ] ]
Options are:
[ -A ] [ -I { SUM | CPU | ALL } ] [ -u ]
[ -P { <cpu> [,...] | ON | ALL } ] [ -V ]
从介绍里面不难看出,有-A和-P两个参数,其中-P参数较为常用,用法里面的interval是指显示时间间隔,count是指显示次数,如下命令:mpstat -P 2 1 2 是指将编号为2的CPU信息每隔1秒显示出来,显示2次,结果如下:
[root ~]# mpstat -P 2 1 2
Linux 2.6.32-696.16.1.el6.x86_64 (HB110-QY-KDC-DBLOG-102-210) 02/04/2020 _x86_64_ (4 CPU)
11:43:17 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
11:43:18 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
11:43:19 PM 2 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.00
Average: 2 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
我们可以看到,最后面比较友好的输出了一个平均值。
同理,显示所有的CPU信息就可以使用:mpstat -P ALL 1 2
如下:
[root@ ~]# mpstat -P ALL 1 2
Linux 2.6.32-696.16.1.el6.x86_64 (HB110-QY-KDC-DBLOG-102-210) 02/04/2020 _x86_64_ (4 CPU)
11:39:45 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
11:39:46 PM all 0.50 0.00 0.25 1.00 0.00 0.00 0.00 0.00 98.25
11:39:46 PM 0 0.00 0.00 0.00 4.00 0.00 0.00 0.00 0.00 96.00
11:39:46 PM 1 0.99 0.00 0.00 0.99 0.00 0.00 0.00 0.00 98.02
11:39:46 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
11:39:46 PM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
11:39:46 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
11:39:47 PM all 0.50 0.00 0.25 0.75 0.00 0.00 0.00 0.00 98.49
11:39:47 PM 0 0.00 0.00 0.00 2.04 0.00 0.00 0.00 0.00 97.96
11:39:47 PM 1 0.00 0.00 1.01 0.00 0.00 0.00 0.00 0.00 98.99
11:39:47 PM 2 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.00
11:39:47 PM 3 1.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 98.00
Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
Average: all 0.50 0.00 0.25 0.88 0.00 0.00 0.00 0.00 98.37
Average: 0 0.00 0.00 0.00 3.03 0.00 0.00 0.00 0.00 96.97
Average: 1 0.50 0.00 0.50 0.50 0.00 0.00 0.00 0.00 98.50
Average: 2 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
Average: 3 0.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 98.99
在输出的结果列中,各个列的含义如下:
%user:表示处理用户进程所使用CPU的百分比。用户进程是用于应用程序的非内核进程;
%nice:表示使用nice命令对进程进行降级时CPU的百分比;
%system:表示内核进程使用的CPU百分比;
%iowait:表示等待进行I/O所使用的CPU时间百分比;
%irq:表示用于处理系统中断的CPU百分比;
%soft:表示用于软件中断的CPU百分比;
%steal :显示虚拟机管理器在服务另一个虚拟处理器时虚拟CPU处在非自愿等待下花费时间的百分比
%guest :显示运行虚拟处理器时CPU花费时间的百分比
%idle:显示CPU的空闲时间;
%intr/s:显示每秒CPU接收的中断总数;