linux 性能60秒分析
linux 60秒分析
- 需要运行的工具是
1、uptime
2、dmesg | tail
3、vmstat 1
4、mpstat -P ALL 1
5、pidstat 1
6、iostat -xz 1
7、free -m
8、sar -n DEV 1
9、sar -n TCP,ETCP 1
10、top
uptime
- 快速检查平均负载
[root@aaaaaa ~]# uptime15:17:20 up 3 days, 14 min, 7 users, load average: 0.58, 0.88, 0.95
- 1分钟/5分钟/15分钟 负载
- 判断 性能问题是否还存在
- 较高的15分钟负载,较低的1分钟负载同时出现,需要排查的问题已经失效
dmesg |tail
- 显示过去10条系统日志
[root@aaaaaa ~]# dmesg |tail
[260546.491003] br-bff1beb338f3: port 4(vetha64d524) entered disabled state
[260546.577708] eth0: renamed from vethf286056
[260546.582137] IPv6: ADDRCONF(NETDEV_CHANGE): vetha64d524: link becomes ready
[260546.582280] br-bff1beb338f3: port 4(vetha64d524) entered blocking state
[260546.582281] br-bff1beb338f3: port 4(vetha64d524) entered forwarding state
[260546.691560] vethf286056: renamed from eth0
[260546.754205] br-bff1beb338f3: port 4(vetha64d524) entered disabled state
[260546.754745] br-bff1beb338f3: port 4(vetha64d524) entered disabled state
[260546.756142] device vetha64d524 left promiscuous mode
[260546.756157] br-bff1beb338f3: port 4(vetha64d524) entered disabled state
- 如果有问题,在这里可以寻找可能导致性能问题的错误,会有报错日志
- 根据报错的日志,然后定位下一步排查的方向
vmstat 1
- 虚拟内存统计工具
[root@aaaaaa ~]# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st2 0 0 17271152 3200 9848856 0 0 4 42 16 31 1 3 97 0 01 0 0 17270972 3200 9848896 0 0 0 14 3490 5815 1 1 98 0 00 0 0 17270972 3200 9848896 0 0 0 40 3568 5930 1 2 98 0 01 0 0 17280152 3200 9848904 0 0 0 82 6250 10611 1 3 96 0 00 0 0 17284124 3200 9848904 0 0 0 20 4622 7903 1 2 97 0 00 0 0 17284188 3200 9848904 0 0 0 18 3482 5913 1 2 98 0 00 0 0 17283784 3200 9848904 0 0 0 38 3528 5929 1 2 97 0 00 0 0 17282672 3200 9849244 0 0 0 1787 6921 11595 2 8 90 0 00 0 0 17283444 3200 9849072 0 0 0 96 4047 7017 1 2 98 0 03 0 0 17306168 3200 9849080 0 0 0 348 4493 7280 1 3 96 0 0
- 第一行输出是自系统启动后的统计值,内存相关的计数器除外
- 需要检查的列如下
r:CPU上正在执行和等待执行的进程数量,r值比CPU多代表CPU资源处于饱和状态
free:空闲内存,单位是KB,数字越大,内存越宽松
si和so:页换人和页换出,值不为0则系统内存紧张,开启交换分区后才会起作用
us、sy、id、wa、st:用户态时间,系统态时间,空闲,等待I/O,被窃取时间(虚拟环境,被其他客户机挤占时间)
- 根据相应的数据,定位问题,比如CPU时间主要花费在用户态上,下一步主要针对用户态代码进行分析
mpstat -P ALL 1
- 将每个CPU分解到各个状态下的时间打印出来
[root@aaaaaa ~]# mpstat -P ALL 1
Linux 4.18.0-305.el8.x86_64 (aaaaaa.com) 07/25/2024 _x86_64_ (4 CPU)03:49:34 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:49:35 PM all 0.76 0.00 1.53 0.00 0.51 0.51 0.00 0.00 0.00 96.69
03:49:35 PM 0 1.01 0.00 2.02 0.00 1.01 0.00 0.00 0.00 0.00 95.96
03:49:35 PM 1 0.00 0.00 2.06 0.00 1.03 0.00 0.00 0.00 0.00 96.91
03:49:35 PM 2 1.02 0.00 1.02 0.00 0.00 1.02 0.00 0.00 0.00 96.94
03:49:35 PM 3 1.01 0.00 1.01 0.00 0.00 1.01 0.00 0.00 0.00 96.97
- 假如CPU 0的用户态占比高达 100%,则是单个线程遇到瓶颈的特征
- 若是较高的 %iowait,需要使用磁盘I/O工具进一步分析
- 若是出现较高的 %sys值,可以使用系统调用syscall跟踪和内核跟踪,以及CPU剖析手段进一步分析
pidstat 1
- 按每个进程展示CPU的使用情况
[root@aaaaaa ~]# pidstat 1
Linux 4.18.0-305.el8.x86_64 (aaaaaa.com) 07/25/2024 _x86_64_ (4 CPU)03:58:16 PM UID PID %usr %system %guest %wait %CPU CPU Command
03:58:17 PM 0 1153 0.00 0.99 0.00 0.00 0.99 3 containerd
03:58:17 PM 1003 1223 0.00 1.98 0.00 0.00 1.98 1 tikv-server
03:58:17 PM 1003 1227 3.96 5.94 0.00 0.00 9.90 3 pd-server
03:58:17 PM 1003 1229 0.99 1.98 0.00 0.00 2.97 0 tidb-server
03:58:17 PM 1003 1275 0.00 0.99 0.00 0.00 0.99 3 ng-monitoring-s
03:58:17 PM 0 1598 0.00 0.99 0.00 0.00 0.99 3 dockerd
03:58:17 PM 974 2592 0.99 0.99 0.00 0.00 1.98 3 engine
03:58:17 PM 0 4859 0.99 0.00 0.00 0.00 0.99 3 gvfs-udisks2-vo
03:58:17 PM 0 2198297 0.00 0.99 0.00 0.00 0.99 2 pidstat03:58:17 PM UID PID %usr %system %guest %wait %CPU CPU Command
03:58:18 PM 1003 1223 0.00 2.00 0.00 0.00 2.00 1 tikv-server
03:58:18 PM 1003 1227 6.00 5.00 0.00 0.00 11.00 3 pd-server
03:58:18 PM 1003 1229 1.00 4.00 0.00 0.00 5.00 0 tidb-server
03:58:18 PM 1003 1275 0.00 1.00 0.00 0.00 1.00 3 ng-monitoring-s03:58:18 PM UID PID %usr %system %guest %wait %CPU CPU Command
03:58:19 PM 1003 1223 0.00 3.00 0.00 0.00 3.00 1 tikv-server
03:58:19 PM 1003 1227 4.00 7.00 0.00 0.00 11.00 3 pd-server
03:58:19 PM 1003 1229 0.00 3.00 0.00 0.00 3.00 0 tidb-server
03:58:19 PM 0 2198297 0.00 1.00 0.00 0.00 1.00 2 pidstat
- 默认支持滚动打印输出,采集不同时间段的数据变化
- CPU的百分比是 全部CPU相加的和
iostat -xz 1
- 显示了存储设备的I/O指标
[root@iZt4n613wtbscz79890ik3Z grata]# iostat -xz 1
Linux 3.10.0-957.21.3.el7.x86_64 (iZt4n613wtbscz79890ik3Z) 07/25/2024 _x86_64_ (4 CPU)avg-cpu: %user %nice %system %iowait %steal %idle1.00 0.00 0.25 0.16 0.00 98.59Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 1.26 6.09 4.48 5.90 168.99 73.58 46.73 0.11 14.19 24.81 6.13 0.32 0.33
- 需要检查的列如下
r/s、w/s、rkB/s、wkB/s:每秒向设备返送的读、写次数,读、写字节数。可以利用这些指标对业务负载进行画像来评判是否是性能问题
await:I/O的平均响应时间,毫秒为单位,应用需要承受的时间,包含I/O队列时间和服务时间。超过预期的平局响应时间,可看作设备已饱和或者设备层面有问题的表征
avgqu-sz:设备请求队列的平均长度。比1大的值有可能是发生饱和的表征。对于多块磁盘的虚拟设备来说,通常以并行的方式处理请求
%util:设备使用率。设备繁忙程度的百分比,显示了每秒设备开展实际工作的时间占比。大于60%的值通常会导致性能变差,可以通过await字段确认接近100%的值通常代表了设备达到饱和测状态
free -m
- 输出显示了使用兆字节(MB)作为单位的可用内存。
[root@aaaaaa ~]# free -mtotal used free shared buff/cache available
Mem: 31933 5504 16624 374 9805 25604
Swap: 16127 0 16127
- 检查可以用内存 available 是否接近0
- 显示了系统中还有多少实际剩余内存可用,包括缓冲区和页缓存区
sar -n DEV 1
- 查看网络设备指标
[root@aaaaaa ~]# sar -n DEV 1
Linux 4.18.0-305.el8.x86_64 (aaaaaa.com) 07/25/2024 _x86_64_ (4 CPU)05:36:45 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
05:36:46 PM veth0b422ee 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:46 PM vethf63044a 11.00 10.00 0.77 1.78 0.00 0.00 0.00 0.00
05:36:46 PM lo 211.00 211.00 81.49 81.49 0.00 0.00 0.00 0.00
05:36:46 PM veth013bc86 2.00 2.00 0.13 0.36 0.00 0.00 0.00 0.00
05:36:46 PM veth49c91fb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:46 PM br-bff1beb338f3 13.00 12.00 0.72 2.13 0.00 0.00 0.00 0.00
05:36:46 PM vetha675b99 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:46 PM virbr0-nic 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:46 PM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:46 PM ens160 21.00 22.00 2.64 1.92 0.00 0.00 0.00 0.00
05:36:46 PM ens192 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:46 PM br-86e8f1f53da9 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:46 PM virbr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:46 PM veth046f110 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:46 PM vethdbf6265 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0005:36:46 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
05:36:47 PM veth0b422ee 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:47 PM vethf63044a 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:47 PM lo 279.00 279.00 61.36 61.36 0.00 0.00 0.00 0.00
05:36:47 PM veth013bc86 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:47 PM veth49c91fb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:47 PM br-bff1beb338f3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:47 PM vetha675b99 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:47 PM virbr0-nic 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:47 PM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:47 PM ens160 15.00 17.00 1.18 3.72 0.00 0.00 0.00 0.00
05:36:47 PM ens192 1.00 0.00 0.06 0.00 0.00 0.00 0.00 0.00
05:36:47 PM br-86e8f1f53da9 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:47 PM virbr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:47 PM veth046f110 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
05:36:47 PM vethdbf6265 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
- 通过接口吞吐量信息 rxkB/s 和 txkB/s 来检查是否有指标达到了上线
sar -n TCP,ETCP 1
- 查看TCP指标和TCP错误信息
[root@aaaaaa ~]# sar -n TCP,ETCP 1
Linux 4.18.0-305.el8.x86_64 (aaaaaa.com) 07/25/2024 _x86_64_ (4 CPU)05:41:07 PM active/s passive/s iseg/s oseg/s
05:41:08 PM 0.00 0.00 207.00 207.0005:41:07 PM atmptf/s estres/s retrans/s isegerr/s orsts/s
05:41:08 PM 0.00 0.00 0.00 0.00 0.0005:41:08 PM active/s passive/s iseg/s oseg/s
05:41:09 PM 0.00 0.00 243.00 243.0005:41:08 PM atmptf/s estres/s retrans/s isegerr/s orsts/s
05:41:09 PM 0.00 0.00 0.00 0.00 0.0005:41:09 PM active/s passive/s iseg/s oseg/s
05:41:10 PM 0.00 0.00 190.00 190.0005:41:09 PM atmptf/s estres/s retrans/s isegerr/s orsts/s
05:41:10 PM 0.00 0.00 0.00 0.00 0.0005:41:10 PM active/s passive/s iseg/s oseg/s
05:41:11 PM 0.00 0.00 250.00 250.00
- 相关字段解释
active/s:每秒本地发起的TCP连接的数量(通过connect()创建)
passive/s:每秒远端发起的TCP连接的数量(通过accept()创建)
retrans/s:每秒TCP重传的数量
- 主动和被动连接计数杜宇业务负载画像有作用
- 重传则是网络或者远端主机有问题的征兆
top
- 浏览系统和进程的摘要信息
top - 17:47:40 up 3 days, 2:45, 7 users, load average: 0.83, 1.01, 0.97
Tasks: 435 total, 1 running, 434 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 1.8 sy, 0.0 ni, 97.5 id, 0.0 wa, 0.3 hi, 0.2 si, 0.0 st
MiB Mem : 31934.0 total, 16631.2 free, 5485.8 used, 9816.9 buff/cache
MiB Swap: 16128.0 total, 16128.0 free, 0.0 used. 25622.2 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1227 tidb 20 0 11.1g 206420 60536 S 10.3 0.6 394:00.62 pd-server 1229 tidb 20 0 2295288 387072 96084 S 3.3 1.2 123:34.31 tidb-server 1223 tidb 20 0 3337544 1.8g 298936 S 2.3 5.8 92:52.60 tikv-server 1226 tidb 20 0 5368736 310792 65096 S 1.3 1.0 46:56.33 prometheus 1275 tidb 20 0 2211264 107928 34080 S 1.0 0.3 26:04.03 ng-monitoring-s 1039 root 20 0 370864 12792 10820 S 0.3 0.0 2:10.48 vmtoolsd 1222 tidb 20 0 123160 30944 14632 S 0.3 0.1 1:53.78 alertmanager 2592 collie 20 0 1797752 250376 38064 S 0.3 0.8 18:02.22 engine 1 root 20 0 250652 12788 8868 S 0.0 0.0 3:11.00 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.28 kthreadd 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp 6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-events_highpri 9 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq 10 root 20 0 0 0 0 S 0.0 0.0 1:06.47 ksoftirqd/0 11 root 20 0 0 0 0 I 0.0 0.0 1:22.51 rcu_sched 12 root rt 0 0 0 0 S 0.0 0.0 0:00.79 migration/0 13 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1 16 root rt 0 0 0 0 S 0.0 0.0 0:00.01 watchdog/1 17 root rt 0 0 0 0 S 0.0 0.0 0:00.80 migration/1 18 root 20 0 0 0 0 S 0.0 0.0 0:18.96 ksoftirqd/1 20 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/1:0H-events_highpri 21 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/2 22 root rt 0 0 0 0 S 0.0 0.0 0:00.01 watchdog/2 23 root rt 0 0 0 0 S 0.0 0.0 0:00.82 migration/2 24 root 20 0 0 0 0 S 0.0 0.0 0:19.24 ksoftirqd/2
相关文章:
linux 性能60秒分析
linux 60秒分析 需要运行的工具是 1、uptime 2、dmesg | tail 3、vmstat 1 4、mpstat -P ALL 1 5、pidstat 1 6、iostat -xz 1 7、free -m 8、sar -n DEV 1 9、sar -n TCP,ETCP 1 10、topuptime 快速检查平均负载 [rootaaaaaa ~]# uptime15:17:20 up 3 days, 14 min, 7 us…...

