free 查看内存使用
free
— 查看内存使用情况
# total共多少,used已使用多少,free空闲多少,buff/cache磁盘缓存多少,available可用多少
# -m 输出结果使用 MB(兆字节)显示。默认是 KB(千字节)
[root@VM-0-11-ubuntu /home/ubuntu/alluxio]$ free -m
total used free shared buff/cache available
Mem: 3935 2055 118 2 1761 1626
Swap: 0 0 0
free
是真实未被使用的物理内存大小available
是应用程序可用内存大小。
$$ available = free + buffer + cache(可回收缓存) $$
top 实时查看进程运行情况
top
— 实时查看进程占用内存和cpu情况
某个时刻的运行如下图:
参数意义如下:
top - 时间 up 9 days, 1:47, 几个用户, load average(系统负载,任务队列的平均长度): 0.00(1分钟-现在), 0.01(5分钟-现在), 0.00(15分钟-现在)
Tasks任务/进程: 119 total(共), 1 running(运行中), 118 sleeping(睡眠中), 0 stopped(终止), 0 zombie(僵尸进程)
%Cpu(s)(占用cpu百分比): 0.7 us(用户空间占用), 0.5 sy(系统空间占用), 0.0 ni(用户空间中改变过优先级的进程), 98.8 id(空闲cpu), 0.0 wa(I/O等待), 0.0 hi(硬中断), 0.0 si(软中断), 0.0 st
MiB Mem(内存) : 3935.5 total, 117.7 free, 2055.5 used, 1762.4 buff/cache
MiB Swap(交换区): 0.0 total, 0.0 free, 0.0 used. 1626.6 avail Mem
#(实时进程运行情况)
[进程id][用户] [优先级][nice值] [虚拟内存] [常驻内存] [共享内存] [进程状态]
[cpu占用比] [内存占用比] [运行时间] [进程名/命令名]
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1490 root 20 0 1025016 81428 19296 S 1.3 2.0 238:10.99 YDService
11 root 20 0 0 0 0 I 0.3 0.0 2:47.02 rcu_sched
其中,有一个进程,kswapd0
进程,是一个虚拟内存中负责交换页的进程,如果该进程占用cpu过高,说明系统正在进行频繁的换入换出。一般是由于物理内存(非硬盘容量)不够用而导致的。
ps 查看进程占用的cpu和内存
ps
— 查看进程占用的cpu和内存
# aux 使用BSD格式显示
ps -aux
例子:查看占用内存最多的5个进程
# 查看进程,按照第4列降序,然后取前5个
ps -aux | sort -k4rn | head -5
pstree 查看进程关系
pstree
— 以树状的形式查看进程之间的关系
根据子进程查看父进程,可以用以下命令:
# 方案一:只能显示当前子线程的直接父进程
cat /proc/[pid]/status # 显示结果中pid 是当前进程,ppid 是父进程
# 方案二:显示进程树
pstree -aps [pid]
pstree -aps [pid] | less # 配合上下箭头查看,按 q 退出查看
-p
:显示每个进程的 pid-a
:相同名称的进程不会合并显示-s
:显示当前子线程的父进程
举个例子:
命令 cat /proc/[pid]/status
的执行结果如下:
命令 pstree -aps [pid]
的执行结果如下:
kill 杀死进程
kill
命令,用于杀死进程。
kill -9 [pid] # 强制杀死进程。等价于 kill -KILL [pid]
kill -15 [pid] # 正常杀死一个进程。等价于 kill -TERM [pid]
# pkill 可加信号参数。使用 pgrep 筛选,避免杀错。
pkill [进程名,可部分] | pgrep -l [进程名]
# 按照终端号踢出用户
pkill -t [终端号] 进程名 # pkill -9 -t pts/1 强制提踢出从 pts/1 终端登录的用户
killall [进程名,全名]
# pgrep -l [进程名] 筛选出包含进程名的所有进程名及其pid
# pgrep [进程部分名]
# pidof [进程全名]
# 以上两个命令可以直接获取pid
kill -19 [pid] # 让进程暂停
kill -18 [pid] # 让进程继续
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。