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

记录一次因内存不足而导致hiveserver2和namenode进程宕机的排查

背景

最近发现集群主节点总有进程宕机,定位了大半天才找到原因,分享一下

排查过程

查询hiveserver2和namenode日志,都是正常的,突然日志就不记录了,直到我重启之后又恢复工作了。

在这里插入图片描述

排查各种日志都是正常的,直到查看Grafana,发现内存满了

在这里插入图片描述
在这个节点下已无内存资源可用,在服务宕掉的节点内存使用突然下降,猜测是linux内核的杰作,故查询系统日志

grep "Out of memory" /var/log/messages

在这里插入图片描述

果然存在因OOM被杀掉的进程

进程被杀的原因

Linux 内核有个机制叫OOM killer,全称为 Out Of Memory killer,很形象的一个名字——内存溢出杀手,这个机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,为防止机器内存耗尽而主动把该进程杀掉。

当内核检测到系统内存不足、挑选并杀掉某个进程的过程可以参考内核源代码 linux/mm/oom_kill.c(2023-4-4 23:24:07确认了此文件存在),当系统内存不足的时候,out_of_memory() 函数被触发,然后调用 select_bad_process() 函数选择一个进程杀掉,这个选择的过程是通过调用 oom_badness() 函数实现的,挑选的算法和想法都暴力但朴实:就是找到最占用内存的进程。

出现问题的原因

最近刚刚增加了sentry和hivemetastore内存大小,导致机器内存不够了。

解决方案

1.调整机器进程分布,确保机器不会出现内存超用
2.可以通过设置/proc/sys/vm/overcommit_memory为不同的值来调整OverCommit策略。

overcommit_memory可以取3个值:

  • 0:默认值,由Linux内核通过一些启发式算法来决定是否超售和超售的大小,一般允许轻微的超售,拒绝一些明显不可能提供的请求,同时做一些规则限制,比如不同用户overcommit的大小也不一样。
  • 1:允许,不做限制的超售,当然这个也不是无限大,还受到寻址空间的限制,32位系统最大可能只有4G,64位系统大概16T左右。
  • 2:禁止,禁止超售,系统能够分配的内存不会超过swap+实际物理内存*overcommit_ratio,该值可以通过/proc/sys/vm/overcommit_ratio设置,默认50%。
vi /etc/sysctl.conf
-- 添加
vm.overcommit_memory=1
-- 重启生效
sysctl -p

总结

如果你发现运行了一段时间的进程突然不见了,那可能是内核嫉妒生恨把它给干掉了
查询内存溢出被杀掉的进程可以直接通过系统日志来查 grep “Out of memory” /var/log/messages
也可以通过专门的命令查找 dmesg -T | grep “Out of memory”

阿里P7数据技术专家,修改简历、模拟面试+vx:wodatoucai

相关文章:

记录一次因内存不足而导致hiveserver2和namenode进程宕机的排查

背景 最近发现集群主节点总有进程宕机,定位了大半天才找到原因,分享一下 排查过程 查询hiveserver2和namenode日志,都是正常的,突然日志就不记录了,直到我重启之后又恢复工作了。 排查各种日志都是正常的&#xff0…...

c# 基础语法

c# 程序结构 using System.Collections.Generic; namespace demo1; //一个命名空间可以包含多个类 using System.IO; using System.Drawing;class proj {/// <summary>/// c#是微软开发的&#xff0c;基于c和c的一种面象对象编程语言&#xff0c;用于快速开发windows桌…...

【译】什么时候使用 Spring 6 JdbcClient

原文地址&#xff1a;Spring 6 JdbcClient: When and How to Use it? 一、前言 自 Spring 6.1 起&#xff0c;JdbcClient 为 JDBC 查询和更新操作提供了统一的客户端 API&#xff0c;从而提供了更流畅、更简化的交互模型。本教程演示了如何在各种场景中使用 JdbcClient。 二…...

VR全景:赋能城市园区建设,打造3DVR城市名片

近年来&#xff0c;很多城市都在大力发展数字化经济建设&#xff0c;以VR全景技术赋能现代化城市和园区建设&#xff0c;为城市园区展示带来了全新的可能性。借助3D、VR技术把现实城市和园区搬到互联网上进行全方位展示&#xff0c;将城市园区的形象、景观、规划布局等1&#x…...

孟德尔随机化写作技巧mr

...

社会媒体营销提问常用的ChatGPT通用提示词模板

如何制定有效的社会媒体营销策略&#xff1f; 如何选择适合的社会媒体平台进行营销&#xff1f; 如何创造有吸引力的社会媒体内容&#xff0c;提高用户参与度和分享率&#xff1f; 如何运用社交媒体广告来增加品牌曝光和用户转化&#xff1f; 如何建立和维护社交媒体账号和…...

智慧储能边缘计算网关应用,提升能源效率