Redisson全面解析:从使用方法到工作原理的深度探索
文章目录 写在文章开头详解Redisson基本数据类型基础配置字符串操作列表操作映射集阻塞队列延迟队列更多关于Redisson详解Redisson 中的原子类详解redisson中的发布订阅模型小结参考写在文章开头 Redisson是基于原生redis操作指令上进一步的封装,屏蔽了redis数据结构的实现细…...

neo4j-解决导入数据后出现:Database ‘xxxx‘ is unavailable. Run :sysinfo for more info.
目录 问题描述 解决方法 重新导入 问题描述 最近在linux上部署了neo4j,参照之前写的博客:neo4j-数据的导出和导入_neo4j数据导入导出-CSDN博客 进行了数据导出、导入操作。但是在进行导入后,重新登录网页版neo4j,发现对应的数据库状态变…...

51单片机之引脚图(详解)
8051单片机引脚分类与功能笔记 1. 电源引脚 VCC(第40脚):接入5V电源,为单片机提供工作电压。GND(第20脚):接地端,确保电路的电位参考点。 2.时钟引脚 XTAL1(第19脚&a…...
Hangfire.NET:.NET任务调度
引言:为何选择 Hangfire? 在开发.NET 应用程序时,我们常常会遇到这样的场景:应用程序需要定期发送报告,像财务报表,每日业务数据汇总报告等,这些报告需要定时生成并发送给相关人员;…...
深入解析:React 事件处理的秘密与高效实践
在 React 中,事件处理是构建交互式应用的核心。本文将带你深入探索 React 事件处理的机制、最佳实践以及如何避免常见陷阱,助你写出更高效、更健壮的代码。 1. React 事件处理的独特之处 合成事件(SyntheticEvent) React 使用合…...

开源像素字体,可用于独立游戏开发
方舟像素字体 / Ark Pixel Font 开源的泛中日韩像素字体,使用 SIL 开放字体许可证 第1.1版(SIL Open Font License 1.1)授权。 支持 10、12 和 16 像素尺寸。 支持语言特殊字形:中文-中国大陆、中文-香港特别行政区、中文-台湾…...

【论文阅读】Comment on the Security of “VOSA“
Comment on the Security of Verifiable and Oblivious Secure Aggregation for Privacy-Preserving Federated Learning -- 关于隐私保护联邦中可验证与遗忘的安全聚合的安全性 论文来源摘要Introduction回顾 VOSA 方案对VOSA不可伪造性的攻击对于类型 I 的攻击对于类型 II 的…...

了解传输层TCP协议
目录 一、TCP协议段格式 二、TCP原理 1.确认应答 2.超时重传 3.连接管理 建立连接 断开连接 4.滑动窗口 5.流量控制 6.拥塞控制 7.延时应答 8.捎带应答 9.面向字节流 10.TCP异常情况 TCP,即Transmission Control Protocol,传输控制协议。人如…...
flask实现用户名查重,重复的用户名阻止注册,以及如何优化
在 Flask 中实现用户名查重,并阻止重复的用户名进行注册,可以使用数据库(如 SQLite、MySQL、PostgreSQL)存储用户信息,并在注册时检查用户名是否已存在。以下是实现步骤: 1. 安装 Flask 及 SQLAlchemy 确保…...

ASP.NET Core对JWT的封装
目录 JWT封装 [Authorize]的注意事项 JWT封装 NuGet 库 |Microsoft.AspNetCore.Authentication.JwtBearer 9.0.1https://www.nuget.org/packages/Microsoft.AspNetCore.Authentication.JwtBearerhttps://www.nuget.org/packages/Microsoft.AspNetCore.Authentication.JwtBea…...

wordpressAI工具,已接入Deepseek 支持自动生成文章、生成图片、生成长尾关键词、前端AI窗口互动、批量采集等
基于关键词或现有内容生成SEO优化的文章,支持多种AI服务(如OpenAI、百度文心一言、智谱AI等),并提供定时任务、内容采集、关键词生成等功能。 核心功能 文章生成 关键词生成:根据输入的关键词生成高质量文章。 内容…...
Ollama部署 DeepSeek-R1:70B 模型的详细步骤
1. 确认环境准备 (1) 硬件要求 显存需求:70B 参数的模型需要大量显存。若使用 NVIDIA T4(16GB 显存),需多卡并行(如 8 卡)或开启量化(如 q4_0、q8_0)。内存需求:建议至…...

PAT乙级( 1009 说反话 1010 一元多项式求导)C语言版本超详细解析
1009 说反话 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母&#x…...

学习笔记十九:K8S生成pod过程
K8S生成pod过程 流程图具体生成过程用户提交 Pod 定义API Server 处理请求调度器分配节点(Scheduling)目标节点上的 Pod 创建网络配置状态上报与监控控制器管理(Controller Manager)就绪与服务发现 关键错误场景高级特性 流程图 具…...
Qwen2-VL:增强视觉语言模型对世界任意分辨率的感知能力
1、摘要 Qwen2-VL系列是Qwen-VL模型的高级升级版本,它重新定义了传统视觉处理中预设分辨率的方法。Qwen2-VL引入了Naive Dynamic Resolution机制,使模型能够动态处理不同分辨率的图像,并将其转换为不同数量的视觉标记。这种机制使模型能够生…...

原神新版本角色牌上新 七圣召唤增添新玩法
在原神这款游戏中,5.4版本更新后七圣召唤玩法将新增2张角色牌和对应天赋牌、3张行动牌,并进行部分卡牌平衡调整,今天就给大家介绍一下。 一、角色牌【基尼奇】 1.元素战技:选一个我方角色,自身附属钩索链接并进入夜魂…...
Spring 中的 事务 隔离级别以及传播行为
1. 事务隔离级别(Isolation Level) 事务隔离级别定义了事务在并发环境下的行为,主要解决以下问题: 脏读(Dirty Read):一个事务读取了另一个未提交事务的数据。 不可重复读(Non-Re…...
为多个GitHub账户配置SSH密钥
背景 当需要同时使用多个GitHub账户(例如工作和个人账户)时,默认的SSH配置可能导致冲突。本文介绍如何通过生成不同的SSH密钥对并配置SSH客户端来管理多个账户。 操作步骤 生成SSH密钥对 为每个GitHub账户生成独立的密钥对,并指…...

OSPF基础(3):区域划分
OSPF的区域划分 1、区域产生背景 路由器在同一个区域中泛洪LSA。为了确保每台路由器都拥有对网络拓扑的一致认知,LSDB需要在区域内进行同步。OSPF域如果仅有一个区域,随着网络规模越来越大,OSPF路由器的数量越来越多,这将导致诸…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...

【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...

Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...