云环境下PostgreSQL的Cgroup内存管理实践

Swap 分区性能调优:swappiness 参数从 0 到 100 的 4 种场景配置 本文深入探讨了Linux系统中Swap分区的性能调优,重点分析了swappiness参数从0到100的四种典型场景配置。针对数据库服务器、内存数据库、Web应用服务器和通用服务器等不同场景,提供了具体的参数设置建议和优化技巧,帮助用户根据实际需求平衡内存使用与系统性能。 阅读详情

本文整理于 HOW 2026 演讲内容,演讲者:刘智龙,平安科技PG数据库专家。

一、Cgroup内存管理概述

1.1 Cgroup的基本原理

Cgroup(Control Group)是Linux内核提供的进程组资源管理机制,可对一组进程的CPU时间、物理内存、IO、网络等资源进行配额限制、隔离与使用统计。在云环境中,同一物理主机上通常运行多个PG实例,每个实例通过Cgroup进行资源管理——这是各家云厂商的常见做法,容器技术同样基于Cgroup实现资源约束。

1.png

1.2 CPU管理与内存管理的本质差异

Cgroup对CPU和内存的管理逻辑有根本性的不同:

  • CPU控制的核心是时间分配。CPU通过时间片轮转实现共享,即使某Cgroup的CPU上限达到,任务只是运行变慢,仍可继续执行。
  • 内存控制的核心是Page计数。内存必须即时可用,一个任务占用的工作内存无法被其他任务复用(共享内存除外)。当内存达到上限时,不存在"降速运行"的选项,只能进行回收,若回收失败则进程被终止。

关键区别在于:CPU上限打满,任务还能跑,只是慢一些;内存上限打满,任务面临的是回收或死亡。

1.3 云环境下的超卖现象

在共享云主机上,多个Cgroup实例并发运行。若将所有Cgroup的限额简单相加,可能远超主机的物理内存,即"超卖"。但对于PG来说,超卖并不必然意味着实际内存不足——因为内存中的Cache部分是可以回收的。

实际内存占用可分为三类:私有内存(不可回收)、共享内存(如PG的Shared Buffers,由多进程共享,不可回收)、Cache(文件缓存,可回收)。多个实例的Cache存在大量空闲或可回收空间时,即使限额之和超过物理内存,实际使用量可能并未超限。

但若进行扩容或新增实例,导致OS内存水位线超标,系统会频繁回收Cache。此时回收谁的内存成了"运气问题",可能波及关键实例,引发性能抖动。

1.4 PG在OS上的内存层次

PG进程的内存占用可分解为三层结构:

  • RSS(常驻内存) :分为私有内存和共享内存,通常无法回收
  • Page Cache:文件缓存,可回收
  • Kernel层:内核自身的内存开销

2.png

在Cgroup层面,各实例拥有独立的LRU列表,回收时仅影响本Cgroup,实现了资源隔离。

二、Pages的计算与统计口径辨析

2.1 关键接口文件

Cgroup内存管理涉及的核心文件包括:

  • memory.stat:包含各类内存指标的详细统计,是观测内存使用的主要入口
  • memory.usage_in_bytes:官方不推荐直接使用,准确用量需自行计算
  • cgroup.procs:需确保所有PG进程(postmaster、checkpointer、bgwriter、walwriter、backend等)均加入此文件
  • memory.limit_in_bytes:定义Cgroup的内存上限

2.2 memory.stat 的核心指标解读

以一个实际案例为例:PG实例的shared_buffers=64GB,shared_memory_type=mmap,客户端约800个。memory.stat中的关键指标包括:

  • cache:Page Cache的大小
  • rss:匿名页和Swap内存,注意:这里的RSS与OS进程的RSS含义不同
  • mapped_file:文件共享内存大小,PG的共享内存在此项中统计
  • pgpgin / pgpgout:RSS+Cache的charge/uncharge页数
  • inactive_anon / active_anon:匿名页和Swap缓存的LRU分布
  • inactive_file / active_file:文件缓存的LRU分布

2.3 统计口径的核心偏差

通过手动计算可以发现Cgroup v1中的统计混乱问题:

