Linux OOM机制&线上osd异常kill

2023-11-14

一 引言

某日早上收到邮件告警信息,上报pg stale以及recovery信息,于是登录系统运维。

二 排查&解决

登录系统后发现系统已恢复正常,按照正常来讲并无影响,但系统既已出现recovery信息意味着一定有osd down发生。于是排查osd日志,发现某osd上报心跳问题。

登录到所在osd  查看osd日志,并无对应错误,但osd进程莫名其妙重启了。

查阅进程验证

意外发现大量osd进程出现重启的问题,怀疑是触发了操作系统某种机制导致进程被kill。查看osd日志,发现在进程退出时,基本上都是leveldb的日志,因为leveldb是一个内存磁盘数据库,怀疑是不是在做某种动作时出现内存不足的情况,于是验证dmesg信息,发现果然如此。

此时查看内存使用情况,发现free -g中已有swap分区被使用,另外buff+cache使用量很大。从Linux内存管理机制来讲,当有程序申请内存时,操作系统应该会逐步释放内存空间,不应会出现内存不足情况。(疑惑)

查阅部分资料,有这样一段话

Linux下允许程序申请比系统可用内存更多的内存,这个特性叫Overcommit。这样做是出于优化系统考虑,因为不是所有的程序申请了内存就立刻使用的,当你使用的时候说不定系统已经回收了一些资源了。不幸的是,当你用到这个Overcommit给你的内存的时候,系统还没有资源的话,OOM killer就跳出来了。

