系统指标

2023-05-16

目录

1. cpu.xxx

1.1 cpu空闲率cpu.idle

cpu.idle表示除硬盘IO等待时间以外其它等待时间,这个值越大,表示cpu越空闲,还可以执行更多的任务,反之亦然,此处我们falcon展示的是idle的波动情况, 而不是像sar -u命令展示出来的瞬时值,其中sar命令计算公式:
(/proc/stat中当前时间对应的cpu.idle值 )/ (/proc/stat中当前时间对应的cpu.total值),cpu.total就是cpu那一行所有项的加和。
falcon中计算公式:
(/proc/stat中当前时间对应的cpu.idle值 - /proc/stat中上一秒对应的cpu.idle值) * 100 / (/proc/stat中当前时间对应的cpu.total值 - /proc/stat中上一秒对应的cpu.total值)

1.2 cpu.iowait

cpu.iowait表示在一个采样周期内有百分之几的时间属于以下情况:CPU空闲、并且有仍未完成的I/O请求。此指标不能用来单独判断IO瓶颈问题,这与IO并发度有很大关系,当此指标升高时,还应看一下disk.io.await指标,详情可参见http://linuxperf.com/?p=33。
falcon中计算公式:
(/proc/stat中当前时间对应的cpu.iowait值 - /proc/stat中上一秒对应的cpu.iowait值) * 100 / (/proc/stat中当前时间对应的cpu.total值 - /proc/stat中上一秒对应的cpu.total值)

1.3 cpu.steal

cpu.steal表示被同一宿主机上的其他vm所占用的超出指定cpu配额的程度,例如一台宿主机中每台vm的cpu配额是25%,但是每个vm可以使用超过25%的真实cpu时间片,此时对于其他的vm来说就出现了cpu.steal。原因可能是你的虚拟机需要更多的cpu配额,此时要看是不是st在同一宿主所有的vm上都涨了;还有可能是物理宿主机超卖,此时要看是不是只有一部分vm的st陡增。如果发生了cpu.steal报警,此时有三种解决方法:关闭此vm,并在其他的宿主上申请;联系云,增加此vm的cpu的配额;若是一直很高,联系云,可能有超卖。

1.4 其他cpu监控项的说明

cpu.user CPU用于运行用户态进程的时间比例。
cpu.nice CPU用于以Nice优先级运行用户态进程的时间比例。
cpu.busy 等于 1 - cpu.idle。
cpu.system CPU用于运行内核态进程的时间比例。
cpu.guest CPU用于运行虚处理器的时间比例。
cpu.irq CPU用于硬中断的时间比例。
cpu.softirq CPU处于软中断的时间比例。
cpu.switches CPU上下文切换次数,计数器类型。

使用 cat /proc/stat 可查看CPU的使用情况。 

从左至又的各数据项的含义分别为 user, nice, system, idle, iowait,irq, softirq, stealstolen, guest, 均为从系统开始累计到当前时刻的值,单位为jiffies(节拍数),一个节拍大致可理解为操作系统进程调度的最小时间片,不同linux内核可能值有不同。

falcon中CPU监控项计算公式:
以cpu.steal为例,计算方法为 (/proc/stat中当前时间对应的cpu.steal值 - /proc/stat中上一秒对应的cpu.steal值) * 100 / (/proc/stat中当前时间对应的cpu.total值 - /proc/stat中上一秒对应的cpu.total值)
cpu.total值为图中各项之和,即user+nice+system+idle+iowait+irq+softirq+stealstolen+guest

2. tcp当前连接数snmp.Tcp.CurrEstab

snmp.Tcp.CurrEstab表示当前已建立的tcp连接数,GAUGE类型,即瞬时值,计算方法: 

读取/proc/net/snmp中的内容,找到tcp的部分,并读取CurrEstab项对应的值上报

3. snmp.Tcp.XXX( 除了CurrEstab)