shared_mem_mapped = inactive_anon + active_anon - rss
cache - shared_mem_mapped = inactive_file + active_file
rss + mapped_file = inactive_anon + active_anon
inactive_file + active_file + rss + mapped_file = rss + cache
  • Cgroup v1的RSS统计不包含file map类型的共享内存
  • PG的共享内存(无论mmap还是sysv方式)均被归类到mapped_file下
  • 大页场景下,共享内存甚至不出现在任何统计指标中(包括rss_huge)

2.4 进程RSS与Cgroup RSS的差异

查看PG各进程的RSS排序,通常checkpointer和bgwriter的RSS最大(均达60GB级别),这是因为这些进程频繁操作Shared Buffers,实际占用了大量共享内存。postmaster的RSS则小得多,因为它只需开辟共享内存的虚拟地址空间,fork给子进程使用。

查看/proc/[pid]/smaps会发现:checkpointer、bgwriter和postmaster的共享内存虚拟地址完全一致,但RSS不同。fork出的子进程虽然继承了相同的虚拟地址映射,但只有实际访问了对应物理页面的进程,其RSS才会增长。

2.5 如何正确模拟Cgroup OOM

由于PG采用Double Buffer架构(Shared Buffers + Page Cache),在shared_buffers = 1/4 × cg_mem的典型配置下,Page Cache最多可占3/4的Cgroup内存。正常业务中私有内存占用不会太多,即使Cgroup内存打满,系统也可从Page Cache中回收内存,因此实例未必会OOM。

想要有效触发Cgroup OOM,最直接的方法是创建大量占用私有内存的会话(如大量排序、Hash Join等),而非通过持续写入填满Page Cache。 后者只会触发Cache回收,不会导致真正的内存耗尽。

三、Cgroup OOM的行为与影响

3.1 OOM触发机制

Cgroup OOM可分为两种情况:

OOM Killer On:内核根据OOM Score选择得分最高的进程终止(通常是Backend用户进程),发送SIGKILL信号。PG的postmaster检测到子进程异常终止后,若共享内存未被破坏,会自动拉起新进程,业务可能短暂中断但实例整体可恢复。系统日志(dmesg)和PG日志中均有相关记录。

OOM Killer Off:不触发内核Kill,但PG进程可能因内存分配失败而Hang住(状态变为D,等待事件为mem_cgroup_oom)。关键进程如walwriter若无法获得内存,实例可能直接崩溃。这种情况下,即使OOM Killer关闭,实例仍然可能挂掉——不是因为被杀,而是跑死了。

3.2 关键区别

  • Cgroup OOM ≠ 系统级VM OOM。系统级VM OOM由vm.overcommit机制独立判断
  • Cgroup v1的memory.oom_control关闭时,OOM Killer不启动,但进程仍可能因内存不足而Hang或崩溃

四、Cgroup v1的缺陷与v2的改进

4.1 v1的统计盲区

  • 缺少Page Table统计:大量进程可导致Page Table占用数十GB,v1无法观测
  • 缺少Slab统计:内核Slab内存开销未纳入统计
  • 缺少HugePage统计:大页内存完全不被计入,形成统计黑洞
  • 无法区分异步/同步回收:pgscan_kswapd与pgscan_direct在v1中无法按Cgroup粒度区分
  • 共享内存统计混乱:shmem和file_mapped混在一起
  • RSS统计口径不一致:Cgroup RSS与进程RSS含义不同

4.2 v2的改进

Cgroup v2(Linux 4.5+正式发布)在内存管理上提供了显著增强:

管理层面:

  • 层级结构更清晰,配置更直观
  • 新增memory.min/low/high水位线参数,可更精细地控制回收行为
  • 更好地应对突刺负载
  • 移除直接关闭OOM Killer的接口,改用更柔和的控制方式
  • 新增memory_hugetlb_accounting,终于将大页纳入统计

观测层面:

  • 新增Slab、Page Table、pgscan_kswapd/pgscan_direct/pgsteal_kswapd等指标
  • 新增Socket、Vmalloc、透明大页、Zswap、全零页交换等专项统计
  • 共享内存(shmem)与文件映射(file_mapped)指标分离,不再混淆
  • 大页信息终于可观测

