问题描述

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

调研查询

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

[root@VM_125_247_centos server]# free -htotal        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。

搜索引擎Killed原因排查相关推荐

  1. 统计信息自动收集任务失效原因排查

    环境:Oracle 11.2.0.3 RAC 问题:统计信息自动收集任务失效原因排查 1.查看自动任务的状态 2.进一步查看其它信息 3.解决问题 1.查看自动任务的状态 查看自动任务的状态,确认是e ...

  2. LAN9252 out端口识别不到的原因排查

    LAN9252 out端口识别不到的原因排查(干货) 遇到的现象 TwinCAT 3识别不到下一级从站,out端口有问题 排查可能原因 捕获了out端口发出的波形失真 lan9252的65脚接地,没焊 ...

  3. ORA-12805: parallel query server died unexpectedly ORA-04030 (sort subheap,sort key) 原因排查与解决方法

    ORA-12805: parallel query server died unexpectedly ORA-04030 (sort subheap,sort key) 原因排查与解决方法 参考文章: ...

  4. win10卸载电脑管家就蓝屏_Win10电脑蓝屏原因排查及解决方案

    原标题:Win10电脑蓝屏原因排查及解决方案 Insider社区教程 最近,很多使用win10系统的小伙伴们遇到不带错误代码的蓝屏现象,让很多小伙伴们都不知道该如何解决问题,殊不知,不同的蓝屏代码代表 ...

  5. 【阿里云】阿里云磁盘异常爆满的原因排查及解决方法,df和du命令查看磁盘时结果不一致

    [阿里云]阿里云磁盘异常爆满的原因排查及解决方法,df和du命令查看磁盘时结果不一致,虽然磁盘显示满了,但是通过du查询磁盘空间实际上空间并没有满 文章目录 一.阿里云磁盘空间满了如何查看 二.使用d ...

  6. 苹果cms采集后无法播放原因排查及解决教程

    声明:除特殊声明外本站文档均由作者原创,转载请注明出处,原文地址:苹果cms采集后无法播放原因排查及解决教程 苹果cmsv10采集后无法播放黑屏原因排查,首先确定是否导入播放器,采集资源后如果没有添加 ...

  7. 使用scp局域网内传输文件速度很慢的原因排查

    使用scp局域网内传输文件速度很慢的原因排查 1.问题 1.1 scp更改加密方式 1.2 app limited角度 2.尝试排查问题(解决方式) 2.1 电脑同时连接了wifi和有线(实验室有线网 ...

  8. Oracle查询提示 ORA-00933: SQL command not properly ended 原因排查

    Oracle查询提示 ORA-00933: SQL command not properly ended 原因排查 问题描述 问题排查与解决 问题描述 一段sql语句,在postgre数据库中运行未出 ...

  9. Oracle查询提示 ORA-00933 SQL command not properly ended 原因排查

    Oracle查询提示 ORA-00933: SQL command not properly ended 原因排查 问题描述 问题排查与解决 问题描述 一段sql语句,在postgre数据库中运行未出 ...

最新文章

  1. Redis入门到精通-Redis高级命令
  2. 【Linux】10.安装和开启ftp服务
  3. JavaWeb图书管理系统day01
  4. Cow Toll Paths(floyd变形)
  5. [C++11]可调用对象包装器function
  6. Integer 与 int 的区别
  7. 使用Thrift让Python为Java提供服务
  8. 实现对接顺丰业务的订单管理系统
  9. 微信小程序 解决disableScroll无法禁止小程序下拉的问题和视频铺满全屏尺寸
  10. 联想用u盘重装系统步骤_联想笔记本Y470 U盘重装系统过程教程
  11. office文档管理服务器编辑,office在线编辑方案
  12. onedrive搭建个人网盘
  13. 汇编语言之div命令
  14. java毕业设计摄影服务管理系统服务端mybatis+源码+调试部署+系统+数据库+lw
  15. 51nod 1629 B君的圆锥
  16. 怎样查看Redis的版本号
  17. 汽车计算机控制系统及其组成,汽车计算机控制系统的研究.doc
  18. 计算机体系结构的一知半解
  19. 我的作品 电子元件替换速查字典V5.0
  20. Python使用ffmpeg合成视频、音频

热门文章

  1. [摘录]代码优化规则
  2. jquery中如何以逗号分割字符串_百度知道
  3. 从瀑布模型、极限编程到敏捷开发
  4. portal认证 php,配置外置Portal认证示例(命令行)
  5. 硬盘显示容量和实际容量不符合_为啥我买的64G U盘实际只有57G?聊聊存储市场的“不足量”现象...
  6. tm matlab,[转载]关于matlab中textread
  7. python统计csv行数_对Python 多线程统计所有csv文件的行数方法详解
  8. 手机php转换txt,PHP 实现的将图片转换为TXT
  9. python pip指令_python 常用 pip 命令合集
  10. xiaohai.cf index.php,php des 加密 - 北京破小孩