和snmp.Tcp.CurrEstab一样,都是读取/proc/net/snmp中的内容,找到tcp部分,根据标签如ActiveOpens上报对应的值。 snmp.Tcp.ActiveOpens tcp主动连接的发送次数
snmp.Tcp.AttemptFails tcp syn_recv状态被reset的次数
snmp.Tcp.EstabResets 当tcp状态在CLOSE_WAIT或TCP_ESTABLISHED状态时被reset的次数
snmp.Tcp.InErrs tcp协议层接收出错的数据包的个数
snmp.Tcp.InSegs tcp协议层收到的数据包个数
snmp.Tcp.MaxConn 主机可支持的TCP最大连接数目,初始化为-1
snmp.Tcp.OutRsts tcp协议层发送的reset数据包的个数
snmp.Tcp.OutSegs tcp协议层发出的数据包个数
snmp.Tcp.PassiveOpens tcp listen状态被动打开的次数
snmp.Tcp.RetransSegs tcp协议层重传的数据包个数
snmp.Tcp.RtoAlgorithm 转发未答复对象的延时的算法的数目,初始化为1
snmp.Tcp.RtoMax TCP延迟重发的最大值,初始化为120000
snmp.Tcp.RtoMin TCP延迟重发的最小值,初始化为200

4. snmp.Udp.XXX

本机udp连接的一些指标,也是读取/proc/net/snmp中的内容,找到udp部分,根据标签如SndbufErrors上报对应的值。

5. net.port.listen/port=xxx

此监控项监控某个端口是否开启,开启为1,否则为0,瞬时值,计算方法:
(读取ss -nlt得出的内容,判断是否有xxx端口,若有则上报1,否则是0)

6. ntp.offset

此监控项,表示从指定ntp服务器获得的标准时间与本地时间的差值的绝对值,计算方法: (从指定的ntp服务器获得标准时间t1,然后获得本地时间t2,上报Abs(t1-t2),注意单位是毫秒)

7. TcpExt.xxx

详情请参考:TcpExt指标说明
此监控项集合表示tcp连接状态值,计算方法:
(读取/proc/net/netstat中的内容,按照标签读取对应的值上报),此处只说明其中比较常用的几个:
TcpExt.ListenOverflows,表示超出listen队列长度(即一般网络编程中listen(number)的number)的连接数,此项过高可以在一定程度上说明后端处理请求慢
TcpExt.ListenDrops,除了包含ListenOverflows的情况外,内存不足无法新建连接也会造成此项过大
Tcp.AttemptFails,从syn_send和syn_rcvd直接倒closed状态的连接数,加上syn_rcvd直接到listen状态的连接数
TcpExt.TCPBacklogDrop,如果socket被user锁住,后退一步内核会把包加到sk_backlog_queue,但如果因为sk_rcv_buf不足的原因入队失败,计数器加1,此参数无需关注,主要看listenoverflows
TcpExt.TCPLoss tcp协议栈丢失数据包而进行恢复的次数
TcpExt.TCPLossFailures tcp协议栈丢失数据包而进行恢复失败的次数
TcpExt.TCPLostRetransmit tcp协议栈丢失重传的数据包的次数
TcpExt.TCPTimeouts tcp数据在指定时间内没有受到应答ack而超时的次数
TcpExt.TCPAbortOnTimeout tcp协议栈各定时器超时重复次数超过最大限制而关闭sock的次数