五、大页(Huge Pages)的管理与挑战

5.1 大页的优势

大页对PG的稳定性和性能有多方面好处:

  • 略微提升TPS
  • 减少TLB(Translation Lookaside Buffer)刷新压力,降低CPU缓存竞争
  • 显著减少Page Table在主内存中的大小。这不仅节约内存,还能在内存回收时加速通过物理地址查找虚拟地址的映射过程
  • 大页的物理连续性带来更好的内存访问局部性
  • 非大页的共享内存理论上可被OS回收,大页不会

对于内存碎片和Cgroup内直接内存回收问题,大页有非常好的缓解效果。

5.2 Shared Buffers与大页的配置建议

将shared_buffers设置为Cgroup内存的1/4似乎是行业标准,但实际情况更为复杂。调小shared_buffers可略微增加Page Cache,即增大整体缓存容量;调大shared_buffers则略微减小整体缓存,但提升了Shared Buffers命中率。两种方向各有利弊。

若shared_buffers太小,PG自身可用的工作内存不足,相当于把内存管理责任推给OS,而OS回收Page Cache本身就有性能开销;若shared_buffers太大,不仅挤占Page Cache,还需同步调整bgwriter相关参数(如bgwriter_delay、bgwriter_lru_maxpages),否则刷脏效率跟不上写入负载。

基于实际压测与生产运维经验,一个更靠谱的建议值(至少比简单的1/4公式更可靠):

  • 不开大页:shared_buffers = min(1/4 × 总内存, 20GB)
  • 开大页:shared_buffers = min(1/4 × 总内存, 60GB)

读多写少的场景可适当调大,但必须同步调整刷脏参数。

5.3 大页带来的管理难题

统计黑洞:在Cgroup v1中,大页完全不进入任何统计指标。一个实例的Cgroup限额设为20GB,若使用大页,实际可能已占用30GB物理内存,但监控显示一切正常。RDS等监控系统的内存指标在大页场景下可能全面失真。

资源规划困难:大页需在主机启动时预先分配,无法按需动态扩展。问题在于:

  • 同一主机可能混合部署PG、MySQL等多种数据库,不同数据库对大页的使用策略不同
  • 不知道主机上要部署多少实例、什么规格的实例,大页大小难以预先确定
  • 若大页分配过大,后续实例分配不到大页,只能退而使用普通页,违背了启用大页的初衷;若分配过小,则造成大量内存浪费

3.png

示例场景:第一个PG实例获得充足大页,第二个实例要上线时大页已耗尽,无法满足需求。若试图为一个大实例分配过多大页,则主机上只能运行这一个实例,资源利用率极低。

六、内存故障模型与排查思路

6.1 故障分类

内存问题大致可分为四个层面:

操作系统层面:内存碎片、Swap换入过高。注意:启用大页可缓解碎片问题,但可能略微加剧Swap换入问题,需权衡。

PG内核层面:元数据膨胀、版本Bug等。

Cgroup层面:Cgroup内内存回收引发的性能抖动,通常由Cgroup打满触发。启用大页对此有显著改善效果。

私有内存层面:个别Backend进程占用过多私有内存(如大结果集排序、Hash Join),导致Cgroup整体内存紧张。

4.png

6.2 监控要点

  • 系统层:/proc/buddyinfo查看碎片;/proc/meminfo的si/so(Swap In/Out)判断换入换出压力;/proc/vmstat中的pgscan_kswapd和pgscan_direct区分异步/同步回收
  • Cgroup层:memory.stat中的各项指标,注意v1和v2的统计差异
  • 进程层:ps查看各进程RSS/PSS,计算私有内存;关注进程等待事件(如mem_cgroup_oom)
  • 数据库层:pg_stat_bgwriter的checkpoint和buffers分配;等待事件中的IPC类事件

Buffer命中率方面,Read次数比Hit Rate更值得关注。Hit Rate很高但Read也很高时,意味着即使命中率高,仍然产生了大量Buffer读取操作(可能因扫描范围太大),这是无效的缓存竞争,仅看命中率会被误导。

5.png