怀疑是否是出现了buff/cache未及时释放导致OOM机制触发,为了避免这个问题,在对系统IO进行评估后,采用手动清缓存的办法释放资源,避免出现内存不足的情况。另外,因所配内存足够,调整了swap分区参数,尽量避免使用swap分区导致性能下降。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux OOM机制&线上osd异常kill 的相关文章

  • ubuntu 22.04部署quincy版ceph

    ceph集群安装配置有多种方式 xff0c 下方cephadm方式是借助容器部署 cephadm从ceph的octopus版本开始支持 安装需要主机配置安装了容器和python 3 配置安排 xff1a ceph版本 xff1a quinc
  • 5. 在 Proxmox VE 配置Ceph

    Pool 用于存储虚拟机的img xff0c 如果需要实现虚拟机的HA xff0c 那么虚拟机必须创建在Ceph上 xff0c 通过Ceph的多副本来实现故障恢复 CephFS 在PVE中主要用于共享文件 xff0c 如iso文件等 创建O
  • Ceph 配置URL访问s3 Bucket

    一 创建json文件 xff0c 用于编辑policy xff0c 文件内容如下 xff08 Version并不重要 xff09 xff0c Action存在多种选择 如步骤三所示 xff0c 并且允许同时选择多个 xff0c 本文只是通过
  • ceph delete pool

    参考 xff1a Pools Ceph Documentation 前言 xff1a 网上的写的乱七八糟不是你抄我就是我抄你 写的完全瞎扯 简直看不下去 官网截图 xff1a 准备 1 查看pool名称 ceph osd lspools 创
  • Ceph运维操作

    1 操控集群 1 1 UPSTART Ubuntu系统下 xff0c 基于ceph deploy部署集群后 xff0c 可以用这种方法来操控集群 列出节点上所有Ceph进程 xff1a start ceph all 启动节点上特定类型的Ce
  • CentOS8联网部署Ceph-Quincy集群

    文章目录 1 环境准备1 1 关闭selinux1 2 关闭防火墙1 3 配置免密1 4 设置yum源1 5 安装依赖1 6 设置时间同步1 7 安装docker 2 安装Ceph2 1 安装cephadm2 2 部署ceph集群2 3 集
  • CentOS 7部署 Ceph分布式存储架构

    一 概述 随着OpenStack日渐成为开源云计算的标准软件栈 Ceph也已经成为OpenStack的首选后端存储 Ceph是一种为优秀的性能 可靠性和可扩展性而设计的统一的 分布式文件系统 ceph官方文档 http docs ceph
  • 【重识云原生】第三章云存储第一节——分布式云存储总述

    重识云原生系列 专题索引 第一章 不谋全局不足以谋一域 第二章计算第1节 计算虚拟化技术总述 第二章计算第2节 主流虚拟化技术之VMare ESXi 第二章计算第3节 主流虚拟化技术之Xen 第二章计算第4节 主流虚拟化技术之KVM 第二章
  • 【分布式】ceph存储

    目录 一 存储基础 单机存储设备 单机存储的问题 商业存储解决方案 二 分布式存储 软件定义的存储 SDS 分布式存储的类型 Ceph 优势 Ceph 架构 Ceph 核心组件 Pool中数据保存方式支持两种类型 Pool PG 和 OSD
  • Ceph入门到精通-ceph对于长文件名如何处理

    RADOS object with short name 上一篇博文 我们将介绍了对象相关的数据结构ghobject t 以及对象在底层文件系统存储的文件名 以及如何从文件名对应到 ghobject t对象 映射关系如下图所示 这里面有一个
  • k8s进阶篇-云原生存储ceph

    第一章 Rook安装 rook的版本大于1 3 不要使用目录创建集群 要使用单独的裸盘进行创建 也就是创建一个新的磁盘 挂载到宿主机 不进行格式化 直接使用即可 对于的磁盘节点配置如下 做这个实验需要高配置 每个节点配置不能低于2核4G k
  • 利用 RDMA 技术加速 Ceph 存储解决方案

    利用 RDMA 技术加速 Ceph 存储解决方案 晓兵XB 云原生云 2023 04 29 20 37 发表于四川 首发链接 利用 RDMA 技术加速 Ceph 存储解决方案 在本文中 我们首先回顾了 Ceph 4K I O 工作负载中遇到
  • 基于dmclock分布式限流策略

    结合Cepb自身的特点 较为合理的做法是将QoS机制直接嵌入每个OSD中来实现 dmclock基本原理 mclock算法 mClock基本原理主要包含以下两个方面 1 为客户端设置一套QoS模板 并在每个1 0请求中携带该QoS模板 2 服
  • Loongnix单机部署Ceph(LoongArch架构、Ceph N版、手动部署MON、OSD、MGR、Dashboard服务)

    基础环境信息 CPU 龙芯3C5000L 2 内存 128G 硬盘 系统盘 一块512G的NVME的SSD 数据盘 三块16T的HDD 操作系统版本 Loongnix 8 4 Ceph版本 Ceph 14 2 21 Nautilus Cep
  • OSD full/nearfull 的解决办法

    总结 1 所有整个集群都是full状态 需要添加新osd或删除不必要内容 2 部分osd处于full状态 首先通过调节near full值 使osd能够读写 再调节osd的weight权重 使其能够把数据写到空间较大的osd 0 说明 个人
  • ceph分布式存储集群部署及应用

    分布式文件系统 Distributed File System 分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上 而是通过计算机网络与节点相连 分布式文件系统的设计基于C S模式 常用分布式文件系统 Lustre Ha
  • Ceph入门到精通-Macvlan网络模式

    Docker中的Macvlan网络模式提供了一种将容器直接连接到宿主机网络的方式 使得容器可以拥有自己的MAC地址和与宿主机网络的直接连接 以下是使用Macvlan网络模式的一般步骤 创建Macvlan网络 docker network c
  • Ceph 4 slow ops, oldest one blocked for 638 sec, mon.cephnode01 has slow ops

    因为实验用的是虚拟机的关系 晚上一般会挂起 第二天早上都能看到 4 slow ops oldest one blocked for 638 sec mon cephnode01 has slow ops的报错 虽然不影响使用 但看着有点难受
  • Ceph入门到精通- smartctl -l error检查硬盘指标

    smartctl l error 是一个 Linux 命令 用于查看磁盘驱动器的 SMART Self Monitoring Analysis and Reporting Technology 错误日志 SMART 是一种技术 能够监测硬盘
  • 单节点集群(minikube)上的 rook ceph 中的 1 pg 规模过小运行状况警告

    我正在将 rook ceph 部署到 minikube 集群中 一切似乎都正常 我向虚拟机添加了 3 个未格式化的磁盘并已连接 我遇到的问题是 当我运行 ceph status 时 我收到一条健康温暖消息 告诉我 1 pg 尺寸不足 我到底