TcpExt.ArpFilter arp_rcv() -> NETFILTER(ARP_IN) -> arp_process() 与TCP无关,接收到ARP packet时做一次输出路由查找(sip, tip),如果找到的路由项的device与输入device的不同,计数器加1
TcpExt.DelayedACKs 尝试发送 delayed ACK 的次数,包括未成功发送的次数
TcpExt.DelayedACKLocked 发送方在发送数据包时,如果此时距离最近接收到数据包的时间间隔足够短(即在RTO内,此事件由RTO决定,RTO根据每次接收包的间隔时间动态计算,处于40ms与min(200ms, 1次RTT)之间),说明双方处于你来我往的双向数据传输中,就进入延迟确认模式。延迟确认定时器触发后,会发出一个被延迟的ACK,如果此时用户态进程正在使用此socket,则无法发送 delayed ACK 。而TcpExt.DelayedACKLocked就表示:用户态进程正在使用socket而导致无法发送 delayed ACK 的次数
TcpExt.LockDroppedIcmps icmp协议栈处理ICMP_DEST_UNREACH, ICMP_TIME_EXCEED, ICMP_QUENCH类型包时,当时sock正被用户程序锁定的包个数
TcpExt.PruneCalled 因为 socket 缓冲区满而被 prune 的包数量
TcpExt.TCPAbortFailed 尝试结束连接失败的次数
TcpExt.TCPAbortOnMemory 因内存问题关闭连接的次数
TcpExt.TCPDSACKUndo 撤销了发送DSACK包的次数,DSACK要求重传所有需要重传的数据.
TcpExt.TCPFastRetrans 成功快速重传的 skb 数量
TcpExt.TCPMemoryPressures 分配skb失败导致进入协议栈内存紧缺状态的次数
TcpExt.TCPMinTTLDrop 在接收到TCP报文或者TCP相关的ICMP报文时,检查IP TTL,如果小于socket option设置的一个阀值,就丢包
TcpExt.TCPPrequeueDropped 如果因为内存不足(ucopy.memory < sk->rcv_buf)而加入到prequeue失败,重新由backlog处理,计数器加1
TcpExt.TCPSchedulerFailed 如果在 delay ack 处理函数中发现 prequeue 还有数据,就加1
TcpExt.TCPSpuriousRTOs 通过F-RTO机制发现的虚假超时个数
TcpExt.TCPTSReorder 使用 TCP Timestamp 机制检测到的乱序次数
TcpExt.TW 经过正常的的超时结束 TIME_WAIT 状态的 socket 数量

8. mem.xxx

此监控项集合包括内存,swap,cache等的状态值,计算这些指标的基础都是读取/proc/meminfo的内容,然后返回map集合,其中包括各项指标机器对应的值: 

此处列举常用的几个:
mem.memtotal, 总内存,即图中的MemTotal。
mem.memused, 使用的内存。
mem.memcached 高速缓冲存储器(cache memory)使用的内存的大小,proc/meminfo中的Cached项。
mem.memfree, 空闲内存,包括/proc/meminfo中的 MemFree+Cached+Buffer。
mem.single.memfree 被系统留着未使用的内存, /proc/meminfo 中MemFree一项的值。
mem.memfree.percent, 表示可用内存的占本机内存的比例,计算方法为memfree/float(memtotal)。
mem.memused.percent, 表示已用内存的比例,即 1 - mem.memfree.percent。
mem.swapfree.percent,表示可用交换区所占本机总swap的比例,即SwapFree/SwapTotal。
mem.swapused.percent,表示已用交换区的比例,即1 - mem.swapfree.percent。
另外,增加了一个名为proc.falcon.agent.memused 的监控项,表示该节点上Falcon-Agent运行所占用的内存。

9. load.xxx

此监控项集合包括1min,5min,15min的负载值(load.1min,load.5min,load.15min),每一种又分为总的load和每个cpu的load,计算方法为读取/proc/loadavg中的前三项值: 

load.1min,load.5min,load.15min分别表示最近1、5、15分钟内运行队列中的平均进程数量。而load.1minPerCPU,load.5minPerCPU,load.15minPerCPU分别表示每个cpu所占load。例如,load.1minPerCPU = load.1min/cpu核数量

10. kernel.xxx

10.1 kernel.files.allocated

表示已经分配的文件描述符数目,从/proc/sys/fs/file-nr (第一项)读取并上报

10.2 kernel.maxfiles

表示内核可以分配的最大文件描述符数,从/proc/sys/fs/file-max读取并上报

10.3 kernel.files.left

表示剩余的文件描述符数目,kernel.maxfiles-kernel.files.allocated

10.4 kernel.files.percent

表示已分配的文件描述符数与总的文件描述符数的比例,计算公式为:
float64(kernel.files.allocated) * 100 / float64(kernel.maxfiles)

10.5 kernel.coredump