6.3 故障先导信号

常见的前置信号包括:page allocation failure、kswapd长时间高CPU、direct reclaim频繁触发、进程状态频繁切换为D(不可中断睡眠)、malloc相关等待事件增多等。OOM则属于最终结果,往往伴随着明显的进程消失和日志记录。

6.png

总结

云环境下PG的Cgroup内存管理比单机场景复杂得多。几个核心结论:

  1. 迁移到Cgroup v2可解决v1中共享内存统计、大页统计、回收观测等多方面盲区
  2. 大页能提升稳定性和性能,但需配合v2使用,否则形成统计黑洞,资源规划需谨慎
  3. Cgroup OOM的on/off各有风险,on时Backend进程可能被杀但实例可恢复,off时关键进程可能Hang住导致实例不可用
  4. Shared Buffers不宜超过60GB(开大页时),超过后刷脏压力和非大页内存管理成本急剧上升
  5. 内存监控的核心是掌握真实使用量,尤其要理解Cgroup RSS与进程RSS的区别、共享内存的统计归属
私有化AI智能体落地:Gemini-3-pro、Nano-Banana-2与Coze工作流工程实践 AI智能体(Agent)是当前企业智能化升级的核心载体,其本质是多模型协同、状态可管、链路可观的分布式服务系统。理解Agent需从基础概念出发:它不是自动化脚本,而是具备会话状态、技能编排与上下文感知能力的服务实体;技术实现上依赖大模型推理引擎、低代码编排平台与私有化网关的深度耦合。Gemini-3-pro作为社区常用非官方权重,需通过架构签名、Tokenizer一致性与显存稳定性三重验证;Nano-Banana-2则专为高并发Webhook场景优化,其分块预填充机制必须配合Session级KV Cache 阅读详情

相关推荐

NUMA架构深度解析:从内存墙到服务器性能优化实战

在多处理器系统中,内存访问模式是影响应用性能的关键因素。传统的统一内存访问架构在核心数激增时会遭遇“内存墙”瓶颈,而非统一内存访问架构通过将内存与CPU节点本地绑定,为高性能计算提供了新的解决方案。其核心原理在于区分本地与远程内存访问,通过量化访问“距离”来优化数据路径,从而显著降低延迟、提升吞吐。这一技术对数据库、实时计算、虚拟化等场景具有重要价值,特别是在处理大规模数据和高并发请求时,能有效避免因跨节点访问导致的性能劣化。本文聚焦NUMA架构下的性能陷阱与调优实践,结合numactl工具与内核策略,深入

weixin_34252686的博客 313

Linux内核swap map革新:新一代内存管理技术解析

内存管理是操作系统核心功能之一,其中交换空间(swap)机制通过将内存页换出到存储设备来扩展可用内存。传统swap map采用位图结构管理交换空间,但随着TB级交换设备和NVMe存储的普及,该设计面临内存开销大、锁争用严重等问题。Linux内核新一代交换架构通过分层数据结构、每CPU缓存和NUMA感知分配等创新,显著提升了并发性能和扩展性。在数据库、云计算等内存密集型场景中,新方案可降低83%的交换延迟,同时减少40%的内存开销。这些改进使Linux能更好地支持现代硬件特性,为持久内存和机器学习预测等未来发

weixin_30274627的博客 638

Python多线程与多进程选型决策指南:从GIL到生产级调度

Python并发编程的核心矛盾在于解释器层(GIL)与操作系统层(线程/进程调度)的协同机制。理解GIL的真实作用域——它仅锁定Python对象内存管理,而非所有CPU操作——是突破性能瓶颈的前提;而多进程的价值本质是突破内存共享边界、实现真正的CPU并行与故障隔离。技术选型不应止步于‘IO密集用线程、CPU密集用进程’的粗粒度划分,而需结合资源瓶颈定位(CPU%、内存增长、IPC开销)、C扩展库GIL释放行为、数据传输规模及容错等级,构建可量化的调度决策树。本文聚焦真实生产环境中的混合型任务场景,提供基于

diandingyin9417的博客 427

Ubuntu 18.04 swapfile 配置实战:从原理到生产级调优

