当前位置: 首页 > news >正文

顺义建站好的公司备案时候网站不能打开吗

顺义建站好的公司,备案时候网站不能打开吗,正规推广赚佣金的平台,福州公司建站模板在 MongoDB 线上生产环境中,CPU(核心) 和 内存 是两大关键硬件资源,它们在不同的操作场景下发挥着核心作用,共同影响着数据库的性能、稳定性和扩展性。理解它们的作用场景至关重要,是容量规划、性能优化和故…

在 MongoDB 线上生产环境中,CPU(核心)内存 是两大关键硬件资源,它们在不同的操作场景下发挥着核心作用,共同影响着数据库的性能、稳定性和扩展性。理解它们的作用场景至关重要,是容量规划、性能优化和故障排查的基础。

以下是它们在主要场景中的作用详解:

🖥 CPU(核心)的核心作用场景

CPU 主要负责计算密集型任务协调管理

  1. 查询执行与优化器工作:

    • 复杂查询解析与优化: 查询路由(mongos)、查询优化器(选择最佳执行计划)消耗 CPU。
    • 聚合管道($match, $group, $sort, $lookup等): 数据过滤、分组计算、排序、连接等操作非常消耗 CPU,尤其当数据量大且无法完全利用索引时。
    • 表达式计算: 在查询或投影中使用 $expr, JavaScript 函数($where),或复杂表达式会消耗较多 CPU。
    • 地理空间计算: $geoNear, $geoWithin 等地理空间查询的计算开销大。
    • 全文搜索: 执行文本索引搜索 ($text) 涉及文本解析和相关性计算,消耗 CPU。
  2. 索引操作:

    • 索引扫描: 即使使用索引,大规模范围的索引扫描或复杂的复合索引扫描也需要 CPU 来处理。
    • 索引构建与重建: 后台创建或重建索引(尤其是在大集合上)是 极其 CPU 密集型 的操作,会显著抬高 CPU 使用率。
  3. 写入处理:

    • 索引维护: 每次写入(插入、更新、删除)都需要更新所有相关的索引,索引越多、越复杂,消耗的 CPU 越多。
    • 更新语义计算: 复杂的更新操作符(如数组操作符 $push, $pull, $addToSet, 字段更新等)需要 CPU 执行。
    • WiredTiger 写入处理: 处理写入请求、序列化、压缩(如果启用)以及组织数据写入缓存和 Journal。
  4. 事务处理:

    • 多文档事务: 事务的开始、提交、中止以及内部的锁管理、冲突检测、状态维护都会增加额外的 CPU 开销。
  5. 复制(副本集):

    • Oplog 应用 (Secondary): Secondary 节点读取 Primary 的 oplog 并将操作应用到自身数据集,这个过程需要解析 oplog 条目并执行相应的写操作(包含所有相关的索引维护)。
    • 心跳与选举: 副本集成员间持续的心跳检测、状态同步以及选举过程都需要 CPU 处理网络通信和状态逻辑。
  6. 分片集群协调:

    • mongos 路由: mongos 负责接收查询、决定目标分片、将查询分发给分片、汇总合并结果(特别是对 sort, skip, limit 的合并)。这些协调、路由和结果合并操作是 CPU 密集的。
    • 元数据管理: Config Server 管理分片集群元数据(块信息、分片键范围等),读写元数据操作(尤其是平衡器移动块时)消耗 CPU。
    • 块迁移(平衡器): 计算需要迁移的块、在源和目标分片间迁移数据、更新元数据涉及大量协调和计算工作。
  7. 并发与连接管理:

    • 处理并发连接: 每个客户端连接都需要一个线程/轻量级进程来处理其请求。大量并发连接会创建大量线程上下文,消耗 CPU(尤其在上下文切换上)。
    • 锁管理: MongoDB 虽然采用细粒度锁(WiredTiger 引擎使用文档级并发控制),但全局协调和锁管理仍需要 CPU。高并发读写会增加锁争用的管理开销。

📦 内存的核心作用场景