表示运行在机器上的程序是否发生了coredump。
这个metric默认值为1,表示没有程序发生coredump。但如果一分钟内检查到有程序coredump了,该值变为0。
默认发生coredump时产生的core文件都以【命令名-进程号-时间戳】的形式保存在机器的/var/sankuai/logs/core/下。

10.6 kernel.coredump.proc/name=xxx

表示进程级别的coredump监控。

11. net.if.xxx(网卡监控相关指标)

net.if.xxx.xxx监控流量的出入情况,基础都是读取/proc/net/dev中的数据,然后取每个表头对应的数据做简单的处理,再上报,其中
net.if.in.Mbps/iface=eth0, 表示eth0网卡的流量流入速度,单位是Mbps(兆比特每秒)nettype=1g表示千兆网卡,nettype=2g表示双千兆网卡,nettype=10g表示万兆网卡,nettype=20g表示双万兆网卡
net.if.in.bps/iface=eth0, 意思同上,单位是bps(比特每秒)
net.if.in.bytes/iface=eth0,表示eth0网卡的流入流量,单位是byte,1byte=8bit(比特)
net.if.change 值为0表示网卡速率没有变化,值为1表示网卡速率有变化需要报警。
net.if.change的值的计算方式:
通过每次读取/sys/class/net/bond0/speed文件 或 /sys/class/net/eth0/speed文件与falcon-agent第一次启动时读取这个文件获得的值相比较,如果相同则上报0表示网卡速率没有变化,如果不同则上报1表示网卡速率有变化。
net.if.in.Mbps.all 所有网卡的流量流入速度和,单位为Mbps。
net.if.out.Mbps.all 所有网卡的流量流出速度和,单位为Mbps。
net.if.total.Mbps.all 所有网卡的出入流量速度和(net.if.in.Mbps.all + net.if.out.Mbps.all),单位为Mbps。

12. 磁盘监控

df.bytes.xxx.xxx/fstype=xxx,mount=xxx此监控项集合监控硬盘各分区的使用情况,首先读取 /proc/mounts,获得所有的挂载点以及挂载分区的文件类型: 

然后使用syscall.Statfs_t获得每个挂载分区的存储使用情况。配合下图来看:

 

举几个例子说明磁盘监控项是如何计算的:
df.bytes.free.percent/fstype=ext4, mount=/opt,表示文件类型为ext4的/opt 分区中剩余容量所占本分区总容量的百分比。配合上图中数据来看主机这个监控项的值为:1-52%=48%
df.statistics.total,表示主机上磁盘的总空间。图中主机监控项的值为:559G(所有分区的和)
df.statistics.used,表示主机上已使用的磁盘空间。图中主机监控项的值为:264G (所有分区用量的和)
df.statistics.used.percent,表示主机磁盘利用率,计算公式为:df.statistics.used/df.statistics.percent*100%,即上述两项相除取百分比得到。
另外,df.inodes.xxx.xxx/fstype=xxx,mount=xxx此监控项集合监控硬盘各分区的inode使用情况。其中,df.inodes.total:inode总数,df.inodes.free:可用inode数目,df.inodes.free.percent:可用inode占比。

13. ss.estab

此监控项表示本机已建立的连接数,可以执行命令:ss | grep ESTAB | wc -l 查看
ss.closewait 表示处于close wait的TCP连接数量,执行命令:ss -tan|grep CLOSE-WAIT |wc -l 查看
数据获取方式,在机器上执行命令:ss -s

ss.closed 表示已经关闭的TCP连接数(closed 43)
ss.timewait 表示处于等待状态的TCP连接数(timewait 15)

14. cpu.100

7天内cpu.busy加和平均值, 一天一个值(已弃用)

15. cpu.90/unit=h, net.90/unit=h, disk.90/unit=h, io.90/unit=h

1天内cpu, net, disk, io利用率排序,90分位对应的值; 一天一个值; 具体计算方法:资源利用率计算方法

16. util/unit=d

max(cpu.90/unit=h, net.90/unit=h, disk.90/unit=h, io.90/unit=h), 一天一个值;具体计算方法:资源利用率计算方法

17. disk.io.util