Swap 是 Linux 内存管理的核心机制,本质是内核在物理内存紧张时对匿名页进行换出(swap out)的弹性缓冲策略。其原理依赖于 page cache 与匿名页回收的权衡调度,技术价值在于以毫秒级 SSD 延迟换取系统稳定性与 OOM 规避能力。广泛应用于 Web 服务器、Docker 宿主机、开发工作站等内存压力场景。Ubuntu 18.04 因内核 4.15.x 的内存管理优化及默认不配 swap 的设计,使 swapfile 成为兼顾兼容性、SSD 寿命与云环境适配的关键方案。本文深入解析 s

weixin_34354173的博客 339

Mythos:首个可规模化自主攻防的AI安全执行体

漏洞挖掘正从人工驱动转向AI原生自动化,其核心是具备符号执行、POC生成与exploit构造能力的自主攻防系统。这类模型不再依赖提示工程,而是通过代码理解、二进制逆向与动态推理实现端到端漏洞闭环,技术价值在于将传统数周的安全审计压缩为分钟级API调用。典型应用场景覆盖云基础设施扫描、开源组件零日挖掘、DevSecOps实时响应等关键环节。Mythos作为当前最具代表性的实践范例,标志着AI安全已跨越辅助工具阶段,进入可调度、可复现、可规模化部署的工程化新纪元。

weixin_30372371的博客 491

【信息科学与工程学】【数据中心】第三十五篇 云计算数据中心的学科知识04

编号学科(课程)核心知识点在云计算/云存储/云网络/云安全/云MaaS中的作用代表教材/资料/论文 + 数学方程式列表工业界应用D1421​云原生数据库:TiDB​HTAP(混合事务/分析处理)、分布式SQL、水平扩展、强一致(Raft)、自动故障恢复、与MySQL兼容、TiFlash列式引擎提供弹性扩展的分布式数据库;支撑高并发在线交易与实时分析教材:《TiDB in Action》PingCAP(2020) 论文:《TiDB: A Raft-based HTAP Database》(2017)

weixin_49199313的博客 412

Alibaba Cloud Linux 4 多核性能提升28%:内核调度、内存与I/O栈深度优化解析

在云计算与云原生架构中,操作系统内核的性能优化是提升整体基础设施效率的核心。其原理在于通过对CPU调度、内存管理及I/O栈等底层子系统进行精细化改进,从而减少资源竞争、降低延迟并提升吞吐。这一技术价值在于能将硬件潜力充分转化为业务效能,尤其对于高并发在线服务、大数据计算及容器化微服务等场景至关重要。本文聚焦于Alibaba Cloud Linux 4 如何实现多核性能的显著提升,深入剖析了其在**NUMA感知调度**与**内存回收策略**等方面的关键优化,这些改进正是应对现代云上复杂业务负载、实现从“跑分”

423

【信息科学与工程学】【运营科学】第二篇 C4信息与通信网络运营 (C4) ——数据中心网络运营04

典型值:λ1​∈[−0.02,−0.01], λ2​∈[−0.01,0], η1​,η3​∈[0.1,0.3], η2​,η4​∈[0.05,0.15]参数:δ1​∈[−0.8,−0.3], δ2​∈[−0.5,−0.2], δ3​∈[−0.4,−0.1], δ4​∈[−0.6,−0.2]参数:φ1​∈[0.1,0.3], φ2​∈[−0.2,−0.05], φ3​∈[−0.1,0.1], φ4​∈[−0.3,−0.1]参数:α∈[0.3,0.6], β∈[0.2,0.4], γ∈[0.01,0.03]

weixin_49199313的博客 1217

北美数据科学家实战指南:时区、合规与算力的五维协同

数据科学不是孤立的技术实践,而是受地理、法律与工程约束共同塑造的系统工程。理解时区差异如何影响异步协作效率,掌握GDPR、CCPA、PIPEDA等多层合规框架对数据处理的刚性要求,识别AWS/Azure在北美各区域的算力成本结构差异——这些构成了现代数据工程师的核心能力基线。尤其在跨时区团队协作与生产级模型部署场景中,‘Python熟练’远不等于‘能交付’,真正决定项目成败的是对数据主权、权限最小化、动态脱敏与ML Ops契约精神的深度认知。本文聚焦北美真实环境下的硬约束拆解与可落地技术方案,覆盖从Terr

