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

kubelet 清理资源以缓解磁盘压力

kubelet 资源清理缓解磁盘压力指南

在 Kubernetes 集群中,当节点磁盘压力过大时,可通过以下几种方式利用 kubelet 清理资源,从而缓解磁盘压力。

一、镜像垃圾回收

自动回收

kubelet 内置了镜像垃圾回收机制,其行为由配置参数控制。编辑 /var/lib/kubelet/config.yaml 文件,添加或修改如下参数:

imageGCHighThresholdPercent: 85
imageGCLowThresholdPercent: 80

imageGCHighThresholdPercent 表示当磁盘使用率达到 85% 时触发镜像回收;imageGCLowThresholdPercent 表示回收操作将持续进行,直到磁盘使用率降至 80%。修改后,重启 kubelet 服务:

sudo systemctl restart kubelet

手动回收

根据不同的容器运行时,使用对应命令手动清理镜像:

  • Docker
docker image prune -a -f
  • containerd
crictl rmi $(crictl images -q)

触发条件与过程

  • 触发条件:当节点的磁盘使用率超过设定的阈值时,kubelet 会触发镜像垃圾回收。正常情况下会定时执行,以保证节点资源充足;在节点资源不足时,Kubelet 在驱逐 Pod 前会先强制执行一次垃圾回收,如果清理后资源充足则不会驱逐 Pod。
  • 清理过程:kubelet 会识别不再被任何容器引用的镜像(未使用镜像),并按照最近使用时间排序,优先删除最旧的镜像。对于新拉取的镜像,会存活一定时间(默认 2 分钟)后才执行清理,以防止刚拉取的镜像就被清理掉。

关键参数

  • --image-gc-high-threshold:磁盘使用率的上限阈值,默认为 85%。
  • --image-gc-low-threshold:磁盘使用率的下限阈值,默认为 80%。
  • --minimum-image-ttl-duration:镜像最短生存时间,默认 2 分钟。

回收频率与流程

  • 回收频率:Kubelet 默认每 5 分钟执行一次镜像垃圾回收。
  • 回收流程:Kubelet 会识别不再被任何 Pod 引用的镜像,并按照最近使用时间(LRU)策略逐个清理,直到磁盘使用率降到设定的下限或没有空闲镜像可以清理。

二、容器垃圾回收

自动回收

kubelet 可以根据配置自动清理已停止的容器。编辑 /var/lib/kubelet/config.yaml 文件,添加或修改如下参数:

containerRuntimeOptions:containerGC:maxPerPodContainer: 1minAge: 2m

maxPerPodContainer 限制每个 Pod 最多保留的已停止容器数量为 1;minAge 表示只有停止时间超过 2 分钟的容器才会被清理。修改后,重启 kubelet 服务。

手动回收

  • Docker
docker container prune -f
  • containerd
crictl rm $(crictl ps -a -q)

触发条件与过程

  • 触发条件:kubelet 定期执行容器垃圾回收,以清理不再需要的容器,主要针对普通容器、sandbox 容器以及容器日志目录。对于普通容器,Kubelet 会根据 MaxPerPodContainerMaxContainers 的设置,按照 LRU 策略,从 Pod 的死亡容器列表删除一定数量的容器,直到满足配置需求;对于 sandbox 容器,Kubelet 按照每个 Pod 保留一个的原则清理多余的死亡 sandbox;对于日志目录,只要没有 Pod 与之关联了就将其删除。
  • 清理过程:kubelet 会删除已经终止的容器,特别是那些已经超出保留时间的容器。

关键参数

  • --maximum-dead-containers-per-container:每个 Pod 可以保留的死亡容器的最大数量,默认为 1。
  • --maximum-dead-containers:节点上可以保留的死亡容器的最大数量,默认为 -1,表示没有限制。
  • --minimum-container-ttl-duration:容器可被回收的最小生存时间,默认为 0 分钟,即死亡容器可以立即被回收。