表示每个上报周期内,IO操作的时间所占的比例,表示此上报周期内IO操作的繁忙程度,值越大说明磁盘IO操作越频繁,磁盘压力越大。
当前falcon的具体计算方法:
读取/proc/diskstats文件,
纳入计算的条件:只选取第四个字段不为0,且对于不同的device(即第三个字段),falcon只处理len(device)==3 and (前缀为sd 或 vd) 或者len(device)>=4 and 前缀为 xvd的设备。

一般只会上报vda/vdb/vdc这三块盘的监控数据,disk.io.util是根据倒数第2个指标计算的,各个指标的含义如下:

/proc/diskstats文件比/sys/block/sda/stat文件多3个域,从左至右分别对应主设备号,次设备号和设备名称。后续的11个域在这两个文件里是相同的,它们的函义将在下面解释。除了第9个域,所有的域都是从启动时的累积值。

第1个域:读完成次数 ----- 读磁盘的次数,成功完成读的总次数。
第2个域:合并读完成次数。
第3个域:读扇区的次数,成功读过的扇区总次数。
第4个域:读花费的毫秒数,这是所有读操作所花费的毫秒数(用make_request()到end_that_request_last()测量)。
第5个域:写完成次数 ----写完成的次数,成功写完成的总次数。
第6个域:合并写完成次数 -----合并写次数。
第7个域:写扇区次数 ---- 写扇区的次数,成功写扇区总次数。
第8个域:写操作花费的毫秒数 --- 写花费的毫秒数,这是所有写操作所花费的毫秒数(用
make_request()到end_that_request_last()测量)。
第9个域:正在处理的输入/输出请求数 -- -I/O的当前进度,只有这个域应该是0。当请求被交给适当的request_queue_t时增加和请求完成时减小。
第10个域:输入/输出操作花费的毫秒数 ----花在I/O操作上的毫秒数,这个域会增长只要field 9不为0。
第11个域:输入/输出操作花费的加权毫秒数 ----- 加权, 花在I/O操作上的毫秒数,在每次I/O开始,I/O结束,I/O合并时这个域都会增加。这可以给I/O完成时间和存储那些可以累积的提供一个便利的测量标准。
以disk.io.util为例,计算公式为:(当前上报时间点第10个域的值 - 上一秒那个时间点第10个域的值) * 100 / 一个收集周期的时间
现在一个收集周期的时间为1s,上面公式中时间单位需要转换为毫秒数,也就是1000。

其他监控项的计算方法类似,它们代表的含义如下,计算方式与上面介绍过的disk.io.util类似:
disk.io.ios_in_progress: 当前正在处理的输入/输出请求数
disk.io.msec_total: ios_in_progress >= 1 的时间(毫秒数)
disk.io.msec_read: 读扇区花费的毫秒数
disk.io.msec_write : 写扇区花费的毫秒数
disk.io.msec_weighted_total:输入/输出的加权毫秒数。
disk.io.read_bytes: IO读的速率。
disk.io.write_bytes: IO写的速率。
disk.io.read_requests: 完成的读请求数。
disk.io.write_requests: 完成的写请求数。
disk.io.read_merged: 合并读完成数。
disk.io.write_merged: 合并写完成数。
disk.io.read_sectors: 读扇区次数。
disk.io.write_sectors: 写扇区次数。

另外,下面四个监控项是用iostat -x读出。
disk.io.avgqu-sz:平均请求队列的长度。
disk.io.avgrq_sz:平均请求扇区的大小。
disk.io.await: 每一个IO请求的处理的平均时间(单位是毫秒)。
disk.io.svctm: 表示平均每次设备I/O操作的服务时间(以毫秒为单位)。

根据不同的tag有三个具体的counter:
device=某个具体的device(磁盘),表示这个磁盘的IO操作繁忙程度;
device=all,表示此主机上所有符合计算条件的磁盘的平均繁忙程度;
device=max表示所有符合计算条件的磁盘中最大的繁忙程度。