weixin_30697239的博客 325

【信息科学与工程学】【运营科学】第二篇 C4信息与通信网络运营 (C4) ——数据中心网络运营05

编号应用领域角色/岗位类型场景算法算子名称算子的数学方程式/逻辑表达复杂度关联知识数据输入数据需求数据输出法律法规及裁决依据/道德标准及方法1241企业之间战略“认知战”指挥官(攻击方)不直接攻击产品, 而是通过系统性舆论、行业报告、KOL发声, 重塑市场对竞争对手核心优势的“认知”, 将其贬低为“过时技术”或“错误赛道”认知解构与赛道降级针对对手的核心优势A, 构建并传播叙事N: “A虽然是过去十年的主流, 但已被新兴的B范式取代。 坚守A是路径依赖, 将错失未来。”对手以“强大的线下渠道”(A)为核心优

weixin_49199313的博客 721

ENVI学习总结(十二)——基于改进的 CASA 模型反演 NPP

基于改进的 CASA 模型反演 NPP 数据为地理空间数据云提供的 TM 影像,其具体信息如图 1 所示。该实验中所使用的 TM 数据已进行过 QUAC 快速大气校正,来消除大气和光照等因素对地物反射的影响。Landsat 主题成像仪(TM)是 Landsat4 和 Landsat5 携带的传感器,每 16 天扫描同一地区,即 16 天覆盖全球一次。 TM 影像包含 7 个波段,波段 1-5 ...

Arcgiser的博客 3万+

goalng开发_开发篇

Go 面试,基础知识

qq_46640341的博客 1161

告别玄学调试:手把手教你读懂全志芯片的sys_config.fex配置文件(以i2c配置为例)

本文深入解析全志芯片的sys_config.fex配置文件,以I2C设备驱动为例,详细讲解从引脚定义到驱动加载的全过程。通过实战案例和高级调试技巧,帮助开发者快速掌握硬件配置与内核驱动的联动机制,提升开发效率。

weixin_33737134的博客 420

fast-lio2复现跑avia数据集

本文详细介绍了在Windows WSL2中安装Ubuntu 22.04并配置ROS2 Humble环境的全过程,涵盖系统初始化、ROS2安装、Livox雷达驱动编译及FAST-LIO2 ROS2版本的构建与验证。通过完整数据集回放与建图测试,成功实现点云地图生成与轨迹记录,并利用evo工具完成轨迹分析与可视化。最终输出包括累积点云地图、位姿轨迹及实验配置文件,为后续精度评估与复现提供基准。

chase_my_dream的博客 369

深度残差网络的无人机多目标识别

深度残差网络的无人机多目标识别 人工智能技术与咨询 来源:《图学学报》。作者翟进有等 摘要:传统目标识别算法中,经典的区域建议网络(RPN)在提取目标候选区域时计算量大,时间复杂度较高,因此提出一种级联区域建议网络(CRPN)的搜索模式对其进行改善。此外,深层次的卷积神经网络训练中易产生退化现象,而引入残差学习的深度残差网络(ResNet),能够有效抑制该现象。对多种不同深度以及不同参数的网络模型进行研究,将两层残差学习模块与三层残差学习模块结合使用,设计出一种占用内存更小、时间复杂度更低的新型多捷.

m0_62870606的博客 3116

Python爬虫实战:如何高效抓取拼多多商品信息、销量与价格数据,破解反爬虫挑战

**摘要:**本文介绍利用Python爬虫技术抓取拼多多商品数据(价格、销量等)的方法与应用价值。通过分析拼多多商品页面的HTML结构,使用Requests和Selenium获取数据,并应对反爬虫机制(IP代理、请求头伪装等)。数据可存储于MongoDB或CSV用于市场监控、竞品分析等场景。文章涵盖技术选型、实战代码示例及反爬策略,为电商数据分析提供实用指导。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1674

linux学习

