搜索引擎Killed原因排查

Ubuntu 20.04 部署 Elasticsearch 的系统级配置指南 Elasticsearch 是一款基于 Lucene 的分布式搜索与分析引擎,其稳定运行高度依赖底层操作系统配置。在 Ubuntu 20.04 环境中,内核参数(如 vm.max_map_count、vm.swappiness)、JVM 内存策略、AppArmor 安全模块及 systemd 资源限制共同构成关键运行基础。忽视这些系统级约束,极易导致服务静默失败、连接拒绝或 OOM 崩溃——这并非软件缺陷,而是发行版默认策略与搜索引擎架构深度耦合的必然结果。本文聚焦 Ubuntu 20.04 特定环境,详解 阅读详情
问题描述

腾讯云单核2G内存,运行程序的时候,程序有时会挂掉了,设置ulimit -c unlimited之后,想要core文件,结果程序运行的时候,直接提示killed,没有出现core文件

调研查询

killed的原因多是因为内存不足了,系统自动将程序杀死,此时没有出现core文件
使用free -h查看内存使用情况

[root@VM_125_247_centos server]# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        699M        325M        424K        814M        963M
Swap:            0B          0B          0B

可用空间还有325M,自己的服务器在使用的时候,每次会将倒排索引的文件加载到内存中,如果是高并发的情况下,就会出现问题

我连续点击我的服务器网页,搜索内容,最后程序被killed了,然后打开系统的日志文件

vim /var/log/messages

搜索我的程序名search,发现如下内容,说明程序占用 内存过大,被killed掉了

317799 Aug 14 10:22:09 VM_125_247_centos kernel: Out of memory: Kill process 6280 (search) score 585 or sacrifice child
317800 Aug 14 10:22:09 VM_125_247_centos kernel: Killed process 6280 (search) total-vm:1628312kB, anon-rss:1133948kB, file-rss:156kB, shmem-rss:0kB 

也可以使用top命令去查看某个单一进程使用内存的情况

top -p `pidof search`

search就是执行 程序的时候名称,此时top可以监控单个程序的运行状况

top指令含义

当我们使用top指令查看CPU使用情况的时候,会显示如下内容,各个字段的含义解释一下

%Cpu(s):  4.4 us,  1.7 sy,  0.0 ni, 93.6 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st

us 列显示了用户模式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序
sy 列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
ni 列显示了用户进程空间内改变过优先级的进程占用CPU百分比。
id 列显示了cpu处在空闲状态的时间百分比。
wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
hi 硬件中断占用CPU
si 软件中断占用CPU
st 丢失时间占用CPU

内核机制

内存不足触发了Linux内核的OOM机制Linux 下有个特性叫作 OOM killer(Out of Memory),从字面的意思可以看出和内存溢出相关,当内存耗尽时,该问题就会出现。在Linux2.6.内核中,当该功能打开后,在内存耗尽时,会根据一定的值计算出一个合适的用户空间的进程给kill掉,以便释放更多的内存,保证整个系统的稳定运行。在系统的日志中通常会有下面的打印日志:Out of memory: kill process 959 (sshd) score 55 or a child。

RediSearch实战:比Elasticsearch快5倍的轻量级搜索方案 搜索引擎是现代应用的核心基础设施,其性能与运维复杂度直接影响用户体验和研发效率。传统基于Lucene的ES虽功能强大,但在高并发、低延迟场景下面临JVM GC抖动、冷启动延迟高、配置繁杂等固有瓶颈。RediSearch作为Redis原生集成的内存检索引擎,通过倒排索引内嵌内存、极简查询路径、原生HNSW向量支持等设计,实现确定性毫秒级响应与5倍以上实测性能提升。它适用于实时商品搜索、API网关黑白名单、RAG向量召回等对延迟敏感的场景,兼顾高性能、易部署与低运维成本。本文聚焦RediSearch在Windo 阅读详情

相关推荐

