mongostat跟踪Mongodb运行的状态
版本控制
从 MongoDB 4.4 开始,mongostat 现在与 MongoDB 服务器分开发布,并使用自己的版本控制,初始版本为100.0.0. 之前,
mongostat 与 MongoDB Server 一起发布并使用匹配的版本控制。
兼容性
mongostat 版本100.7.3支持以下版本的 MongoDB Server:
MongoDB 6.0
MongoDB 5.0
MongoDB 4.4
MongoDB 4.2
mongostat 实用程序提供当前正在运行的mongod 或者 mongos 实例状态的概述 。
mongostat 功能上类似于 UNIX/Linux 文件系统实用程序vmstat。
访问权限
为了连接到 mongod 强制授权 --auth 选项,指定 --username 和–password选项,并且连接用户必须具有 serverStatus
对集群资源的特权操作。
内置角色 clusterMonitor 提供此特权以及其他特权。
sit_rs1:PRIMARY> db.getRole("clusterMonitor", { showPrivileges: true }).privileges[0]
{"resource" : {"cluster" : true},"actions" : ["checkFreeMonitoringStatus","connPoolStats","getDefaultRWConcern","getCmdLineOpts","getLog","getParameter","getShardMap","hostInfo","inprog","listDatabases","listSessions","listShards","netstat","replSetGetConfig","replSetGetStatus","serverStatus", # ------> serverStatus 特权 "shardingState","top", "useUUID"]
}
示例
–uri=<connectionString> 指定可解析的 URI 连接字符串 MongoDB 部署的信息,用引号引起来:
root@ubuntu-x64_01:/opt# mongostat 5 --uri='mongodb://admin:******@192.168.88.11:27018/admin?authSource=admin'
2023-07-28T14:51:32.527+0800 WARNING: On some systems, a password provided directly in a connection string or using --uri may be visible to system status programs such as `ps` that may be invoked by other users. Consider omitting the password to provide it via stdin, or using the --config option to specify a configuration file with the password.
insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn set repl time*0 *0 *0 *0 0 1|0 0.0% 0.3% 0 1.78G 105M 0|0 1|0 455b 10.9k 9 sit_rs1 SEC Jul 28 14:51:37.564*0 *0 *0 *0 0 2|0 0.0% 0.3% 0 1.78G 105M 0|0 1|0 437b 11.1k 9 sit_rs1 SEC Jul 28 14:51:42.563*0 *0 *0 *0 0 1|0 0.0% 0.3% 0 1.78G 105M 0|0 1|0 456b 11.0k 9 sit_rs1 SEC Jul 28 14:51:47.565*0 *0 *0 *0 0 2|0 0.0% 0.3% 0 1.78G 105M 0|0 1|0 438b 11.1k 9 sit_rs1 SEC Jul 28 14:51:52.560*0 *0 *0 *0 0 1|0 0.0% 0.3% 0 1.78G 105M 0|0 1|0 456b 11.0k 9 sit_rs1 SEC Jul 28 14:51:57.561*0 *0 *0 *0 0 2|0 0.0% 0.3% 0 1.78G 105M 0|0 1|0 437b 11.1k 9 sit_rs1 SEC Jul 28 14:52:02.560*0 *0 *0 *0 0 1|0 0.0% 0.3% 0 1.78G 105M 0|0 1|0 456b 11.0k 9 sit_rs1 SEC Jul 28 14:52:07.562*0 *0 *0 *0 0 1|0 0.0% 0.3% 0 1.78G 105M 0|0 1|0 398b 11.1k 9 sit_rs1 SEC Jul 28 14:52:12.564*0 *0 *0 *0 0 1|0 0.0% 0.3% 0 1.78G 105M 0|0 1|0 495b 11.0k 9 sit_rs1 SEC Jul 28 14:52:17.565*0 *0 *0 *0 0 1|0 0.0% 0.3% 1 1.78G 105M 0|0 1|0 399b 10.9k 9 sit_rs1 SEC Jul 28 14:52:22.557
100.0从版本开始 mongostat ,连接字符串也可以作为位置参数提供,而不使用 --uri 选项:作为位置参数,可以在命令行上的任何点指定连接字符串,只要它以 mongodb:// 或 mongodb+srv:// 开头。例如:
root@ubuntu-x64_01:/opt# mongostat 5 --username admin --password ****** mongodb://192.168.88.11:27018 --authenticationDatabase=admin
2023-07-28T14:54:07.588+0800 WARNING: On some systems, a password provided directly using --password may be visible to system status programs such as `ps` that may be invoked by other users. Consider omitting the password to provide it via stdin, or using the --config option to specify a configuration file with the password.
insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn set repl time*0 *0 *0 *0 0 1|0 0.0% 0.3% 0 1.78G 106M 0|0 1|0 415b 10.9k 9 sit_rs1 SEC Jul 28 14:54:12.614*0 *0 *0 *0 0 1|0 0.0% 0.3% 0 1.78G 106M 0|0 1|0 478b 11.2k 9 sit_rs1 SEC Jul 28 14:54:17.612*0 *0 *0 *0 0 1|0 0.0% 0.3% 1 1.78G 106M 0|0 1|0 416b 10.9k 9 sit_rs1 SEC Jul 28 14:54:22.614*0 *0 *0 *0 0 1|0 0.0% 0.3% 0 1.78G 106M 0|0 1|0 438b 11.2k 9 sit_rs1 SEC Jul 28 14:54:27.612*0 *0 *0 *0 0 1|0 0.0% 0.3% 0 1.78G 106M 0|0 1|0 455b 10.9k 9 sit_rs1 SEC Jul 28 14:54:32.616*0 *0 *0 *0 0 1|0 0.0% 0.3% 0 1.78G 106M 0|0 1|0 439b 11.0k 9 sit_rs1 SEC Jul 28 14:54:37.608*0 *0 *0 *0 0 1|0 0.0% 0.3% 0 1.78G 106M 0|0 1|0 455b 11.0k 9 sit_rs1 SEC Jul 28 14:54:42.616*0 *0 *0 *0 0 1|0 0.0% 0.3% 0 1.78G 106M 0|0 1|0 439b 11.0k 9 sit_rs1 SEC Jul 28 14:54:47.610*0 *0 *0 *0 0 1|0 0.0% 0.3% 0 1.78G 106M 0|0 1|0 455b 11.1k 9 sit_rs1 SEC Jul 28 14:54:52.615*0 *0 *0 *0 0 1|0 0.0% 0.3% 0 1.78G 106M 0|0 1|0 439b 11.0k 9 sit_rs1 SEC Jul 28 14:54:57.610
或者,您可以使用 --host 和 --port 指定主机和端口的选项:如果 mongod 实例需要认证,可以指定用户 -u,以及认证数据库 --authenticationDatabase。如果省略 --password 选项会提示输入密码。
root@ubuntu-x64_01:/opt# mongostat 5 --username=admin --password=****** --authenticationDatabase=admin --host=192.168.88.11 --port=27017
2023-07-28T15:00:25.446+0800 WARNING: On some systems, a password provided directly using --password may be visible to system status programs such as `ps` that may be invoked by other users. Consider omitting the password to provide it via stdin, or using the --config option to specify a configuration file with the password.
insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn set repl time*0 *0 *0 *0 0 2|0 0.0% 0.2% 0 1.83G 106M 0|0 1|0 1.43k 11.6k 17 sit_rs1 PRI Jul 28 15:00:30.478*0 *0 *0 *0 0 2|0 0.0% 0.2% 0 1.83G 106M 0|0 1|0 1.01k 11.7k 17 sit_rs1 PRI Jul 28 15:00:35.472*0 *0 *0 *0 0 2|0 0.0% 0.2% 0 1.83G 106M 0|0 1|0 1.63k 11.7k 17 sit_rs1 PRI Jul 28 15:00:40.470*0 *0 *0 *0 0 2|0 0.0% 0.2% 0 1.83G 106M 0|0 1|0 1.01k 11.7k 17 sit_rs1 PRI Jul 28 15:00:45.469*0 *0 *0 *0 0 2|0 0.0% 0.2% 0 1.83G 106M 0|0 1|0 1.43k 11.6k 17 sit_rs1 PRI Jul 28 15:00:50.474*0 *0 *0 *0 0 2|0 0.0% 0.2% 0 1.83G 106M 0|0 1|0 970b 11.5k 17 sit_rs1 PRI Jul 28 15:00:55.468*0 *0 *0 *0 0 2|0 0.0% 0.2% 0 1.83G 106M 0|0 1|0 1.55k 11.9k 17 sit_rs1 PRI Jul 28 15:01:00.471*0 *0 *0 *0 0 2|0 0.0% 0.2% 0 1.83G 106M 0|0 1|0 970b 11.5k 17 sit_rs1 PRI Jul 28 15:01:05.469*0 *0 *0 *0 0 2|0 0.0% 0.2% 0 1.83G 106M 0|0 1|0 1.47k 11.8k 17 sit_rs1 PRI Jul 28 15:01:10.473*0 *0 *0 *0 1 4|0 0.0% 0.2% 0 1.83G 106M 0|0 1|0 2.98k 13.3k 17 sit_rs1 PRI Jul 28 15:01:15.468
连接到副本集或分片集群,使用 --discover 选项 发现并报告所有成员的统计数据 。
- 在许多情况下,使用 --discover选项将有助于提供整个机器组状态的更完整的快照。如果连接到分片集群的mongos进程运行在本地机器的27017端口上,您可以使用以下表格返回集群所有成员的统计信息:
root@ubuntu-x64_01:/opt# mongostat 5 'mongodb://admin:******@192.168.88.11:27017,192.168.88.11:27018,192.168.88.11:27019/admin?authSource=admin&replicaSet=sit_rs1&readPreference=primary&ssl=false' --discoverhost insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn set repl time
192.168.88.11:27017 *0 *0 *0 *0 0 1|0 0.0% 0.2% 0 1.83G 107M 0|0 1|0 875b 11.1k 17 sit_rs1 PRI Jul 28 15:09:56.999
192.168.88.11:27018 *0 *0 *0 *0 0 1|0 0.0% 0.3% 0 1.78G 107M 0|0 1|0 395b 10.8k 9 sit_rs1 SEC Jul 28 15:09:57.017
192.168.88.11:27019 *0 *0 *0 *0 0 1|0 0.0% 0.4% 0 1.78G 116M 0|0 1|0 395b 10.8k 10 sit_rs1 SEC Jul 28 15:09:57.042192.168.88.11:27017 *0 *0 *0 *0 0 3|0 0.0% 0.2% 0 1.83G 107M 0|0 1|0 1.57k 12.2k 17 sit_rs1 PRI Jul 28 15:10:01.990
192.168.88.11:27018 *0 *0 *0 *0 0 2|0 0.0% 0.3% 0 1.78G 107M 0|0 1|0 498b 11.2k 9 sit_rs1 SEC Jul 28 15:10:02.020
192.168.88.11:27019 *0 *0 *0 *0 0 2|0 0.0% 0.4% 0 1.78G 116M 0|0 1|0 539b 11.4k 10 sit_rs1 SEC Jul 28 15:10:02.036192.168.88.11:27017 *0 *0 *0 *0 0 1|0 0.0% 0.2% 0 1.83G 107M 0|0 1|0 875b 11.1k 17 sit_rs1 PRI Jul 28 15:10:06.996
192.168.88.11:27018 *0 *0 *0 *0 0 1|0 0.0% 0.3% 0 1.78G 107M 0|0 1|0 396b 10.8k 9 sit_rs1 SEC Jul 28 15:10:07.019
192.168.88.11:27019 *0 *0 *0 *0 0 1|0 0.0% 0.4% 0 1.78G 116M 0|0 1|0 395b 10.8k 10 sit_rs1 SEC Jul 28 15:10:07.042192.168.88.11:27017 *0 *0 *0 *0 0 3|0 0.0% 0.2% 0 1.83G 107M 0|0 1|0 1.53k 12.0k 17 sit_rs1 PRI Jul 28 15:10:11.996
192.168.88.11:27018 *0 *0 *0 *0 0 2|0 0.0% 0.3% 0 1.78G 107M 0|0 1|0 498b 11.2k 9 sit_rs1 SEC Jul 28 15:10:12.016
192.168.88.11:27019 *0 *0 *0 *0 0 2|0 0.0% 0.4% 0 1.78G 116M 0|0 1|0 538b 11.4k 10 sit_rs1 SEC Jul 28 15:10:12.044
在交互式界面中查看统计信息使用 --interactive 以非滚动方式查看统计信息的选项 风格的交互式输出。这 --interactive 选项允许您突出显示要查看的特定主机、列或字段。当与 --discover, --interactive 显示副本集或分片集群的所有成员的统计信息,如下例所示:
- 退出: ‘q’ or <Esc>
- 高亮:
‘v’ 用于切换行
‘c’ 用于切换列
‘s’ 用于切换单元格
<Space> 清除所有高亮显示 - 重绘: 'r’修复损坏的输出。
- 箭头: 用定位行、列、单元格。
#
root@ubuntu-x64_01:/opt# mongostat 5 'mongodb://admin:******@192.168.88.11:27017,192.168.88.11:27018,192.168.88.11:27019/admin?authSource=admin&replicaSet=sit_rs1&readPreference=primary&ssl=false' --discover --interactivehost insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn set repl time
192.168.88.11:27017 *0 *0 *0 *0 0 2|0 0.1% 0.3% 0 1.83G 107M 0|0 1|0 1.44k 11.9k 17 sit_rs1 PRI Jul 28 16:24:02.819
192.168.88.11:27018 *0 *0 *0 *0 0 1|0 0.1% 0.3% 0 1.79G 106M 0|0 1|0 398b 10.9k 9 sit_rs1 SEC Jul 28 16:24:02.829
192.168.88.11:27019 *0 *0 *0 *0 0 1|0 0.1% 0.4% 0 1.79G 102M 0|0 1|0 397b 10.9k 10 sit_rs1 SEC Jul 28 16:24:02.856Press '?' to toggle help
-o 指定 mongostat 输出字段。您可以指定任何 serverStatus 作为 mongostat 输出列。
以下示例使用自定义字段 mongostat:
root@ubuntu-x64_01:/opt# mongostat 5 --username=admin --password=****** --authenticationDatabase=admin --host=192.168.88.11 --port=27017 -o='host,opcounters.insert.rate()=Insert Rate,opcounters.query.rate()=Query Rate,opcounters.command.rate()=Command Rate,wiredTiger.cache.pages requested from the cache=Pages Req,metrics.document.inserted=inserted rate'host Insert Rate Query Rate Command Rate Pages Req inserted rate
192.168.88.11:27017 0 0 1 101249 0
192.168.88.11:27017 0 0 2 101303 0
192.168.88.11:27017 0 0 1 101340 0
192.168.88.11:27017 0 0 2 101394 0
192.168.88.11:27017 0 0 2 101431 0
192.168.88.11:27017 0 0 2 101487 0
192.168.88.11:27017 0 0 2 101524 0
192.168.88.11:27017 0 0 2 101578 0
192.168.88.11:27017 0 0 2 101798 0# --discover --interactive 显示副本集或分片集群的所有成员的统计信息
root@ubuntu-x64_01:/opt# mongostat 5 'mongodb://admin:******@192.168.88.11:27017,192.168.88.11:27018,192.168.88.11:27019/admin?authSource=admin&replicaSet=sit_rs1&readPreference=primary&ssl=false' -o='host,opcounters.insert.rate()=Insert Rate,opcounters.query.rate()=Query Rate,opcounters.command.rate()=Command Rate,wiredTiger.cache.pages requested from the cache=Pages Req,metrics.document.inserted=inserted rate' --discover --interactive host Insert Rate Query Rate Command Rate Pages Req inserted rate
192.168.88.11:27017 0 0 1 160296 0
192.168.88.11:27018 0 0 1 118386 0
192.168.88.11:27019 0 0 1 132224 0Press '?' to toggle help
| 计算器 | 自定义字段名 |
|---|---|
| opcounters.insert.rate | 插入率 |
| opcounters.query.rate | 查询率 |
| opcounters.command.rate | 命令率 |
| wiredTiger.cache.pages | 页面请求 |
| metrics.document.inserted | 页面重新插入率 |
Fields
mongostat 返回反映 1 秒内操作的值。当mongostat <sleeptime> 的值大于 1 时,mongostat 对统计数据进行平均以反映每秒的平均操作数。mongostat 输出以下字段:
| 字段 | 描述 |
|---|---|
| host | 主机节点的IP地址 |
| inserts | 每秒插入数据库的对象数。如果后跟星号(例如*),则该数据指的是复制操作 |
| query | 每秒的查询操作数。 |
| update | 每秒更新操作的数量。 |
| delete | 每秒删除操作的数量。 |
| getmore | 每秒获取更多(即光标批处理)操作的数量。 |
| command | 每秒的命令数。在辅助系统上,mongostat 由管道字符分隔 表示两个值(例如:“ |
| flushes | 对于WiredTiger存储引擎,flushes 指的是每个轮询间隔之间触发的 WiredTiger 检查点的数量。 |
| dirty | 仅适用于WiredTiger存储引擎。WiredTiger 缓存中脏字节的百分比。 |
| used | 仅适用于WiredTiger存储引擎。正在使用的 WiredTiger 缓存的百分比。 |
| vsize | 在最后一次调用mongostat时,进程使用的虚拟内存量(以兆字节为单位)。 |
| res | 在最后一次调用mongostat时,进程使用的驻留内存量(以兆字节为单位)。 |
| locked | 全局写锁的时间百分比。仅在MongoDB实例的3.0之前版本上运行时出现。 |
| qr | 等待从 MongoDB 实例读取数据的客户端队列的长度。 |
| qw | 等待从 MongoDB 实例写入数据的客户端队列的长度。 |
| ar | 执行读取操作的活动客户端数量。 |
| aw | 执行写入操作的活动客户端数量。 |
| netIn | MongoDB 实例接收的网络流量(以字节为单位) 。这包括来自mongostat本身。 |
| netOut | MongoDB 实例发送的网络流量(以字节为单位) 。这包括来自mongostat本身。 |
| conn | 打开连接的总数。 |
| set | 副本集的名称(如果适用)。 |
| repl | 成员的复制状态。 |
相关文章:
mongostat跟踪Mongodb运行的状态
版本控制 从 MongoDB 4.4 开始,mongostat 现在与 MongoDB 服务器分开发布,并使用自己的版本控制,初始版本为100.0.0. 之前, mongostat 与 MongoDB Server 一起发布并使用匹配的版本控制。 兼容性 mongostat 版本100.7.3支持以下…...
华为数通HCIA-数通网络基础
基础概念 通信:两个实体之间进行信息交流 数据通信:网络设备之间进行的通信 计算机网络:实现网络设备之间进行数据通信的媒介 园区网络(企业网络)/私网/内网:用于实现园区内部互通,并且需要部…...
【设计模式】详解单例设计模式(包含并发、JVM)
文章目录 1、背景2、单例模式3、代码实现1、第一种实现(饿汉式)为什么属性都是static的?2、第二种实现(懒汉式,线程不安全)3、第三种实现(懒汉式,线程安全)4、第四种实现…...
监控和可观察性在 DevOps 中的作用!
在不断发展的DevOps世界中,深入了解系统行为、诊断问题和提高整体性能的能力是首要任务之一。监控和可观察性是促进这一过程的两个关键概念,为系统的健康状况和性能提供有价值的可见性。虽然这些术语经常互换使用,但它们代表了理解和管理复杂…...
论文分享:PowerTCP: Pushing the Performance Limits of Datacenter Networks
1 原论文的题目(中英文)、题目中包含了哪些关键词?这些关键词的相关知识分别是什么? 题目:PowerTCP: Pushing the Performance Limits of Datacenter Networks PowerTCP:逼近数据中心的网络性能极限 2 论…...
浏览器的同源策略 - 跨域问题
1.什么是跨域 跨域问题的实质是浏览器的同源策略造成的。浏览器同源策略是浏览器为 JavaScript 施加的限制。简单点说就是非同源会出现如下等限制: 无法访问其他源下的网页的 Cookies,Storage等;无法访问其他源下的DOM对象和 JS 对象;无法使…...
go 查询采购单设备事项[小示例]V2-两种模式{严格,包含模式}
第一版: https://mp.csdn.net/mp_blog/creation/editor/131979385 第二版: 优化内容: 检索数据的两种方式: 1.严格模式--找寻名称是一模一样的内容,在上一个版本实现了 2.包含模式,也就是我输入检索关…...
c++11 标准模板(STL)(std::basic_filebuf)(八)
定义于头文件 <fstream> template< class CharT, class Traits std::char_traits<CharT> > class basic_filebuf : public std::basic_streambuf<CharT, Traits> std::basic_filebuf 是关联字符序列为文件的 std::basic_streambuf 。输入序…...
行为型模式之解释器模式
解释器模式(Interpreter Pattern) 解释器模式(Interpreter Pattern)是一种行为设计模式,它用于对语言的文法进行解释和解析,以实现特定的操作。 在解释器模式中,存在以下几个角色: 抽…...
阿里云域名备案
最好的爱情,不是因为我们彼此需要在一起,而是因为我们彼此想要在一起。 阿里云的域名如何备案,域名备案和ICP备案一样吗?? 截至我所掌握的知识(2021年9月),阿里云的域名备案和ICP备案…...
Clion开发Stm32之温湿度传感器(DS18B20)驱动编写和测试
前言 涵盖之前文章: Clion开发STM32之HAL库GPIO宏定义封装(最新版)Clion开发stm32之微妙延迟(采用nop指令实现)Clion开发STM32之日志模块(参考RT-Thread) DSP18B20驱动文件 头文件 /*******************************************************************************Copy…...
文档管理NAS储存安全吗?
关键词:私有化、知识管理系统、文档管理、群晖NAS、协同编辑 随着企业不断发展扩大,企业的知识文档也逐渐增多,很多企业方便管理及考虑数据安全问题会将文件数据储存至NAS。 但将企业文档数据放在NAS上就足够安全的吗? 天翎文档管…...
用windeployqt.exe打包Qt代码
首先找到我们编译Qt代码的对应Qt版本的dll目录,该目录下有windeployqt.exe: D:\DevTools\Qt\5.9\msvc2017_64\bin 在这个目录下打开cmd程序。 然后把要打包的exe放到一个单独的目录下,比如: 然后在cmd中调用: winde…...
【Python机器学习】实验04(2) 机器学习应用实践--手动调参
文章目录 机器学习应用实践1.1 准备数据此处进行的调整为:要所有数据进行拆分 1.2 定义假设函数Sigmoid 函数 1.3 定义代价函数1.4 定义梯度下降算法gradient descent(梯度下降) 此处进行的调整为:采用train_x, train_y进行训练 1.5 绘制决策边界1.6 计算…...
【爬虫案例】用Python爬取iPhone14的电商平台评论
用python爬取某电商网站的iPhone14评论数据, 爬取目标: 核心代码如下: 爬取到的5分好评: 爬取到的3分中评: 爬取到的1分差评: 所以说,用python开发爬虫真的很方面! 您好&…...
01)docker学习 centos7离线安装docker
docker学习 centos7离线安装docker 在实操前可以先看下docker教程,https://www.runoob.com/docker/docker-tutorial.html , 不过教程上都是在线安装方式,很方便,离线安装肯定比如在线麻烦点。 一、什么是Docker 在学习docker时,在网上看到一篇博文讲得很好,自己总结一下…...
前端 - 实习两个星期总结
文章目录 吐槽总结新人建议项目学习到的 今天已经是菜鸟实习的第二个星期了,怎么说呢,反正就是进的一个不大不小的厂,做着不难不易的事,菜鸟现在主要做的就是适配!现在就来总结一下,不过这之前,…...
MySQL——主从复制
1.理解MySQL主从复制原理。 2.完成MySQL主从复制。 1.理解MySQL主从复制原理。 1)、MySQL支持的复制类型 (1)、基于语句( statement )的复制 在主服务器上执行SQL 语句,在从服务器上执行同样的语句。 My…...
报表下载工具
1.需求说明 我有一堆文件的Url地址, 现在需要按照企业,项目和报表类型分类下载到对应的文件夹中 2.相关实体类 企业文件夹定义 package com.vz.utils.report;import lombok.Data; import java.util.ArrayList; import java.util.List; import java.uti…...
树及其遍历
文章目录 树树定义专业术语树分类 二叉树分类存储连续存储(完全二叉树)链式存储一般树的存储森林的存储 线索二叉树哈夫曼树构造步骤 遍历先序遍历中序遍历后续遍历 链式二叉树遍历具体代码已知两种遍历序列求原始二叉树已知先序和中序求后序已知中序和后…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