回收频率与流程

  • 回收频率:Kubelet 默认每分钟执行一次容器垃圾回收。
  • 回收流程:Kubelet 会清理可以驱逐的容器,包括那些状态不是 RUNNING 且在本轮 GC 前创建的容器。Kubelet 在到达 GC 时间点时,会遍历所有 Pod,使其满足 --maximum-dead-containers-per-container 的设置,如果不满足 --maximum-dead-containers,则计算值 X = (--maximum-dead-containers)/(Pod 总数),再遍历所有 Pod,使其满足已停止运行的容器集个数不大于 X 且至少为 1,如果还不满足 --maximum-dead-containers,则对所有已停止的容器(普通容器 + sandbox 容器)排序,优先删除创建时间最早的容器直到满足 --maximum-dead-containers 为止。执行清理直到满足以下条件之一:
    • 每个 Pod 中存在的已挂掉的容器数满足阈值。
    • 所有 Pod 中存在的已挂掉的容器数满足阈值。

三、未使用的 Volume 清理

手动清理

定期清理不再使用的持久卷声明(PVC)和挂载的 Volume 能释放大量磁盘空间。使用以下命令删除所有处于 Released 状态的 PVC:

kubectl get pvc --field-selector status.phase=Released -o name | xargs kubectl delete

此外,若使用的是动态存储卷,确保存储类(StorageClass)配置了正确的回收策略。

触发条件与过程

  • 触发条件:当节点磁盘空间不足时,kubelet 会尝试清理未使用的 Volumes。
  • 清理过程:kubelet 会识别并删除那些不再被任何 Pod 引用的 Volumes。

自动清理涉及方面

  • PersistentVolumeClaim (PVC) 和 PersistentVolume (PV) 的回收策略:Kubernetes 中的 PVC 对象可以设置 reclaimPolicy 属性,该属性有两个值:RetainDelete。当 PVC 与 PV 绑定后,如果 Pod 被删除,根据 reclaimPolicy 的设置,Volume 可以被保留或自动删除。
  • StorageClass 的 reclaimPolicy:在 StorageClass 对象中,可以设置 reclaimPolicy,这将决定 PV 的默认回收策略。当设置为 Delete 时,PV 和绑定的存储资源在 PVC 删除时将被自动清理。
  • Kubelet 垃圾回收机制:Kubelet 定期进行垃圾收集,包括容器和镜像。Kubelet 每分钟对未使用的容器执行一次垃圾收集,每五分钟对未使用的镜像执行一次垃圾收集。
  • Volume 插件目录清理:Kubelet 可以通过配置 --volume-plugin-dir 参数来指定卷插件目录,并定期清理其中的数据。
  • 日志文件管理:Kubelet 会定期清理旧的日志文件,或者配置日志轮转工具(如 logrotate)来管理日志文件的大小和生命周期,以释放磁盘空间。
  • 手动清理命令:可以使用 kubectl 命令清理未使用的 PV 和 PVC,例如查找未被使用的 PVC 并删除它们,进而可能触发关联 Volume 的清理。
  • 定期审计和清理:定期检查集群中的 Volume 使用情况,手动清理未被自动回收的 Volume。

四、驱逐机制(Eviction)

配置参数

kubelet 可以基于磁盘压力等条件驱逐 Pod,释放节点资源。编辑 /var/lib/kubelet/config.yaml 文件,添加或修改如下参数:

evictionHard:imagefs.available: 10%nodefs.available: 10%
evictionSoft:imagefs.available: 15%nodefs.available: 15%
evictionSoftGracePeriod:imagefs.available: 5mnodefs.available: 5m
evictionMinimumReclaim:imagefs.available: 5%nodefs.available: 5%

上述配置中,当镜像文件系统或节点文件系统的可用空间低于 10% 时,触发硬驱逐;低于 15% 时触发软驱逐,软驱逐会在 5 分钟后执行,每次驱逐操作至少回收 5% 的可用空间。修改后,重启 kubelet 服务。