Elasticsearch迁移到Qdrant:向量检索架构重构实战指南

向量相似性搜索已成为现代推荐、语义搜索与AI应用的核心能力,其底层依赖高维向量的高效存储、低延迟近似最近邻(ANN)检索及轻量级元数据过滤。Qdrant作为向量原生数据库,摒弃了Elasticsearch中倒排索引、动态Schema与混合查询的通用设计,专注优化HNSW图构建、标量/乘积量化及payload扁平化处理,在纯向量召回场景下显著降低P95延迟与运维复杂度。本文基于7个生产环境迁移经验,深入解析ES与Qdrant在数据模型、查询范式与资源调度上的根本差异,覆盖冷/热/混合三种迁移路径选型逻辑、pa

weixin_30325971的博客 415

Ubuntu 16.04.01 解决进程跑一段时间就被killed

环景: Ubuntu 16.04.01 问题描述: MATLAB跑一段时间发生,就被killed 原因分析: 可能当时是系统资源不够了被oom-killer了进程 在内核检测到系统内存不足后,会触发oom-killer,挑选最占用内存的进程杀掉 Linux 分配内存策略 Linux内核根据应用程序的要求来分配内存,由于进程实际上并不会将分配的内存全部使用,所以,为了提高性能,内核采用了一种过度分配内存(over-commit-memory)的策略,来间接利用进程的空闲内存,提高内存的使用效率。一般来说,这没

本博客,博文仅代表个人操作经验,不能完全解决你的问题,仅供参考,佛系回复。 4316

ElasticSearch下载安装启动详细图解(一)

本文详细记录了在Linux系统(CentOS 7)上安装Elasticsearch 6.8.6的全过程及问题解决方案。主要步骤包括:从官网下载tar包并解压到/usr/local/java目录;修改elasticsearch.yml配置远程访问;创建专用用户esuser避免root权限问题;调整JVM内存参数(Xms/Xmx设为512m);解决系统限制问题(修改文件描述符、线程数、虚拟内存等配置)。最终通过创建专用用户、调整系统参数后成功启动,并通过curl和浏览器验证了服务可用性。文中还提供了后台启动方式

ywl470812087的博客 1105

Linux centos7启动jar包,没个3秒马上被killed

昨天晚上,前端发现线上环境接口挂了,然后我去看,就看到很诡异的事情,用nohup java -jar XXX.jar &命令启动一个jar包,3秒内,log报了一个killed,其余其他信息啥都没有,于是我去查看内存是否有oom,发现啥的都很正常,很无语了,一直折腾,网上的方法都试了个遍,还是不行。今天早上为了不影响生产,打算把接口映射到备用服务器了。然后发现一个很奇怪的进程启动着,而且使用的端口号很大,六位数,于是我把这个进程kill掉了。神奇的事情发生了,启动那几个服务,竟然启动成功了。

li_tianyang的博客 1592

在WPS/Office中免费使用AI,快速提升办公效率!​

《免费解锁WPS/Office AI办公神器教程》摘要: 本教程详解如何通过第三方插件OfficeAI免费实现WPS/Office智能办公,突破官方付费限制。从安全设置到安装配置,手把手教学,涵盖文档生成、PPT美化、Excel图表等核心功能。关键优势包括零成本、全场景支持及云端/本地双模式切换,并附常见问题解决方案。注意需使用WPS 2024+版本,安装时需临时关闭杀毒软件。教程强调工具来源合法性,建议商用购买正版授权。(149字)

杜哥无敌的博客 2303

【仓颉 + 鸿蒙 + AI Agent】CangjieMagic框架(3):Agent请求和响应

CangjieMagic框架:使用华为仓颉编程语言编写,专门用于开发AI Agent,支持鸿蒙、Windows、macOS、Linux等系统。这篇文章剖析一下 CangjieMagic 框架中的 AgentRequest 和 AgentResponse。

九丘教育官方博客 1475

运行中的程序突然出现"Killed"原因

