搜索引擎Killed原因排查
问题描述
腾讯云单核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。
相关文章:
mysql 8.0配置主从同步_MySQL8.0.19开启GTID主从同步CentOS8
前言本次搭建目标为1主2从MySQL主从同步结构。采用CentOS8作为操作系统,IP为[10.0.0.211,10.0.0.212,10.0.0.213]。MySQL版本为8.0.19,端口均采用3306。本文仅讲解主从配置,因此安装MySQL的方式请参考安装文档。GTID模式介绍一、GTID Replica…

IO流总结笔记三
字节流: 抽象基类:InputStream, OutputStream。 字节流可以操作任何数据。注意:字符流使用的数组是字符数组。Char [] chs 字节流使用的数组是字节数组。Byte [] bt 转换流: 特点:1,是字节流…

awk1.0 — awk基础
简介 grep,sed,awk被称为Linux文本处理的三剑客,各有特点 grep:适合文本的匹配和查找 sed:编辑匹配到的文本 awk:对文本进行格式化输出 awk简介 awk的基本语法是 awk [options] Pattern {Actions} …

mysql dump 参数_mysqldump常用参数
收集一些常用的mysqldump命令组合。备份数据库1.导出结构不导出数据 **复制代码代码如下:2.导出数据不导出结构3.导出数据和表结构4.导出特定表的结构导入数据:由于mysqldump导出的是完整的SQL语句,所以用mysql客户程序很容易就能把数据导入了࿱…

细心看完这篇文章,刷新对Javascript Prototype的理解
var person{name:ninja}; person.prototype.sayNamefunction(){return this.name; } 分析上面这段代码,看看有没有问题? 没错,这段代码是有问题的,我们可以通过Chrome看一下执行结果: 错误提示说找不到sayName 属性&am…

那些值得回味的MySQL的基础知识
那些值得回味的MySQL的基础知识 MySQL零碎知识点整理 题记: 在如今甚是流行的MySQL中有些基础的知识却是我们日常工作中处理问题容易忘却的一部分,所以不能忘了本,那么我们现在就去回忆那些曾经熟悉的基本吧,废话不多说了 基础常识ÿ…

awk2.0 — awk分隔符
再次重申awk的语法 awk [options] ‘Pattern {Actions}’ file1,file2… awk默认分隔符是空格,分隔符有分为“输入分隔符”和“输出分隔符”。 输入分隔符:awk在处理每一行文本的时候,以默认的空格将文本分隔成一个个单词作为变量。 输出分…

【C++自我精讲】基础系列二 const
【C自我精讲】基础系列二 const 0 前言 分三部分:const用法、const和#define比较、const作用。 1 const用法 const常量:const可以用来定义常量,不可改变,const常量在定义时必须初始化(extern修饰时是特例)。…

mysql system命令_mysql命令
关闭防火墙和selinux:systemctl stop firewalld.servicesetenforce 0永久关闭防火墙和selinux:systemctl disable firewalld.servicesed -i ‘/^SELINUX/s#enforcing#disabled#g’ /etc/selinux/config安装wget:yum install -y wget国内yum源:wget -O /etc/yum.repos.d/CentOS-…

django教程目录
什么是web框架? Do a web framework ourselves MVC和MTV模式 django的流程和命令行工具 Django的配置文件(settings) Django URL (路由系统) Django Views(视图函数) Template基础 Models admin的配置 Middleware cache Cookie & Session…

VRRP在企业网中的应用(H3C设备)
一:实验原理①VRRP概述:随着Internet的发展,人们对网络的可靠性的要求越来越高。对于局域网用户来说,能够时刻与外部网络保持联系是非常重要的。通常情况下,内部网络中的所有主机都设置一条相同的缺省路由,…

vue-cli脚手架(框架)
一、创建vue项目 npm install vue-cli -g #-g全局 (sudo)npm install vue-cli -g #mac笔记本vue-init webpack myvue #项目的名字 cd muvue npm install npm run dev 二、目录结构的说明 出现下面这样的图就说明成功了 三、import和require的区别 import一定要放在文件顶部…

poj 1679 次小生成树
次小生成树的求法: 1.Prime法 定义一个二维数组F[i][j]表示点i到点j在最小生成树中的路径上的最大权值。有个知识就是将一条不在最小生成树中的边Edge加入最小生成树时,树中要去掉的边就是Edge连接的两个端点i,j的F[i][j]。这样就能保存找到的生成树时次小生成树。 …
mysql金库模式_Python vault-anyconfig包_程序模块 - PyPI - Python中文网
vaultanyconfig" rel"nofollow">使用加载和转储功能扩展hvac hashicorp vault客户端任何配置。这允许自动混合来自保险库的机密,允许您存储配置填充了所有详细信息的文件保存为机密,然后访问hashicorp保险库将机密加载到内存字典中。支…