智慧储能通过边缘计算网关物联网技术来实现对储能电池等设备的在线监控和远程管理。边缘计算网关可以将储能数据转化为可用的信息&#xff0c;并传输到储能系统中&#xff0c;为储能管理提供优化与调度等数据支持。 边缘计算网关在智慧储能系统中起到了关键的作用。IR4000边缘计…...

利用 Apache Ranger 管理 Amazon EMR 中的数据权限

需求背景简介 系统安全通常包括两个核心主题&#xff1a;身份验证和授权。一个解决“用户是谁”的问题&#xff0c;另一个解决“用户允许执行什么操作”的问题。在大数据领域&#xff0c;Apache Ranger 是最受欢迎的授权选择之一&#xff0c;它支持所有主流大数据组件&#xff…...

HarmonyOS(三)—— 应用程序入口—UIAbility

前言 学习过android的同学都是知道Activity&#xff0c;Activity是Android组件中最基本也是最为常见用的四大组件之一&#xff0c;用户可以用来交互为了完成某项任务。 Activity中所有操作都与用户密切相关&#xff0c;是一个负责与用户交互的组件&#xff0c;可以通过setCon…...

Vuetify:定制化、响应式的 Vue UI 库 | 开源日报 No.83

vuetifyjs/vuetify Stars: 38.1k License: MIT Vuetify 是一个无需设计技能的 UI 库&#xff0c;具有精美手工制作的 Vue 组件。它具有以下核心优势和主要功能&#xff1a; 可定制性&#xff1a;使用 SASS/SCSS 进行广泛自定义&#xff0c;并提供默认配置和蓝图。响应式布局&…...

使用PySpark 结合Apache SystemDS 进行信号处理分析 (离散傅立叶变换)的简单例子

文章大纲 简介 :什么是 SystemDS ?环境搭建与数据 准备数据预处理模型训练 与 结果评估参考文献简介 :什么是 SystemDS ? SystemDS is an open source ML system for the end-to-end data science lifecycle from data integration, cleaning, and feature engineering, ov…...

AT89S52单片机的最小应用系统

目录 ​一.时钟电路设计 1.内部时钟方式 2.外部时钟方式 3.时钟信号的输出 二.机器周期&#xff0c;指令周期与指令时序 1.时钟周期 2.机器周期 3.指令周期 三.复位操作和复位电路 1.复位操作 2 复位电路设计 四.低功耗节电模式 AT89S52本身片内有8KB闪烁存储器&am…...

Pytorch中的tensor维度理解

Pytorch中的tensor维度理解 文章目录 Pytorch中的tensor维度理解摘要打消心理恐惧&#xff0c;从三维学起三维tensor参考文献 摘要 面对pytorch编程中的tensor时&#xff0c;我不时会感到恐惧。对里面数据是怎么排布的&#xff0c;一直没有一个直观的理解。今天我想把这个事情…...