内存是数据的高速公路和临时工作区,其核心目标是减少对慢速磁盘 I/O 的依赖

  1. 工作集缓存(WiredTiger 内部缓存):

    • 核心作用: 这是内存最关键的用途。WiredTiger 将活跃的(热)数据和索引(工作集) 缓存在其 内部缓存 中。
    • 直接效果: 几乎所有的读操作(命中缓存时)和大部分的写操作(先写入缓存)都能在内存中完成,速度极快(纳秒级 vs 毫秒级磁盘访问)。
    • 性能关键: 如果热工作集能完全放入内部缓存,性能将达到最优。这是 MongoDB 性能调优的黄金准则。
  2. 文件系统缓存 (Operating System Cache):

    • 二级缓存作用: 操作系统会利用未被 WiredTiger 内部缓存占用的剩余内存,缓存 MongoDB 的压缩后的数据文件
    • 加速效果: 当 WiredTiger 需要的数据不在其内部缓存时,有很大概率可以从文件系统缓存(内存中)读取压缩块,解压后放入内部缓存。这比直接从磁盘读取快得多。
    • 协同工作: WiredTiger 内部缓存 + 文件系统缓存共同构成了 MongoDB 高效利用系统总内存的核心机制。
  3. 查询执行工作区:

    • 聚合、排序、连接: 复杂查询处理(如大内存排序 allowDiskUse: false, $group 操作, $lookup, 大结果集)需要在内存中临时存储中间结果或最终结果集,消耗大量内存。如果结果集太大,可能触发磁盘溢出(如 allowDiskUse: true),但内存中处理的部分仍消耗不小。
    • 写入缓冲: WiredTiger 会缓存一部分写入操作(Dirty Pages),批量写入到 Journal 和 数据文件,以提高写入吞吐量。高峰写入时缓冲区会增大。
  4. 连接与元数据开销:

    • 连接上下文: 每个客户端连接需要少量内存存储状态、会话信息和安全上下文。数万连接时,总量可观。
    • 元数据: 数据库、集合的元信息,分片集群中 mongos 和 Config Server 维护的路由信息等需要驻留在内存中快速访问。
  5. 副本集同步缓冲:

    • 初始同步缓冲: 新节点或落后节点在进行初始同步或追赶复制时,会在内存中缓冲大量待应用的数据。
    • Oplog 缓冲: Secondary 节点在应用 oplog 前可能需要缓冲部分条目。
  6. 后台操作:

    • 部分后台任务(如TTL索引清理、小规模均衡操作)也需要内存作为工作空间。

📍 CPU 和内存的协同与影响

  • 内存不足导致 CPU“空转”或高 I/O:
    • 如果内存不足(工作集无法完全缓存),频繁的磁盘 I/O(读/写)会成为瓶颈。
    • CPU 可能花费大量时间在等待 I/O 完成(%wa (iowait) 高),真正用于计算的时间比例反而降低,整体吞吐量下降,延迟飙升。
  • CPU 不足限制处理能力:
    • 即使内存充足(工作集全在内存),CPU 处理能力不足也会限制查询执行速度、写入速率、复制延迟和 mongos 的协调能力,导致请求堆积(队列变长 qr/qw 高),延迟增大。
  • 并发量大的场景: 高并发会同时推高 CPU 使用率(处理更多请求的计算开销和锁/连接管理)和内存使用率(需要缓存更多活跃工作集片段和连接状态)。
  • 资源争用: CPU 和 内存资源不足时,可能触发操作系统层面的资源调度(如 OOM Killer),导致 MongoDB 进程不稳定甚至被终止。在 VM 或容器环境中资源限制配置不当更容易发生。

