kali Linux卡死排查笔记

kali在运行某程序后卡死了,在这里做个排查笔记,确定哪个进程造成的,其他Linux应该也通用。

查看内存占用

free -m
  1. 当物理内存快被耗尽时,系统并没有崩溃,而是拿swap做临时内存,当两者都耗尽,系统就挂了
  2. 物理内存到达峰值,系统中可能一些不常用的进程内存占用被挪用到swap区
  3. 当Mem区的资源进行释放时,被挪到swap的内存并不会立即恢复
  4. Swap是内存不够时虚拟出来的内存,处理速度不高

获取占用内存资源最多的10个进程

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head

查看CPU占用

top
#q退出

参数解读

top - 02:55:05 /*当前时间*/ up 7 days,19:38, /*系统运行时间*/  1 user, /*当前登录用户数*/ load average: 0.06, 1.57, 2.26 /*系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值*/
Tasks: 172 total,   1 running, 171 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.1 us,  0.8 sy,  0.0 ni, 97.8 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
/*第三、四行
total 进程总数
running 正在运行的进程数
sleeping 睡眠的进程数
stopped 停止的进程数
zombie 僵尸进程数
Cpu(s): 
1.1% us 用户空间占用CPU百分比
0.8% sy 内核空间占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
97.8% id 空闲CPU百分比
0.3% wa 等待输入输出的CPU时间百分比
0.0%hi:硬件CPU中断占用百分比
0.0%si:软中断占用百分比
0.0%st:虚拟机占用百分比*/
MiB Mem :   1992.1 total,    742.9 free,    760.1 used,    489.0 buff/cache
MiB Swap:   2045.0 total,   1340.2 free,    704.8 used.   1028.8 avail Mem 
/*
Mem:
191272k total    物理内存总量
173656k used    使用的物理内存总量
17616k free    空闲内存总量
22052k buffers    用作内核缓存的内存量
Swap: 
192772k total    交换区总量
0k used    使用的交换区总量
192772k free    空闲交换区总量
123988k cached    缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入*/
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                                             
  76762 root      20   0    8104   4748   3188 S   0.0   0.2   0:00.01 bash   
序号  列名    含义
a    PID     进程id
b    PPID    父进程id
c    RUSER   Real user name
d    UID     进程所有者的用户id
e    USER    进程所有者的用户名
f    GROUP   进程所有者的组名
g    TTY     启动进程的终端名。不是从终端启动的进程则显示为 ?
h    PR      优先级
i    NI      nice值。负值表示高优先级,正值表示低优先级
j    P       最后使用的CPU,仅在多CPU环境下有意义
k    %CPU    上次更新到现在的CPU时间占用百分比
l    TIME    进程使用的CPU时间总计,单位秒
m    TIME+   进程使用的CPU时间总计,单位1/100秒
n    %MEM    进程使用的物理内存百分比
o    VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p    SWAP    进程使用的虚拟内存中,被换出的大小,单位kb。
q    RES     进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r    CODE    可执行代码占用的物理内存大小,单位kb
s    DATA    可执行代码以外的部分(数据段+)占用的物理内存大小,单位kb
t    SHR     共享内存大小,单位kb
u    nFLT    页面错误次数
v    nDRT    最后一次写入到现在,被修改过的页面数。
w    S       进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
x    COMMAND 命令名/命令行
y    WCHAN   若该进程在睡眠,则显示睡眠中的系统函数名
z    Flags   任务标志,参考 sched.h

获取占用CPU资源最多的10个进程:

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

此外的一种场景就是遇到服务器挖矿型勒索病毒,也可以通过这种方法定位CPU异常的进程,确定病毒位置rm -rf 顺便检查定时任务目录,防止死灰复燃/var/spool/cron crontabs

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章