2019年12月 Scratch(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 怎样修改图章的颜色? A:只需要一个数字来设置颜色 B:设置RGB的值 C:在画笔中设置颜色、饱和度、亮度 D:在外观中设置或修改角色颜色特效 答案:D 在外观中设置或修改角色颜色特…...

matlab-实现-BP-神经网络

最近写论文用到了很多神经网络和优化算法&#xff0c;算是废了不少精力收集起来的&#xff0c;还是整理出来分享给大家&#xff0c;以免浪费了。 本篇以最简单的 BP神经网络开始吧 详细的实现步骤如下&#xff1a; 1.环境准备&#xff1a;清空环境变量、关闭开启的图窗、清空变…...

基于go-zero的rpc服务示例

以下是一个基于 go-zero 框架的简单 RPC 服务示例&#xff0c;该示例包括一个服务端和一个客户端通过 gRPC 进行通信。 服务端 1、定义 .proto 文件 在 rpc/add 目录下创建 adder.proto 文件&#xff0c;定义 RPC 服务&#xff1a; syntax "proto3";package add…...

【算法】奇偶游戏(带权并查集)

题目 小 A 和小 B 在玩一个游戏。 首先&#xff0c;小 A 写了一个由 0 和 1 组成的序列 S&#xff0c;长度为 N。 然后&#xff0c;小 B 向小 A 提出了 M 个问题。 在每个问题中&#xff0c;小 B 指定两个数 l 和 r&#xff0c;小 A 回答 S[l∼r] 中有奇数个 1 还是偶数个 …...

补充:linux rsyslog配置多端口监听(基于UDP)

rsyslog默认udp监听端口为514,我们可以配置rsyslog基于udp的多端口监听,实现监控的丰富性 1.环境信息 环境信息 HostnameIpAddressOS versionModuleNotersyslog1192.168.10.246Red Hat Enterprise Linux Server release 7.7 (Maipo)rsyslogd 8.24.0-38.el7linux基础配置 Li…...

详解StringBuilder和StringBuffer(区别,使用方法,含源码讲解)

目录 一.为什么要使用StringBuilder和StringBuffer 字符串的不可变性 性能损耗 二.StringBuilder和StringBuffer StringBuffer源码讲解 使用方式 三.常用方法总结 示例&#xff1a; 四.StringBuilder和StringBuffer的区别 一.为什么要使用StringBuilder和StringBuffe…...

九、sdl显示bmp图片

前言 SDL中内置加载BMP的API&#xff0c;使用起来会更加简单&#xff0c;便于初学者学习使用SDL 如果需要加载JPG、PNG等其他格式的图片&#xff0c;可以使用第三方库&#xff1a;SDL_image 测试环境&#xff1a; ffmpeg的4.3.2自行编译版本windows环境qt5.12sdl2.0.22&…...

【YOLOv11】077、YOLOv11边缘计算部署:边缘服务器与端侧协同推理

上周在客户现场调试,遇到一个典型场景:产线质检终端跑YOLOv11检测工件,模型精度没问题,但产线节奏一快就掉帧。终端设备算力有限,全量模型跑起来勉强够用,但遇到密集小目标时延迟直接飙到300ms以上。产线负责人指着监控屏问:“能不能既保证实时性,又不换硬件?”——这…...

macOS终极指南:3分钟解锁QQ音乐加密格式,实现音乐自由播放

macOS终极指南&#xff1a;3分钟解锁QQ音乐加密格式&#xff0c;实现音乐自由播放 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&a…...

支付宝异步通知验签:支付安全核心机制解析与开源工具实践

1. 项目概述&#xff1a;一个被忽视的支付安全“守门人” 如果你在开发一个涉及在线支付的网站或应用&#xff0c;无论是电商平台、知识付费还是会员订阅&#xff0c;支付成功后的异步通知&#xff08;Notify&#xff09;处理都是整个交易闭环中最关键、也最容易出错的环节。想…...

THINKROUTER:大模型推理的置信度路由优化技术

1. THINKROUTER&#xff1a;大模型推理的置信度路由革命 当大型语言模型&#xff08;LLM&#xff09;在解决复杂数学题时突然"固执己见"地给出错误答案&#xff0c;或者在代码生成时陷入无意义的循环&#xff0c;这些现象背后往往隐藏着一个关键问题&#xff1a;模型…...

VoXtream2流式TTS架构与动态语速控制技术解析

1. VoXtream2技术架构解析VoXtream2的核心创新在于其独特的流式处理架构和动态语速控制机制。该系统采用模块化设计&#xff0c;主要由以下几个关键组件构成&#xff1a;1.1 增量式语音合成流水线与传统TTS系统的批处理模式不同&#xff0c;VoXtream2实现了真正的流水线化处理。…...

为什么你的`flexdashboard`在Tidyverse 2.0下编译慢300%?——`cli 3.6.0`与`lifecycle 1.2.0`依赖冲突的7行补丁源码实测修复

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;flexdashboard在Tidyverse 2.0下编译性能骤降的现象与定位 近期大量 R 用户反馈&#xff0c;在升级至 Tidyverse 2.0&#xff08;含 dplyr 1.1.0、purrr 1.0.0 及 rlang 1.1.0&#xff09;后&#xff0…...

通过curl命令快速测试Taotoken大模型api连通性与功能

通过curl命令快速测试Taotoken大模型API连通性与功能 1. 准备工作 在开始测试之前&#xff0c;请确保您已具备以下条件&#xff1a;一个有效的Taotoken API Key&#xff0c;该Key可在Taotoken控制台中创建。同时确认您的系统已安装curl工具&#xff0c;这是大多数Linux/macOS…...

除了Homebrew,在macOS上安装Helm的几种“野路子”与官方方法对比

除了Homebrew&#xff0c;在macOS上安装Helm的几种“野路子”与官方方法对比 如果你是一名Kubernetes开发者或运维工程师&#xff0c;Helm无疑是你工具箱中不可或缺的一部分。作为Kubernetes的包管理器&#xff0c;Helm通过chart机制极大地简化了复杂应用的部署和管理流程。在…...

R 4.5多核加速失效真相(CPU利用率不足42%?深度剖析parallel::mclapply隐式锁竞争)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;R 4.5并行计算性能瓶颈的系统性认知 R 4.5 引入了对并行后端&#xff08;如 parallel、future 和 clustermq&#xff09;更严格的资源调度约束&#xff0c;但其底层 C/Fortran 接口在多线程共享内存场景…...

文章十五:ElasticSearch 运用ingest加工索引数据

ingest简单介绍 他是es中的独立的数据处理加工的模块&#xff0c;等同于是轻量级的ETL(数据的抽取&#xff0c;转换&#xff0c;加载)&#xff0c;类似于logstash,使用的是popeline的管道处理模型。 应用场景 数据写入&#xff0c;数据更新&#xff0c;构建大宽表&#xff0c…...