⚙ 容量规划与监控建议

  1. 内存是首要考量: 确保服务器有足够的内存容纳热工作集 + 文件系统缓存空间。这是提升性能性价比最高的方式。计算公式:热数据量 + 热索引量 + 预留空间 > 可用物理内存
  2. CPU 需要匹配负载: 根据预计的并发量、查询复杂度、写入负载来配置足够的核心数。监控 CPU 使用率(%us用户态, %sy内核态, %wa iowait) 和 mongostat/Atlas Metrics 中的指标 qr|qw(排队请求)。
  3. 关键监控指标:
    • 内存:
      • db.serverStatus().wiredTiger.cache (查看 bytes currently in cache, tracked dirty bytes, pages read into cache, pages written from cache, pages evicted) — 核心指标,监控缓存使用率、脏页比例、驱逐频率。
      • system.mem / system.memory — 系统级别内存使用、交换空间使用(swap usage)。
      • 缺页错误率 — 特别是 主缺页(major page faults) 高表示严重依赖磁盘。
    • CPU:
      • system.cpuusage(总量), user, kernel, iowait 等。
      • db.currentOp() / db.serverStatus().opcounters / db.serverStatus().metrics.operation — 查看当前运行的操作类型和耗时,操作计数器。
      • mongostat*time (执行时间), conn, qr|qw(排队), %cpu (主机CPU)。
  4. 合理配置:
    • 设置 storage.wiredTiger.engineConfig.cacheSizeGB 限制 WiredTiger 内部缓存大小(通常建议设为 (RAM - 1GB - 其他进程内存) / 2 或官方推荐比例,生产环境需要精细调整)。
    • 优化查询和索引,减少全表扫描和内存排序。
    • 控制连接池大小。
    • 避免过度使用复杂聚合和 $lookup,尽量在应用层处理。
    • 合理使用分片扩展(解决单节点内存不足问题)和读写分离(缓解单个节点压力)。

✅ 总结

  • 内存是数据的加速器: 最主要任务是缓存活跃工作集(数据+索引),让读写尽可能在内存中进行。内存不足导致磁盘 I/O 成为主要瓶颈。
  • CPU 是计算的引擎: 负责解析、优化、执行查询,维护索引,处理事务,协调复制和分片。CPU 不足限制处理速度和并发能力。
  • 两者共同决定性能上限: 任何一个成为瓶颈都会拖累整体性能。线上生产环境需持续监控这两项关键资源,并根据工作负载特点进行容量规划和针对性优化,确保系统稳定高效运行。💪🏻
http://www.dtcms.com/a/576566.html

相关文章:

  • 门户网站分类wordpress数据库用户名密码忘记
  • 免费网站新域名建设工程申报系统网站
  • 织梦网站广告html做的好看的网站
  • 网站建设哪家g好移动互联网开发
  • 微信小程序开发收费东莞seo建站公司
  • 设计师接单网站如何做国外的电商网站设计
  • 昆山建设局网站表格下国外模板网站
  • 高端网站建设公司哪家公司好城固网站建设
  • 织梦修改网站标题网络营销软文范例300
  • 创建网站的准备移动互联网开发考试
  • 广东省建设厅网站查询做同城网站最赚钱
  • 湖南建立网站营销策划搜索引擎营销漏斗模型
  • 网页制作工具的选择与网站整体风格大连招聘网最新招聘
  • 网站制作推广方案做外包网站的公司是怎样的
  • 网站 语言选择山西省网站
  • 免费企业网站建设单位wordpress调用当前子分类
  • 如何做阅读网站婚纱摄影网站的设计思路
  • 芜湖公司网站建设wordpress无限地址
  • 冠县网站建设gxsh如何建设一个属于自己的网站
  • 通信网站建设关于建设集团公司网站的报告
  • 江苏省建设工程上岗证查询网站WordPress增加文章来源插件
  • jsp网站建设 书籍有什么网站交互做的很好 知乎
  • 在哪个网站开发外贸业务网站注销主体填写原因
  • 用python写一个简单的网页seo推广公司教程
  • 常州钟楼区邹区建设局网站网站运营怎么样
  • 栾川网站开发微信小程序脚本
  • 网站设计制作策划书韩国做 mp4下载网站
  • 网站建设客户调查需求表wordpress 5.0.2
  • 校园网二手书交易网站建设重庆介绍ppt制作
  • 湛江市建设教育协会学校网站wordpress视频教程百度网盘