磁盘有3块,vda/vdb/vdc,它们各自有自己的分区:vda1/vdb1/vdc1,挂载点都是挂载到分区上面的,所以有:
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 17G 7.2G 70% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
/dev/vdc1 493G 157G 311G 34% /opt
vdb1分区是供swap使用的,通过cat /etc/fstab可以看到:
UUID=dbc91a45-e531-4980-b5da-c9460df76ac8 / ext4 defaults 1 1
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/vdb1 none swap sw 0 0
/dev/vdc1 /opt ext4 defaults 2 2

18. df.mounts.ro

取机器/proc/mounts文件,如果ext4或者xfs的为rw上报1,如果是ro则上报0

rootfs / rootfs rw 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
devtmpfs /dev devtmpfs rw,relatime,size=66042484k,nr_inodes=16510621,mode=755 0 0
devpts /dev/pts devpts rw,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /dev/shm tmpfs rw,relatime 0 0
/dev/sda1 / ext4 rw,relatime,barrier=1,data=ordered 0 0
/proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0
/dev/sdb1 /opt ext4 rw,relatime,barrier=1,data=ordered 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

系统指标 的相关文章

  • include头文件的顺序以及双引号和尖括号的区别?

    Include头文件的顺序 对于include的头文件来说 xff0c 如果在文件a h中声明一个在文件b h中定义的变量 xff0c 而不引用b h 那么要在a c文件中引用b h文件 xff0c 并且要先引用b h xff0c 后引用a
  • The manifest must not cotain the following tags:run_depend解决方法

    当你在package xml中 xff0c 添加完run depend后 xff0c 编译出错 xff0c 显示The manifest must not cotain the following tags run depend xff0c
  • Astar算法

    1 什么是Astar算法 xff1f Astar算法是一种图形搜索算法 xff0c 常用于寻路 它是个以广度优先搜索为基础 xff0c 集Dijkstra算法与最佳优先 best fit 算法特点于一身的一种算法 它通过下面这个函数来计算每
  • 十进制转十六进制(C语言)

    输入 xff1a Entern 666 输出 xff1a 29A include 34 stdio h 34 include 34 stdlib h 34 int main void int n a1 count 61 0 j count
  • STM32串口发送数据和接收数据方式总结

    之前写了篇关于ESP8266使用AT指令进行互相通讯的实验 xff0c 在写STM32串口接发数据的程序中 xff0c 觉得有必要将之前学的有关于串口方面的使用经历加以总结 串口发送数据 xff1a 1 串口发送数据最直接的方式就是标准调用
  • fused_adam.so: cannot open shared object file: No such file or directory问题排查与解决

    最近一个同学加载一个新的预训练模型时候碰到了这样一个问题 xff0c 帮他排查解决一下 xff1a File 34 data anaconda3 envs nlp lib python3 6 site packages torch util
  • libcurl第十二课 内存分析

    在实际的测试环境中 xff0c 内存在不断的增长 xff0c 尽管不是很明显 代码申请内存分析 struct Curl multi Curl multi handle int hashsize socket hash int chashsi
  • stm32 esp8266 ota升级-tcp模拟http

    stm32 esp8266 ota系列文章 xff1a stm32 esp8266 ota 快速搭建web服务器之docker安装openresty stm32 esp8266 ota升级 tcp模拟http stm32 esp8266 o
  • vscode配置C环境

    vscode配置C环境 最近感觉基础不太行 xff0c 想重新看下数据结构 xff0c 用c语言重新写一下经典的结构 也不想换编辑器 xff0c 就想用vscode xff0c 刚好github上有一个一键配置c环境的工具 记录一下 配置c
  • 【光线追踪系列一】PPM输出;自定义vec3;光线、简单相机及天空采样

    本次光线追踪系列从基础重新开始 xff0c 主要参照 Ray Tracing in One Weekend xff0c 具体实现代码框架见 https github com RayTracing raytracing github io 本
  • 服务器总线协议_第一章----I2C总线协议入门

    目录 一 概述 二 首先了解一下I2C的I O结构 三 其次了解一下I2C的时序 第一部分 xff1a 起始停止信号简介 第二部分 xff1a I2C的时序部分要求 第三部分 xff1a I2C的一帧数据的格式 四 最终问与答 1 xff0
  • 服务器总线协议_第二章----I2C总线协议进阶

    敬请期待 xff0c 预计8月1日发布 xff0c 需要请加个关注
  • 服务器总线协议_第三章----SVID电源管理协议

    目录 一 概述 二 SVID协议组成方式 三 SVID协议拓扑要求 四 SVID如何判别读写 Master读操作 Master写操作 五 问与答 1 xff09 SVID有没有特殊的要求 xff1f 一 概述 首先先了解一下SVID的全称
  • PM_Sync的作用

    目录 一 先来了解一下PM Sync的全称 xff1a 一 PM Sync简介 PM Sync xff1a Power Management synchronization 同步电源管理 在知道这个信号的作用之前需要先来了解一下 ADR 二
  • si4438使用stm32f103配置调试成功!

    刚拿到si4438时候在网上找了一大波资源 xff0c 发现能使用的并没有多少 xff0c 于是自己配置一发 经过不懈努力配置成功 xff0c 现在将一些配置过程分享给大家 xff01 源码已上传 尽情下载 xff01 1 首先打开工程文件
  • 教你如何使用stm32发送一帧数据(结构体中的数据)

    在这篇文章中我介绍一下如何通过串口发送一帧存在结构体中的数据 通过串口接受一帧数据请参考的我博客中的文章 教你如何使用stm32接收一帧数据 xff01 一 xff1a 在 h首先定义一个结构体 typedef struct uint8 t
  • 浅谈线性稳压电源和开关稳压电源(开关电源)

    目前现有电源主要分为两大类 xff1a 线性稳压电源和开关稳压电源 xff08 开关电源 xff09 线性稳压电源 线性稳压电源经过变压 整流 滤波 稳压实现电源稳压 优点 xff1a 稳定性好 xff0c 瞬态响应速度快 xff0c 可靠
  • c++ #define 用法

    1 用于表示将两个参数连在一起 xff0c 其中宏的 前后空格会被省略 define CONNA a b a b define CONNB a b a b int main string a 61 CONNA 34 one 34 34 tw
  • MySQL第五课 Table has no partition for value

    场景 MySQL由于安全性要求 xff0c 版本升级之后 xff0c 执行插入数据出现Table has no partition for value 错误 已有版本5 7 20 log升级到5 7 26 log 说明 建表过程中 xff0
  • DSP数据安全平台

    数据安全平台 xff08 DSP xff0c Data Security Platforms xff09 的概念来源于Gartner的 2021数据安全技术成熟度曲线 xff0c DSP定义为以数据安全为中心的产品和服务 xff0c 旨在跨