awk3.0 — awk变量
awk有一些内置变量和外置变量,内置变量就是awk自带的变量,用户可以拿来直接使用,如FS,OFS等 awk常用内置变量如下几种: FS:输入单词分隔符,默认是空格 OFS:输出单词分隔…

关于yum库的相关问题
局域网共享yum库的两种方式: 一种是基于HTTP的,需要配置httpd。 一种是基于FTP的。需要FTP的支持。 具体设置参数可参照网上的相关教程。 yum库的建立主要涉及到两点: 1、 Yum服务器安装createrepo并创建仓库 2、 安装完成之后,在…

[ JSOI 2015 ] Salesman
\(\\\) \(Description\) 给出一棵以\(1\)为根的\(N\)个节点的树,开始的时候你在\(1\)号节点。 除了\(1\)号节点以外,每个点都有访问次数限制\(t_i\),即到达该点的次数上限。 除了\(1\)号点每个点还有一个权值\(w_i\),这个权值可以…

linux安装python2和3版本_Windows下安装Python2和Python3双版本
现在大家常用的桌面操作系统有:Windows、Mac OS、Ubuntu,其中Mac OS 和 ubuntu上都会自带Python。这里我们只介绍下Windows(我用的Win10)环境下的python2.x 和 python3.x 的安装,以及python2.x 与 python3.x 共存时的配置问题。本节内容pytho…

JS+CSS点击弹出登陆框代码
<head><meta http-equiv"Content-Type" content"text/html; charsetgb2312"><title>弹出登录框的实现代码</title></head><body><style type"text/css">body {margin: 0px;padding:0}#div1 {display:…

awk4.0 — awk格式化
awk格式化使用printf函数,类似于C语言中的printf函数 比如 awk {printf "%s\n", $1} test1 上面的方式是awk每次处理一行,然后进行替换的,如果我们想要传入多个参数,此时就需要多个格式化

在LinearLayout中嵌套RelativeLayout来设置Button的位置(xml文件)
想将Button和ListView分别放在屏幕的一左一右。 单纯使用android:gravity和android:layout_gravity不成功。 于是涉及到RelativeLayout 关键为:android:layout_alignParentRight"true" android:layout_alignParentLeft"true" <?xml versio…

Scrapy爬虫-必备插件
必备插件: lxml, an efficient XML and HTML parser parsel, an HTML/XML data extraction library written on top of lxml w3lib, a multi-purpose helper for dealing with URLs and web page encodings twisted, an asynchronous networking framework https://…

python类和对象课件_简单解释Python的类和对象
前言:对象是模拟真实世界,把数据和程序进行封装 。对象 属性 方法我们需要用类来创造一个对象,就像我们要用图纸来造房子一样。在Python中函数名是以小写字母开头 ,类名是以大写字母开头。0x00:面向对象(Object Oriented)我们一般…

awk5.0 — awk模式之一
再次重申awk的语法 awk [options] ‘Pattern {Actions}’ file1,file2… awk模式,在之前的文章中简单使用了BEGIN和END。这里的模式,其实我们可以理解成是条件,awk是一行行处理数据的,如果满足某个条件awk就处理某一行数据&#x…

CF331A1,331A2
链接:http://codeforces.com/problemset/problem/331/A1 题意:不翻译了。 思路:A1题数据范围小,暴力是可行的,我果断暴力了。不过,话说,除了暴力我还会什么。。。闲话少说。A2的话,采…

SCCM 2012系列9 补丁分发上
HI,今天我会给大家介绍SCCM 2012的补丁分发,分为上中下,当然希望大家多多指教哦 1 服务器配置 1.1 环境要求 如果SCCM和WSUS在同一台服务器上那没什么,但如果WSUS和SCCM分别在不同的服务器上,那么WSUS服务器需要把S…

python基础-垃圾回收机制
垃圾回收 Python中的垃圾回收是以引用计数为主,分代收集为辅。引用计数的缺陷是循环引用的问题。 引用计数 原理:当一个对象的引用被创建或者复制时,对象的引用计数加1;当一个对象的引用被销毁时,对象的引用计数减1&am…

awk 6.0 — awk模式之二
awk的语法 awk [options] ‘Pattern {Actions}’ file1,file2… 之前介绍了三种模式:空模式,关系运算模式,BEGIN/END模式 正则模式 模式可以理解成条件,正则模式就是满足正则表达式条件的,就执行相应的动作…

根据搜索来路 弹出相应广告
根据搜索来路 弹出相应广告 以下是一段php判断搜索引擎的代码 <?PHP $referer $_SERVER[HTTP_REFERER]; if(!$referer ){ if(ereg(http,$referer)){ $referer eXPlode(.,$referer); if(is_array($referer)){ $referer $referer[1]; if($referer google OR $referer b…