随机推荐

  • [LeetCode-202]-Happy Number-LeetCode 30天挑战赛-2

    文章目录 题目相关 Solution 题目相关 题目解读 给定一个正数 判断该数是否是快乐数 快乐数定义 将该数进行拆分 拆分后的各个数值的平方求和 求和的结果进行如下判断 该数是否为1 或者该数包含在一个循环中无休止地循环 如果数值是1就
  • android获取string.xml的值

    为什么需要把应用中出现的文字单独存放在string xml文件中呢 一 是为了国际化 当需要国际化时 只需要再提供一个string xml文件 把里面的汉子信息都修改为对应的语言 如 English 再运行程序时 android操作系统会根
  • 6、hilens-only 手势识别控制 竞速小车

    hilens only 手势识别控制 竞速小车 hilens only 手势识别控制竞速小车 1 网络配置 2 hilens 手势识别 3 hilens控制台代码 hilens only 手势识别控制竞速小车 1 网络配置 Address
  • Valid Palindrome问题及解法

    问题描述 Given a string determine if it is a palindrome considering only alphanumeric characters and ignoring cases 示例 A man
  • 2021-02-22

    MFC GDI对象累计问题 我遇到的情况是 运行MFC程序一段时间后 发现界面出现变白 卡死情况 通过查看 任务管理器 详细信息 在状态栏任意处单击右键 选择 选择列 gt GDI对象 如果GDI对象值一直在增加 则说明你的界面窗口中GDI
  • 【华为OD机试】最长公共后缀(Java & JS & Python)

    时间限制 C C 1秒 其他语言 2秒 空间限制 C C 262144K 其他语言524288K 64bit IO Format lld 语言限定 C clang11 C clang 11 Pascal fpc 3 0 2 Java jav
  • win10下,安装Qt5.9.7(一)

    工作需要 用Qt代替mfc 所以记录一下安装过程 1 下载安装包 http download qt io archive qt 找到自己需要的版本 2 安装 选中的那个是需要安装的 双击 next skip 即可 东西很大 放哪个盘 看自己
  • 直观的获得MATLAB训练得到的深度学习网络参数与结构

    在MATLAB当中可以通过在 命令行窗口 输出help trainNetwork获得简单的深度学习网络的搭建的代码 为了获得经过训练得到的深度学习模型的结构与学习参数个数 而不用动手分析和计算 可以使用MATLAB中的函数实现对深度学习模型
  • 不能打开localhost 但是能打开127.0.0.1 ; 可以访问127.0.0.1,不能访问localhost

    可以访问127 0 0 1 不能访问localhost 1 确定C WINDOWS system32 drivers etc hosts文件中是不是存在 127 0 0 1 localhost 且这一行没有被 注释掉 如果没有则添加 试验能
  • 论文精读:YOLOv4: Optimal Speed and Accuracy of Object Detection

    Abstract 大量的特征据说可以提高卷积神经网络 CNN 的精度 需要在大数据集上对这些特征的组合进行实际测试 并对结果进行理论证明 有些特性只适用于某些模型 只适用于某些问题 或仅适用于小规模数据集 而一些特性 如批处理标准化和残差连
  • vue中如何使用ueditor?

    1 首先进入gitee gitee网址快 中拉代码 git clone https gitee com msea ueditor 2 在下载的文件中打开终端 检查是否安装grunt 如果没有 则运行 npm install g grunt
  • ImportError: cannot import name ‘XXX‘ 问题最全解最根本决方案 [循环引用]

    0 前言 导入的实质是什么 以下是我从简书收到的一篇文章 https www jianshu com p a1e91cc53b07 我截了一个片段 python中 每个py文件被称之为模块 每个具有 init py文件的目录被称为包 只要模
  • 松灵机器人——ROS下的CAN通讯调试(内含所需调用包,都是操作步骤)

    松灵机器人 ROS下的CAN通讯调试 1 代码包地址 2 硬件准备 2 1 SCOUT MINI 小白车 尾部航空插头 CAN TO USB适配器 2 2 接线 3 具体操作 3 1 ROS安装和环境设置 3 2 配置 CAN TO USB
  • ubuntu20.04安装以及后续配置

    1 Ubuntu安装过程中如何分区 比较复杂的方案 安装时如果遇到关于boot的错误提示框 使用如下方法解决 win 10 U盘启动安装ubuntu遇到的问题和解决方式 预装win8的电脑上U盘安装ubuntu出现了问题 比较简洁的分区方案
  • 设计模式--observer观察者模式

    转自 http blog csdn net Venlin article details 1658821 一 观察者 Observer 模式 观察者模式又叫做发布 订阅 Publish Subscribe 模式 模型 视图 Model Vi
  • JMETER链接数据库(保姆级教学)

    第一步 下载mysql connector java 5 1 44 bin jar插件 RUL https www mysql com cn products connector 点击 Download 点击 Archives 选择版本后
  • 开发完成的golang项目如何上线部署到Linu服务器上?

    windows服务器 先本地编译 go build main go 编译后会在同级目录生成可执行文件 main exe linux服务器 方法一 服务器上去编译 安装go 配置GOPATH 1 把服务器上配置成本地一样的环境 2 包括项目里
  • 【Shell案例】【打印指定行用sed、for循环、head和tail配合使用】4、输出第5行的内容...

    描述写一个 bash脚本以输出一个文本文件 nowcoder txt 中第5行的内容 示例 假设 nowcoder txt 内容如下 welcometonowcoderthisisshellcode 你的脚本应当输出 is 方法1 变量定义
  • android源码编译错误:ninja failed with: signal: killed

    原因是内存不够 解决方法 更换大内存条 编译时关闭占内存的应用 开启或者扩大swap分区 free m 查看swap分区大小 dd if dev zero of var swap bs 1024 count 2000000 2000000为
  • Linux OOM机制&线上osd异常kill

    一 引言 某日早上收到邮件告警信息 上报pg stale以及recovery信息 于是登录系统运维 二 排查 解决 登录系统后发现系统已恢复正常 按照正常来讲并无影响 但系统既已出现recovery信息意味着一定有osd down发生 于是