触发条件与过程

  • 触发条件:当节点资源(如内存、磁盘空间)低于硬驱逐阈值时,kubelet 会触发驱逐机制。
  • 驱逐过程:kubelet 会根据配置的驱逐策略,选择并终止某些 Pod 以释放资源。例如,当节点的可用内存低于 100Mi 时,kubelet 可能会开始驱逐 Pod。

五、日志文件管理

自动轮转

使用 logrotate 工具配置日志轮转,编辑 /etc/logrotate.d/kubelet 文件:

/var/log/kubelet.log {dailymissingokrotate 7compressdelaycompressnotifemptycreate 0640 root admsharedscriptspostrotateif [ -f /var/run/kubelet.pid ]; thenkill -HUP `cat /var/run/kubelet.pid`fiendscript
}

上述配置表示每天轮转一次 kubelet 日志文件,保留最近 7 天的日志,压缩旧日志文件。

手动清理

手动删除不再需要的日志文件:

sudo rm -rf /var/log/pods/*

需注意,此操作会清除所有 Pod 的日志,操作前请备份重要日志。

触发条件与管理过程

  • 触发条件:日志文件占用大量磁盘空间时。
  • 管理过程:kubelet 会定期清理旧的日志文件,或者配置日志轮转工具(如 logrotate)来管理日志文件的大小和生命周期。

日志管理涉及方面

  • 日志文件路径规则:Kubelet 将容器日志默认写入 /var/log/pods 目录下,每个 Pod 的日志存放在以其命名空间、名称和 UID 为名的子目录中。容器日志文件以容器重启次数命名,格式为 <容器重启次数>.log
  • 日志文件软链接规则:容器日志目录下的日志文件实际上是软链接类型文件,指向实际的日志文件。
  • 日志文件清理:Kubelet 每 1 分钟执行一次容器清理,包括清理死亡容器的日志目录。如果一个 Pod 已经不再占用其日志目录,Kubelet 会清理这些日志目录。
  • 日志文件大小和文件数限制:Kubelet 配置选项 containerLogMaxSizecontainerLogMaxFiles 分别允许配置每个日志文件大小的最大值和每个容器允许的最大文件数,默认分别为 10Mi 和 5。
  • 日志轮换机制:Kubelet 提供了基于可以执行多少并发日志轮换以及监控和轮换日志所需要的间隔来调整日志的轮换方式的机制。可以通过配置 containerLogMaxWorkerscontainerLogMonitorInterval 来调整。
  • 系统组件日志位置:在使用 systemd 的 Linux 节点上,kubelet 和容器运行时默认写入 journald。如果 systemd 不存在,kubelet 和容器运行时将写入到 /var/log 目录中的 .log 文件。
  • 自定义日志目录:Kubelet 允许将 Pod 日志目录从默认的 /var/log/pods 更改为自定义路径,通过在 kubelet 的配置文件中配置 podLogsDir 参数来进行此调整。

六、配置参数调整

减少日志级别

编辑 kubelet 服务的启动参数文件 /etc/systemd/system/kubelet.service.d/10-kubeadm.conf,添加或修改 --v 参数来降低日志级别:

Environment="KUBELET_EXTRA_ARGS=--v=2"

日志级别范围从 0 到 10,数值越小,日志输出越少。修改后,重新加载 systemd 配置并重启 kubelet 服务:

sudo systemctl daemon-reload
sudo systemctl restart kubelet

减少缓存

减少 kubelet 的缓存数据,如临时文件和下载的镜像等。编辑 /var/lib/kubelet/config.yaml 文件,添加或修改如下参数:

cacheDir: /var/lib/kubelet/cache
cacheMaxSize: 1024Mi

上述配置将 kubelet 的缓存目录设置为 /var/lib/kubelet/cache,并限制缓存最大为 1024MB。修改后,重启 kubelet 服务。

通用参数调整

管理员可以通过调整 kubelet 的配置参数来优化资源清理行为,例如调整垃圾回收的阈值和频率。

相关文章:

kubelet 清理资源以缓解磁盘压力

kubelet 资源清理缓解磁盘压力指南 在 Kubernetes 集群中&#xff0c;当节点磁盘压力过大时&#xff0c;可通过以下几种方式利用 kubelet 清理资源&#xff0c;从而缓解磁盘压力。 一、镜像垃圾回收 自动回收 kubelet 内置了镜像垃圾回收机制&#xff0c;其行为由配置参数控…...

机器人“跨协议对话”秘籍:EtherNet IP转PROFINET网关应用实录

近期&#xff0c;我们工厂在进行自动化生产线升级改造时&#xff0c;引进了一批全新的机器人手臂设备。这批机器人采用EtherNet/IP通信协议&#xff0c;而生产线上原有的终端控制器则使用PROFINET协议。由于两种协议在通信标准和数据格式上存在差异&#xff0c;导致机器人手臂无…...

松下机器人快速入门指南(2025年更新版)

松下机器人快速入门指南&#xff08;2025年更新版&#xff09; 松下机器人以其高精度、稳定性和易用性在工业自动化领域广泛应用。本文将从硬件配置、参数设置、手动操作、编程基础到维护保养&#xff0c;全面讲解松下机器人的快速入门方法&#xff0c;帮助新手快速掌握核心操…...

开启健康养生,重塑生活品质

当你习惯性地用咖啡开启忙碌的一天&#xff0c;当熬夜加班成为生活常态&#xff0c;当外卖占据一日三餐&#xff0c;或许未曾察觉&#xff0c;健康正悄然亮起红灯。在快节奏的现代生活中&#xff0c;健康养生不再是可选项&#xff0c;而是关乎生活质量与生命活力的必答题&#…...

百度「心响」:通用超级智能体,重新定义AI任务执行新范式

在AI技术从“对话交互”迈向“任务执行”的转折点&#xff0c;百度于2025年4月正式推出移动端超级智能体应用——心响。这款以“AI任务完成引擎”为核心的创新产品&#xff0c;被誉为“AI指挥官”&#xff0c;通过自然语言交互实现复杂任务的全流程托管&#xff0c;覆盖知识解析…...

AXPA17388: 4x45W 车用AB类四通道桥式输出音频功率放大器

AXPA17388是采用BCD(双极型&#xff0c;CMOS&#xff0c;DMOS)工艺技术设计的四通道桥式输出AB类车用音频功率放大器&#xff0c;采用完全互补的P型/ N型输出结构&#xff0c; 具有轨到轨的输出电压摆幅&#xff0c;高输出电流&#xff0c;具有出色的低失真性能。 AXPA17388可以…...

【codeforces 2086d】背包+组合数学

【codeforces 2086d】背包组合数学 Problem - D - Codeforces 题意&#xff1a; 给出字符串中每个字符的出现次数 c i ( 1 ≤ i ≤ 26 ) c_i(1 \leq i \leq 26) ci​(1≤i≤26)。现构造一个字符串&#xff0c;要求任意相同字母之间的距离必须是偶数。求满足要求的字符串的数量…...

[特殊字符]OCR,给交通领域开了“外挂”?

OCR 技术是什么 宝子们&#xff0c;OCR 其实就是光学字符识别&#xff08;Optical Character Recognition&#xff09;的英文缩写。简单来说&#xff0c;它能让电子设备&#xff0c;比如扫描仪、摄像头这些&#xff0c;像长了眼睛一样&#xff0c;“看” 懂图片或文档里的文字&…...

【语法】C++继承中遇到的问题及解决方法

目录 1.子类构造函数中初始化父类成员 2.子类显式调用父类的析构函数 第一种说法&#xff1a;重定义 反驳&#xff1a; 第二种说法&#xff1a;operator~ 3.因编译器版本过低而出现错误 贴主在学习C的继承时&#xff0c;遇到了很多问题&#xff0c;觉得很变态&#xff0c…...

【自然语言处理与大模型】LangChain大模型应用框架入门②

本文介绍LangChain的另一个重要组件——提示词模板&#xff08;Prompt Template&#xff09;组件&#xff0c;它主要用于将用户输入和参数转换为语言模型可理解的指令。有助于引导模型生成符合预期的响应&#xff0c;帮助其更好地理解上下文&#xff0c;从而输出相关且连贯的语…...

首页数据展示

排版 现在做首页的排版&#xff0c;依旧是偷antd里面的东西 使用card包裹list的样式 import React from react import axios import { Card, Col, Row, List } from antd import { EditOutlined, EllipsisOutlined, SettingOutlined } from ant-design/icons; import { Avat…...

推荐系统实验指标置信度:p值核心原理与工程应用指南

目录 一、推荐系统实验中的置信度困境二、p值核心原理&#xff1a;从假设检验到推荐场景适配2.1 基础概念与数学定义2.2 通俗版本核心白话总结&#xff1a; 2.2 推荐系统指标分类与统计方法 三、推荐系统实验p值计算全流程3.1 实验设计阶段&#xff1a;流量分配与检验效能3.2 数…...

linux FTP服务器搭建

FTP服务器搭建 系统环境&#xff1a;ubuntu 搭建方式&#xff1a;win系统下通过ssh连接ubuntu&#xff0c;搭建FTP服务 一、ssh连接 ssh -p 端口 用户名IP ssh -p 22 ubuntu192.168.1.109 密码&#xff1a;ubuntu123456 二、安装配置FTP服务器 1、安装 sudo apt install v…...

如何搭建一个简单的文件服务器的方法

搭建一个简易的文件服务器可以让你在局域网或互联网中共享文件&#xff0c;方便不同设备之间的访问与管理。以下是基于常见平台(Windows、Linux)分别介绍如何搭建一个简单的文件服务器的方法&#xff0c;适合个人或小型办公环境使用。 一、文件服务器的准备工作 所需条件&#…...

通信原理第七版与第六版的区别附pdf

介绍 我用夸克网盘分享了「通信原理 第7版》樊昌信」&#xff0c; 链接&#xff1a;https://pan.quark.cn/s/be7c5af4cdce 《通信原理&#xff08;第7版&#xff09;》是在第6版的基础上&#xff0c;为了适应当前通信技术发展和教学需求&#xff0c;并吸取了数十所院校教师的反…...

【工具】PDF转HTML

【工具】PDF转HTML 可通过命令执行&#xff0c; 集成到项目中 pdf2htmlEX windows系统可执行版下载地址&#xff1a; http://soft.rubypdf.com/software/pdf2htmlex-windows-version https://github.com/coolwanglu/pdf2htmlEX .\pdf2htmlEX.exe --zoom 1.8 a.pdf .\pdf2html…...

Latex全面汇总

文章目录 简介1.基本使用中文编码的方式2.文章标题日期等3.加粗斜体等格式4.章节问题5.图片问题6.列表7.数学公式8.表格9.常用的latex网站汇总总结 简介 Latex 基本使用教程,主要还是为manim而准备的.   现在发现用typora来记录笔记更方便些&#xff0c;csdn用的就很少了&…...

AI日报 - 2025年04月30日

&#x1f31f; 今日概览(60秒速览) ▎&#x1f916; AGI突破 | 扎克伯格预言通用智能将超越个体&#xff0c;Neuralink助ALS患者思维交流 通用智能系统潜力巨大&#xff0c;脑机接口实现重大应用突破。 ▎&#x1f4bc; 商业动向 | 阿里巴巴发布Qwen3&#xff0c;xAI推Grok 3 M…...

redis高级进阶

1.redis主从复制 redis主从复制1 2.redis哨兵模式 哔哩哔哩视频 redis哨兵模式1 redis哨兵模式2 redis哨兵模式3 3.redis分片集群 redis分片集群1 redis分片集群2 redis分片集群3...

【android bluetooth 协议分析 06】【l2cap详解 11】【l2cap连接超时处理逻辑介绍】

我们在使用蓝牙的过程中&#xff0c; 当上层 应用 断开所有的 profile 后&#xff0c; 协议栈就会帮我们下发 disconnect 命令。本节就让笨叔&#xff0c; 带大家一起梳理这块内容&#xff0c;具体在协议栈如何处理的。 梳理开始前&#xff0c; 先思考一下。 我们为什么要梳理…...

Spring、Spring MVC 与 Spring Boot 的关系与核心用途

1. 三者关系图解 ------------------- | Spring Boot | → 基于 Spring&#xff0c;简化配置与部署 -------------------▲| 依赖 ------------------- | Spring Framework | → 核心容器&#xff08;IoC/AOP&#xff09;与基础模块 -------------------▲| 扩展 ---…...

如何搭建spark yarn 模式的集群集群

&#xff08;一&#xff09;什么是SparkONYarn模式 Spark on YARN&#xff08;Yet Another Resource Negotiator&#xff09;是 Spark 框架在 Hadoop 集群中运行的一种部署模式&#xff0c;它借助 Hadoop YARN 来管理资源和调度任务。 架构组成 ResourceManager&#xff1a;作为…...

共探蓝海赛道增长新方法 阿里国际站智能AI全球买家分析峰会在深落幕

来源&#xff1a;深圳晚报 随着全球贸易环境不断变化&#xff0c;跨境电商已成为推动企业发展的重要动力。为帮助企业更好地应对新的市场挑战&#xff0c;阿里巴巴国际站深莞惠大区于4月29日举办了“万亿商机 蓝海新市场”智能AI全球买家分析峰会&#xff0c;现已圆满落幕&…...

今日行情明日机会——20250429

指数依然在区间震荡&#xff0c;等待方向&#xff0c;重点关注决定大盘方向的板块&#xff0c;如证券的走势~ 2025年4月29日涨停主要行业方向分析 一、核心主线方向 一季报增长&#xff08;业绩驱动资金避险&#xff09; • 涨停家数&#xff1a;16家。 • 代表标的&#xff…...

什么是缓存?在NGINX中如何配置缓存以提升性能?

大家好&#xff0c;我是锋哥。今天分享关于【什么是缓存&#xff1f;在NGINX中如何配置缓存以提升性能&#xff1f;】面试题。希望对大家有帮助&#xff1b; 什么是缓存&#xff1f;在NGINX中如何配置缓存以提升性能&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java…...

价值投资笔记:企业护城河——虚假陷阱与隐性壁垒的深度解析

一、护城河的本质与误判风险 护城河是企业抵御竞争、维持超额利润的核心能力。然而&#xff0c;市场中充斥着大量“虚假护城河”&#xff0c;它们看似构成壁垒&#xff0c;实则脆弱易碎。晨星公司研究显示&#xff0c;超过60%的企业竞争优势被误判为护城河&#xff0c;投资者需…...

2025年04月29日Github流行趋势

项目名称&#xff1a;Deep-Live-Cam 项目地址url&#xff1a;https://github.com/hacksider/Deep-Live-Cam项目语言&#xff1a;Python历史star数&#xff1a;52291今日star数&#xff1a;380项目维护者&#xff1a;hacksider, KRSHH, vic4key, pereiraroland26, kier007项目简…...

docker排查OOM Killer

文章目录 一.检查1.内存不足 (OOM Killer)2. CPU 资源限制3. 存储空间不足4. 应用自身崩溃5. 健康检查失败针对性建议 二.内存不足问题根源解决方案&#xff08;按优先级排序&#xff09;1. 紧急措施&#xff1a;立即释放内存2. 启用 Swap 交换空间&#xff08;必须做&#xff…...

leetcode继续c++10/100

不应该是10-13-3吗 ChatGLM 引用 从代码片段来看&#xff0c;函数 findAnagrams 的目的是在字符串 s 中找到所有与字符串 p 是字母异位词的子串的起始索引。 代码中有一些调试输出语句&#xff0c;这些语句可能会影响程序的正常逻辑。具体来说&#xff1a; cpp 复制 cout …...

Kubernetes集群使用Harbor容器镜像仓库

实验环境 一、容器镜像仓库Harbor部署 1、配置主机名 192.168.10.14&#xff1a; hostnamectl set-hostname harbor 2、安装Docker wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum -y install docker-…...

归并排序排序总结

1. 归并排序 1.1 基本思想 归并排序&#xff08;Merge Sort&#xff09;是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用。它的基本思想是将一个数组分成两个子数组&#xff0c;分别对这两个子数组进行排序&#xff0c;然后将排好序的子数组合并…...

面试手撕——快速排序

思路 partition方法将整个区间分为两部分&#xff0c;一部分比pivot小&#xff0c;一部分比pivot大&#xff0c; i表示&#xff0c;小于等于pivot的下标&#xff0c;j表示当前遍历到哪一个元素了&#xff0c;如果发现当前元素j小于等于pivot&#xff0c;i&#xff0c;在i1的位…...

大模型微调之LLaMA-Factory 系列教程大纲

LLaMA-Factory 系列教程大纲 一、基础入门篇&#xff1a;环境搭建与核心功能解析 环境部署与框架特性 硬件要求&#xff1a; 单机训练&#xff1a;推荐 24GB 显存 GPU&#xff08;如 RTX 4090&#xff09;&#xff0c;支持 7B-32B 模型 LoRA 微调。分布式训练&#xff1a;2 块…...

26考研 | 王道 | 计算机网络 | 第一章 计算机网络的体系结构

26考研 | 王道 | 第一章 计算机网络的体系结构 文章目录 26考研 | 王道 | 第一章 计算机网络的体系结构1.1 计算机网络概述1.计算机网络的概念2.计算机网络的组成**从组成部分看****从工作方式看****从逻辑功能看** 3.计算机网络的功能4.电路交换、报文交换、分组交换1. 电路交…...

CentosLinux系统crontab发现执行删除命令失效解决方法

权限或安全策略限制 ​​可能场景​​&#xff1a; ​​### ​​目录权限冲突​​&#xff1a; 你的目录权限为 drwxr-xr-x&#xff08;属主 mssql&#xff09;&#xff0c;但 cron 任务以 root 执行。 ​​风险点​​&#xff1a;若目录内文件属主为 mssql 且权限为 700&…...

UniApp页面路由详解

一、路由系统概述 1.1 路由机制原理 UniApp基于Vue.js实现了一套跨平台的路由管理系统&#xff0c;其核心原理是通过维护页面栈来管理应用内不同页面之间的跳转关系。在小程序端&#xff0c;UniApp的路由系统会映射到对应平台的原生导航机制&#xff1b;在H5端则基于HTML5 Hi…...

探索无人机模拟环境的多元景象及AI拓展

无人驾驶飞行器&#xff08;UAVs&#xff09;在各行各业的迅速普及&#xff0c;从农业和检测到空中操作和人机交互等令人兴奋的前沿领域&#xff0c;都引发了一个关键需求&#xff1a;强大而逼真的模拟环境。直接在物理硬件上测试尖端算法存在固有的风险——成本高昂的坠机、中…...

Java后端开发day39--方法引用

&#xff08;以下内容全部来自上述课程&#xff09; 1.1 含义 把已经有的方法拿过来用&#xff0c;当作函数式接口中抽象方法的方法体。 已经有的方法&#xff1a;可以是Java自己写的&#xff0c;也可以是第三方的。 示例语句&#xff1a; &#xff1a;&#xff1a;是方法引…...

C# 14 field keyword:属性简化新利器

引言 在 C# 的不断发展历程中&#xff0c;每一个新版本都带来了令人期待的新特性&#xff0c;而 C# 14 中的 field keyword 无疑是其中一颗璀璨的明星 。对于广大 C# 开发者来说&#xff0c;属性的使用频率极高&#xff0c;而 field keyword 的出现&#xff0c;为我们简化属性…...

破茧成蝶:一家传统制造企业的年轻化转型之路

2004 年&#xff0c;在长三角的轻工业重镇杭集&#xff0c;一家专注于植毛机器设备研发的小工厂悄然诞生。那时&#xff0c;它以 “齿轮与钢铁” 为语言&#xff0c;为全国近千家牙刷生产企业提供核心装备&#xff0c;用机械臂的精准律动&#xff0c;编织着传统制造业的经纬。然…...

【语法】C++的继承

目录 继承基本语法&#xff1a; protected访问限定符&#xff1a; 子类和父类之间的赋值兼容规则&#xff1a; 重定义(隐藏)&#xff1a; 继承中的友元/继承中的静态成员&#xff1a; 子类中的默认成员函数 构造函数/拷贝构造函数&#xff1a; 赋值重载函数&#xff…...

如何知道Ubuntu的端口是否被占用,被那个进程占用?如何终止进程

要检查Ubuntu系统中某个端口&#xff0c;比如5034&#xff0c;是否被占用及终止对应进程&#xff0c;请按以下步骤操作&#xff1a; 1. 检查端口占用情况 方法一&#xff1a;使用 lsof 命令 sudo lsof -i :5034输出结果会显示占用该端口的进程名、PID等信息。 方法二&#x…...

verdi使用tcl脚本批量添加波形

打开verdi console功能 在verdi的tools 里使能工具中的console功能; 在console执行tcl脚本 set cell_list { ts_0_lockup_latchn_clkc45_intno45811_i u_rst_scan_n_tp/u_scan_crl_reg/u_cell u_scan_crl_reg/u_cell u_scan_crl_reg/u_cell } ## specify the waveform window…...

【行业特化篇3】制造业简历优化指南:技术参数与标准化流程的关键词植入艺术

写在最前 作为一个中古程序猿,我有很多自己想做的事情,比如埋头苦干手搓一个低代码数据库设计平台(目前只针对写java的朋友),比如很喜欢帮身边的朋友看看简历,讲讲面试技巧,毕竟工作这么多年,也做到过高管,有很多面人经历,意见还算有用,大家基本都能拿到想要的offe…...

oracle怎样通过固化较优执行计划来优化慢sql

一 问题描述 有次生产环境cpu使用率增高&#xff0c;ADDM报告提示某条sql比较耗费cpu&#xff1a; 提示&#xff1a; 在分析期间, 此 SQL 语句至少利用了 6 个不同的执行计划 #查看该sql都有哪些执行计划 SELECT * FROM table(DBMS_XPLAN.DISPLAY_AWR(sqlid值)); 我手动执…...

【无标题】好用的远程链接插件

现在在做后端开发有的时候需要链接到远程服务器,有很多插件看不到整体的目录结构 推荐 trae的 ssh Client 有很清晰的目录结构...

Plant Simulation MultiPortalCrane Store 小案例

一个天车从库区移动商品到指定地点的案例 库区商品&#xff1a;库区上随机位置摆放商品&#xff0c;在源上绑定方法&#xff08;应该也可以直接在库区上生成&#xff0c;我这里是使用源可以改变生成多少个商品&#xff09; // 源的self.OnExit var Store : object : 存储 var …...

MyBatis 使用 POJO 参数动态查询教程

项目结构概览&#xff08;基于图片描述&#xff09;&#xff1a; mybatis02 ├─ src/main/java │ └─ cn.cjxy │ ├─ domain # 实体类&#xff08;如 Emp.java&#xff09; │ ├─ mapper # Mapper 接口&#xff08;如 EmpMapper.java&#xff09; │…...

【MCP Node.js SDK 全栈进阶指南】高级篇(5):MCP之微服务架构

引言 在软件架构中,微服务模式已成为构建可扩展系统的主流方案。 将MCP与微服务架构结合,能够为AI驱动的应用带来显著优势。 本文将探讨如何在微服务环境中集成和部署MCP服务,以及如何利用云原生技术实现高可用、高性能的MCP应用。 目录 MCP在微服务中的角色服务网格集成容…...

UBUS 通信接口的使用——添加一个object对象(ubus call)

1&#xff0c;引入 ubus提供了一种多进程通信的机制。存在一个守护进程ubusd&#xff0c;所以进程都注册到ubusd&#xff0c;ubusd进行消息的接收、分发管理。 ubus对多线程支持的不好&#xff0c;例如在多个线程中去请求同一个服务&#xff0c;就有可能出现不可预知的结果。 …...