最近在做性能测试,大量数据进行测试时进程突然中止,出现 "Killed" 提示。 [root@Thor msg]# ./Msg Killed 查阅资料发现了原因: 原因:程序内存上限超出后被kill掉 Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,然后防止内存耗尽而自动把该进...

zchoney的专栏 2万+

大红球预警版-精选+自定义板块监控

这是一款简单易用的股票大单资金监控插件,兼容通达信软件,可嵌入分时图或定制版面。它以红绿圆球直观显示主力买卖情况(红球为买,绿球为卖),支持300万以上大单语音播报。插件提供实时资金流向分析、多股同时监控、自定义预警条件等功能,无需L2账号。用户可自由切换图形/列表模式,监控特定板块,并配合幻影软件实现自动交易。虽然上涨股通常红球占优,但需结合其他指标综合判断。该插件完全免费,包含详细视频教程,适合新手使用。

guleba的博客 1793

Linux服务器 killed原因

【代码】Linux服务器 killed原因。

c_cjiajia_的博客 3369

Open Dynamics Engine(ODE)物理引擎基础教程(I)——特点介绍

下一教程 Open Dynamics Engine(ODE)物理引擎基础教程(II)——相关概念 (在这一教程中将学习刚体、关节、碰撞的概念在ODE中的特点) 本文结构引言介绍特点使用ODE总结 引言 本文翻译自ODE官方教程英文版,有些地方增加了自己的理解。这一节介绍ODE的相关概念。 基础教程英文原版链接【http://ode.org/wiki/index.php?title=Manua...

腿足机器人领域 1677

零停机更新黑科技:Spring Boot应用实现无缝升级的实战指南

本文介绍了基于Spring Boot和Tomcat实现零停机更新的技术方案,通过动态端口切换和优雅关闭机制,确保服务更新过程中业务不中断。文章详细解析了核心原理,包括内嵌Tomcat的工作机制、零停机更新的三大技术基石(端口动态切换、优雅关闭和进程接管)。同时提供了完整的Java实现代码,重点展示了端口动态检查、参数动态调整、旧进程优雅终止等关键逻辑。该方案适用于高可用系统升级场景,能够有效避免传统部署方式导致的服务中断问题,实现100%无感知的应用更新。

墨夶的博客 818

linux程序提示killed的原因

训练一个神经网络的时候,中途出现Killed,然后程序就被终止了。 因为以前遇到过这个问题,所以知道是因为内存不足所以系统将程序终止了。 不过这次想认真看一下系统日志,看一下内存等的消耗状况,然后再考虑解决方案。 1. 查看Killed对应的日志 1.1 触发Killed常见原因 当系统资源不足时,Linux 内核也可以决定终止一个或多个进程。 一个非常常见的例子是内存不足 (OOM) killer,会在系统的物理内存耗尽时触发。 当内存不足时,内核会将相关信息记录到内核日志缓冲区中,该缓冲区可通过

啷个哩个啷 5万+

18|AI 辅助精准测试:让平台会解释、会总结、会推荐

本文介绍 AI 在精准测试平台中的落地方式,包括变更摘要、风险解释、补测建议和报告总结。测试开发工程师。Java 后端开发工程师。质量平台 / DevOps 平台建设者。想了解精准测试落地方法的技术负责人。从报告中提取变更文件、未覆盖行、推荐用例。拼成结构化 JSON。让 AI 生成 200 字质量摘要。把摘要展示在报告顶部。读完本文后,可以复制下面的 Prompt,让 AI 生成一个报告总结练习。你是一名 AI 应用开发专家和测试架构师。

专注 AI 精准测试平台实战落地,分享从代码 Diff 到回归决策的完整工程闭环。主张“先建数据链路,再上 AI 智能”,让测试从“靠经验”走向“基于风险”。 55

解决Microsoft Edge页面崩溃错误代码RESULT_CODE_KILLED_BAD_MESSAGE的方法