sudo make install:组装好的家具(编译好的库文件),原本放在你的临时工作区。坏处是,你的程序体积会变大。于是,他会根据你的计划书,结合你电脑的当前情况(比如装了什么编译器,库在哪),生成一本极度详细的《施工进度表》。很多大牌的第三方库(比如你刚装的 libevent)为了照顾不同的需求,会同时提供动态库(.so)和静态库(.a),但并不是所有库都这样。只有动态库:常见于系统的核心库(比如你系统的底层 C 库),或者一些商业闭源软件(厂商只给你一个黑盒子,不让你直接把代码打包进你的程序)。

d_mail的博客 194

Unity游戏开发客户端面经——数据结构(初级)

Unity游戏开发客户端面经 之 数据结构篇

Sea3752的博客 1万+

ubuntu 偶发启动失败问题分析

ubuntu 系统启动偶发异常问题分析

平面到立体 193

nature子刊:MCNN基于电池故障诊断的模型约束的深度学习方法

本研究提出了一种基于模型约束神经网络(MCNN)的锂离子电池在线故障诊断方法,整合物理模型与深度学习,有效解决了随机工况下传统方法诊断精度低、依赖故障样本等问题。通过统计修正电池包模型和双向LSTM网络,实现了电池状态的高精度预测(平均RMSE 3.9%),并设计模型耦合自动编码器提取可解释特征。在包含18.2百万条真实车辆数据的验证中,该方法故障检测TPR在FPR=0.1时达85%,较基准方法提升超46.5%,且能提前30分钟预警内部短路等故障。研究还展示了算法在跨电池包结构迁移中的优越性,为工业应用提供

hasakie的博客 1759

清理异常值(MAD:绝对中位差)

清理异常数据: 中位数绝对偏差(MAD):用来描述单变量样本在定量数据中可变的一种标准 在统计学中,绝对中位差是刻画一元数据样本变化的一个鲁棒度量。由公式可以看出,其求解还算简单,给定一个数据样本集,首先求其中位数,然后求原始数据减去中位数的绝对值从而形成一个新的数据样本,再求新的数据样本的中位数即为绝对中位差。比如说有一个数据样本集X={2 3 8 7 9 6 4},这时候数据的中位数是6,原...

spider_man 1万+

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 303

【OpenCV】第二十三章: 图像特征检测之SURF、FAST、BRIEF、OBR算法

4、由于在检测特征点时是需要对图像中所有的像素点进行检测,然而图像中的绝大多数点都不是特征点,如果对每个像素点都进行上述的检测过程,那显然是种浪费,所以FAST采用一种进行非特征点判别的方法:首先对候选点的周围90度的点(1,9,5,13)四个点进行测试,而且是先测试1和9,如果它们两个符合阈值要求再测试5和13。继SIFT和SURF后,大家在特征点检测的速度上又进行了很多的改进尝试,但速度的提升效果都不是非常明显,直到FAST算法诞生,特征点检测的速度才有了一个质的飞跃。无法计算描述符的特征点将被删除。

因为热爱所以坚持 2159

第三篇 第 6 课

前置:第三篇第 1 课(stdx 引入),第二篇第 1 课(std.regex)。环境:仓颉 SDK 1.2.0。本文所有代码与输出均逐行实测。

weixin_41618057的博客 530

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 355

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

信创环境下PageOffice文档控件适配与实践

信创适配做到文档控件这一层,拼的已经不是"有没有国产版本",而是同一个功能在两类终端上是否真的等价。等价的标准很具体:同一次点击能得到同样的结果,同一份公文能得到同样的版式,同一个项目不需要维护两套代码。这背后是三件并不轻松的工作:服务端用一套接口同时支撑两类终端,客户端把两种系统与四种芯片的安装包分发清楚,文档内核层由产品侧跟着 WPS 的版本走。浏览器这一层的压力,则被收进了产品自己的窗口里——升级节奏由产品掌握,不再交给运气。

zi_wu_xian的专栏 332

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: PG 日报|修复 FSM 边界异常,优化表空间空闲页管理
下一篇: PG 日报|PG19 Beta2 迭代优化多项内核缺陷
IvorySQL
博客等级 码龄5年 745粉丝 565原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值