随机推荐

  • c++ 数学库

    链接 link
  • vscode使用restClient实现各种http请求

    vscode使用restClient实现各种http请求 一 xff0c 安装插件 首先 xff0c 我们要在vscode的扩展中 xff0c 搜索rest Client xff0c 然后安装它 xff0c 这里我已经安装过了 安装后 xf
  • K210和STM32串口通信(亲测有效)

    声明 最近想做一个K210数字识别和寻迹 xff0c 方便完成2021年电赛F题 xff0c 完成了数字训练和脱机运行就想赶紧进行一次通信 xff0c 调了好几天 郁闷 xff0b 自闭几天 按照官方的历程看 xff0c 配置的没问题但是会
  • 简单Rabbitmq 发送消息和接收消息

    简单Rabbitmq 发送消息和接收消息 1 先在Rabbitmq配置文件中预先创建好交换器 xff0c 队列 xff0c 路由等信息 2 创建生产者发送消息 64 Autowired private RabbitTemplate rabb
  • Elasticsearch(ES6)------(4) ES设置用户名密码访问

    Elasticsearch ES xff08 1 xff09 下载 安装 43 kibana 下载 xff08 2 xff09 本机多节点启动 43 ElasticSearch head插件使用 xff08 3 xff09 索引 文档概念和
  • Elasticsearch(ES6) --根据条件修改字段值

    POST index name doc update by query 34 query 34 34 match 34 34 version 34 34 12 22 34 34 script 34 34 inline 34 34 ctx s
  • redis限流使用lua脚本

    lua脚本 xff0c 计数器限流 5秒内限流10次 64 param key 64 return public boolean acquire String key long now 61 System currentTimeMillis
  • ES6分页from+size、search_after两种查询

    1 from 43 size 分页查询 64 RequestMapping value 61 34 get 34 method 61 RequestMethod GET public BaseResponse lt List lt Obje
  • 使用activiti总结--bpmn画流程图

    假期结束 xff0c 赶紧总结一下前几天使用的Activiti工作流的一些方法 简单介绍一下Activiti Activiti一套完整的方便的业务流程管理 xff08 BPM xff09 框架 xff0c 它是覆盖了业务流程管理 工作流 服
  • clock函数 使用以及问题

    使用 clock 函数是一个计算程序运行时间 xff08 其实简略的理解为占用CPU的使用时间 xff09 其实如果使用sleep函数 xff0c 程序是放弃CPU的使用权 xff0c 直到某个时间的到来 xff0c 当然就不会存在占用CP
  • 使用activiti总结--发布,办理,查询

    接上一篇文章 xff0c 使用创建好的流程图 xff0c 总结一下activiti发布到查询使用的方法和测试代码 流程图 1 引用配置文件 activiti cfg xml xff0c 不引用或者引用失败的话在创建流引擎的时候会报空指针异常
  • Could not open JDBC Connection for transaction

    操做 xff1a 访问20次数据库没问题 xff0c 超过20次调用后报如下错误 详细报错 xff1a org springframework transaction CannotCreateTransactionException Cou
  • 【可信计算】第八次课:可信软件栈编程开发

    TPM2开源软件包 目前在github上TPM2开源软件一共包含六个项目tpm2 tools tpm2 tss tpm2 pkcs11 tpm2 tss engine tpm2 abrmd tpm2 totp 1 tpm2 tools 这一
  • 国赛----可见光室内定位

    初期试探 拿到题目后 xff0c 反复读了题目 首先队内结合网上资料形成了两种方案 xff0c 原理相同就是利用光信号到达的强度来定位 两者差距在于算法不同而已 xff0c 一种利用计算得出位置 xff0c 另一种就是经过测量得到一种位置与
  • 各种Arduino外部中断程序

    一 中断 Interrupt 的基本概念 中断 xff08 Interrupt xff09 是计算机的一个重要概念 xff0c 现代计算机普遍采用中断技术 什么是中断呢 xff1f CPU执行时原本是按程序指令一条一条向下顺序执行的 但如果
  • PX4通过参数脚本给飞控导入参数

    PX4通过参数脚本给飞控导入参数 先找一架正常能飞的无人机连接地面站 在参数页面右上角点击工具 gt 保存到文件 保存的时候文件名注明参数的相关信息 然后将需要加载参数的无人机连接至地面站 xff0c 注意需要加载参数的无人机必须和保存的参
  • 深蓝 运动规划

    文章目录 CH1 Introduction一 Motion Planning 概念二 Front end xff1a Path finding1 Search based methods2 Sampling based methods3 K
  • 接收机/DTU 安装调试 读取gps数据

    文章目录 一 整体连接图二 DTU配置三 接收机设置 在这里记录一下 xff0c 实验室平台上 xff0c 安装gps接收机和配置的一些步骤 一 整体连接图 二 DTU配置 首先 DTU 需要通过 COM 口和电脑端连接 xff0c 注意这
  • OOQP 安装和使用

    OOQP 安装和使用 1 安装2 使用 1 安装 需要先安装 blas 和 ma27 BLAS xff1a span class token builtin class name cd span my lib span class toke
  • 系统指标

    目录 1 cpu xxx 1 1 cpu空闲率cpu idle cpu idle表示除硬盘IO等待时间以外其它等待时间 xff0c 这个值越大 xff0c 表示cpu越空闲 xff0c 还可以执行更多的任务 xff0c 反之亦然 xff0c