最近在使用Microsoft Edge浏览器时,不少用户遇到了页面突然崩溃的情况,并显示错误代码:RESULT_CODE_KILLED_BAD_MESSAGE。在Windows系统中打开任务管理器(快捷键Ctrl+Shift+Esc),在"进程"选项卡中找到所有Microsoft Edge相关的进程,逐个选中后点击"结束任务"按钮。如果问题仍然存在,可以尝试在Edge的设置中找到"重置设置"选项,将浏览器恢复为默认状态。建议暂时禁用所有扩展,然后逐个启用测试,找出可能导致问题的扩展程序。

MoonstoneTiger89的博客 846

C#winform自定义绘制曲线控件实例

本文实例讲解自定义绘制曲线控件过程。 在实际项目中,需要绘制曲线,系统的提供的绘制曲线的控件有时不能满足自己的需要,需要根据项目需要定制开发曲线控件。 实例目标,实时绘制显示温湿度值曲线。

qq_30725967的博客 1734

【Python】-- 趣味代码 - 发牌游戏

Python -- 趣味代码 - 发牌游戏

银尘博客 351

Ubuntu 20.04 安装 Elasticsearch 系统级配置指南

Elasticsearch 是一个基于 Lucene 构建的分布式搜索与分析引擎,其稳定运行高度依赖底层操作系统资源调度。在 Ubuntu 20.04 等现代 Linux 发行版中,内核参数(如 vm.max_map_count)、进程资源限制(ulimit -n)、JVM 内存管理及网络绑定策略共同构成服务启动的前提条件。理解这些系统级原理,不仅能规避 'active (exited)'、'connection refused' 等典型故障,更能支撑从单机开发到生产集群的平滑演进。本文聚焦 Ubuntu

angw337679452的博客 489

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Go内存泄露排查实战:RSS一路飙到8G,居然是 defer 踩了闭包坑

上周三清晨,告警平台突然发来高危通知:检索服务的 K8s Pod 内存占用(RSS)呈 45 度角持续攀升,从初始的 500MB 一路飙到了 8GB 容器上限。随后 K8s 触发了 OOM Killed 强制杀死容器并重启。然而新 Pod 启动不到两小时,内存又再次走上了同样的泄露死路。最诡异的是,Go 官方上报的HeapAlloc(堆分配内存)只有 600MB,但系统层的 RSS 物理内存却耗光了整整 8GB,两者相差了十几倍。

weixin_63764436的博客 5354

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Ubuntu 18.04 安装 Elasticsearch 启动失败的系统级调优指南

Elasticsearch 是一个重度依赖操作系统底层资源的分布式搜索与分析引擎,其稳定运行不仅取决于 Java 环境配置,更受 Linux 内核参数、进程资源限制和 systemd 服务管理机制深度制约。理解 vm.max_map_count、nofile 限制、transparent_hugepage 等核心机制,是解决 'max file descriptors too low' 或 'unable to create native thread' 等典型错误的前提。在 Ubuntu 18.04 这一

dengjuanshou7445的博客 482

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Elasticsearch三节点集群部署实战:从环境准备到高可用验证

分布式搜索与分析引擎是处理海量数据实时检索的核心技术,其通过分片与副本机制实现数据的水平扩展与高可用。理解节点角色、集群发现与数据分布原理,对于构建稳定、可扩展的数据服务至关重要。该技术广泛应用于日志分析、全文搜索和监控系统等场景,能够显著提升数据查询效率与系统容错能力。本文以Elasticsearch为例,结合**系统参数优化**与**分片副本机制**,详细阐述在生产环境中部署高可用三节点集群的完整流程,涵盖从环境配置、服务启动到故障模拟验证的实践要点,为构建可靠的数据分析平台提供具体指导。

weixin_30457465的博客 539
上一篇: GDB调试
下一篇: epoll
NeilZhy
博客等级 码龄11年 175粉丝 145原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值