linux中的dmesg命令以及确定进程是否被系统主动kill

近期发现线上项目的进程莫名其妙的就不见了,也没有崩溃日志,就怀疑是被操作系统主动kill掉了,但是苦于没有确凿的证据,经过一番查询,发现dmesg命令可以看到操作系统内核的一些日志。

确定进程是否被Kill

执行dmesg命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[bin]# dmesg
[882877.989319] Out of memory: Kill process 10212 (java) score 121 or sacrifice child
[882878.001160] Killed process 10212, UID 0, (java) total-vm:13098572kB, anon-rss:5027928kB, file-rss:208kB
[915713.862428] TCP: Peer 42.225.50.34:51564/8017 unexpectedly shrunk window 155723080:155723151 (repaired)
[915751.446054] TCP: Peer 1.61.9.67:1945/8017 unexpectedly shrunk window 3428410295:3428410361 (repaired)
[916016.586020] TCP: Peer 223.245.136.70:26593/8017 unexpectedly shrunk window 2000807687:2000807751 (repaired)
[916787.644015] TCP: Peer 1.61.9.67:1945/8017 unexpectedly shrunk window 3429952513:3429952529 (repaired)
[917496.356084] TCP: Peer 183.214.214.76:10836/8001 unexpectedly shrunk window 776640860:776640960 (repaired)
[917842.106120] TCP: Peer 183.214.214.76:10836/8001 unexpectedly shrunk window 776767925:776768001 (repaired)
[918184.273393] TCP: Peer 1.61.9.67:1945/8017 unexpectedly shrunk window 3432537400:3432537416 (repaired)
[918354.099425] TCP: Peer 1.61.9.67:1945/8017 unexpectedly shrunk window 3433043715:3433043731 (repaired)
[918458.735018] TCP: Peer 14.204.144.115:44067/8017 unexpectedly shrunk window 3982300320:3982300359 (repaired)
[918975.201329] TCP: Peer 1.61.9.67:1945/8017 unexpectedly shrunk window 3434818386:3434818406 (repaired)
[919021.112801] TCP: Peer 1.61.9.67:1945/8017 unexpectedly shrunk window 3434951074:3434951094 (repaired)
[919245.007146] TCP: Peer 1.61.9.67:1945/8017 unexpectedly shrunk window 3435724834:3435724895 (repaired)

阅读更多

基数排序

桶排序(Bucket Sort)

在说基数排序之前,先讲一下通排序。

Bucket Sort原理:
如果输入M个数字,这些数字介于0-N(N > 0)之间,在数据输入的时候我们预留了一个大小为数组 Count,称之为桶。

阅读更多

关于用GCC编译的时候出现multiple definition of 'xxx'的情况

在使用C语言编写如下测试代码

1
2
3
4
5
6
7
8
9
10
11
//util.h
#ifndef __UTIL_H__
#define __UTIL_H__
#include <stdio.h>
void logInfo(char* msg)
{
printf("%s\n", msg);
}
#endif

阅读更多

vim一些用法

在学习使用vim的过程中随手记录的一些小东西,以便后期查询。

修改vim的tab为4空格

1
2
3
4
set tabstop=4
set softtabstop=4
set shiftwidth=4
set noexpandtab / expandtab

阅读更多

Google的ConcurrentLinkedHashMap和Guava的Cache

由于项目中一直使用的Google的ConcurrentLinkedHashMap作为JVM缓存的容器,该项目已经很久没有更新,从作者的官方文档中看到ConcurrentLinkedHashMap已经被合并到了Guava包中,推荐使用Guava的MapMaker和CacheBuilder,本文稍微简述一下两者的用法。

阅读更多

Redis并发性能测

工具

使用redis自带的redis-benchmark,具体用法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# ./redis-benchmark --help
Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>]
-h 指定服务器主机名 127.0.0.1
-p 指定服务器端口 6379
-s 指定服务器 socket
-c 指定并发连接数 50
-n 指定请求数 10000
-d 以字节的形式指定 SET/GET 值的数据大小 2
-k 1=keep alive 0=reconnect 1
-r SET/GET/INCR 使用随机 key, SADD 使用随机值
-P 通过管道传输 <numreq> 请求 1
-q 强制退出 redis。仅显示 query/sec 值
--csv 以 CSV 格式输出
-l 生成循环,永久执行测试
-t 仅运行以逗号分隔的测试命令列表。
-I Idle 模式。仅打开 N 个 idle 连接并等待。

阅读更多

CentOS上安装Redis

安装redis

1
2
3
$ wget http://download.redis.io/releases/redis-3.2.5.tar.gz
$ tar -zxvf redis-3.2.5.tar.gz
$ make PREFIX=/usr/local/redis-3.2.5 install

阅读更多

MarkDown简明语法

MarkDown语法,该语法文档是从作业部落旗下 Cmd 在线 Markdown 编辑阅读器的说明文档转载,一些 语法可能只支持作业部落,仅供参考。

阅读更多

使用Hexo和maupassant主题搭建个人博客

hexo提供了一套简单的个人静态博客搭建解决方案,本文简单介绍一下本人hexo搭建以及maupassant主题的使用的过程西。

阅读更多

时间复杂度的表示

##时间复杂度表示方法

  • 如果存在正常数c和n,使得当N ≥n时 T(N) ≤cf(N),则记为T(N) = O(f(N));
  • 如果存在正常数c和n,使得当N ≥n时 T(N) ≥cf(N),则记为T(N) = Ω(f(N));
  • 如果存在正常数c和n,使得当N ≥n时 T(N) =cf(N),则记为T(N) = Θ(f(N));

阅读更多