进程管理:centos7
pstree:显示进程数
ps:进程状态,静态显示的结果
就是读以下内核映射文件:
/proc/下的数字,就是进程ID
cat /proc/1/cmdline
Linux系统各进程的相关信息存储位置:/proc/PID
ps [option]....
常用组合:aux:(BSD风格)
u:以用户为中心组织进程状态信息显示
a:与终端相关的进程
x:与终端无关的进程
一起使用,表示所有的
# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 19232 1504 ? Ss Oct17 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S Oct17 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Oct17 0:00 [migration/0]
中括号:内核的线程(Linux的线程是轻量级的进程)
VSZ:虚拟内存大小,在自己的线性空间占据的大小
RSS:常驻内存大小,不能回收的,不能被交换出去的,不可以被交换至交换分区的
TTY:终端,?表示于终端无关
STAT:
R:运行
S:可中断的睡眠
D:不可中断的睡眠
T:停止态
Z:僵死态
+:前台进程
l:多线程进程
N:低优先级进程
<:高优先级
s:session leader,它被终止,其下的也会被终止
TIME:运行占据cpu的累积时长
COMAND:进程由哪个命令启动
常用组合2: -ef
-e: 显示所有的进程
-f: 显示完整合适的程序信息
# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Oct17 ? 00:00:01 /sbin/init
root 2 0 0 Oct17 ? 00:00:00 [kthreadd]
PPID:父进程ID
C:运行在的CPU编号
常用组合3: ps -ejH
-H:以进程层级格式显示进程信息
-F:显示完整信息
[root@localhost ~]$ ps -eFH | head
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
root 2 0 0 0 0 3 Oct17 ? 00:00:00 [kthreadd]
psr:运行在哪颗cpu上
常用组合4 : axz 显示seLinux安全上下文了
ps -U root :显示指定用户的进程
ps -eo 或 axo:
指定显示的内容: axo stat,euid,tty,sess,comm
ni:nice值
pri:优先级
psr:运行在哪颗cpu上
trptrio:实时优先级
euid:有效用户
pgrep, pkill: 一样使用
-u:指明有效用户的进程
-U:实际用户(真实用户)的进程:有些进程启动后,会切换用户
-t terminal: 与指定终端相关的进程
-t:ID号 :pkill没有
-l:进程名 pkill没有
-a:完整格式 pkill没有
-P pid:显示其父进程为此处指定的进程的进程列表
pidof:
根据进程名获取其PID
top:动态查看
top - 04:30:22 up 11:24, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 144 total, 1 running, 142 sleeping, 1 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1906256k total, 224536k used, 1681720k free, 21904k buffers
Swap: 4095996k total, 0k used, 4095996k free, 58788k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2090 root 20 0 98.6m 664 572 S 2.0 0.0 0:00.01 head
1 root 20 0 19232 1504 1232 S 0.0 0.1 0:01.75 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kthreadd
默认按照CPU 排序
内置命令:
P:以占据的CPU百分比(本次刷新时间内)
M:以内存占据百分比排序
T:累积占据CPU排序
m:内存信息显示
q:退出
s:修改刷新时间间隔
k:终止指定进程
选项:
-d #:指点刷新时间间隔,默认3秒
-b:以批次显示
-n #:显示几批次
首部信息介绍:
当前时间 运行时长 登录的用户数 平均负载(CPU等待队列的百分比,,分别过去1min 5min 10min)----第一行可以使用uptime查看
进程数
CPU信息(按数字 1 可以查看每颗cpu) 用户空间程序占据的百分比,内核空间,修改nice值占用的时间,空闲,等待IO完成的时间,处理硬件中断,软件中断,被偷走的比例(虚拟机偷走宿主机)
内存 物理内存 ---- 使用free -m 使用
PR:优先级
NI:nice值
VIRT:虚拟内存集
RES:常驻内存集
SHR:共享内存
s:状态
epel源中有htop 使用:
F1:查看帮助
s:跟踪选定进程的系统调用
l:显示选定进程打开的文件列表
[:将选定的进程绑定到指定的CPU 核心上
vmstat:虚拟内存状态
[root@localhost yum.repos.d]$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 1565104 24208 163908 0 0 1 0 4 4 0 0 100 0 0
procs:进程相关
r:等待运行的进程的个数
b:处于不可中断睡眠的进程的个数
memory
swpd:交换内存的使用总量
free:空闲内存总量
buff:用于buffer的内存总量
cache:用于的cache的内存总量
swap
si:数据进入到swap的速率, kb/s
so:数据离开swap的速率
io
bi:从块设备读入数据到内存中的速率
bo:
system:
in:中断速率
cs:上下文切换(进程切换的速率)
cpu:
跟top一样
选项:
-s:显示内存的统计数据
pmap:报告一个进程的内存映射内存表的(物理地址)
匿名页:无法换出去
选项:
数字 :某个进程的
-x:显示详细格式的信息
可以直接查看 /proc/PID数字/maps ,就是读取的该文件
glances: C/S架构的工具
敲 h:
a Sort processes automatically l Show/hide logs
c Sort processes by CPU% b Bytes or bits for network I/O
m Sort processes by MEM% w Delete warning logs
p Sort processes by name x Delete warning and critical logs
i Sort processes by I/O rate 1 Global CPU or per-CPU stats
d Show/hide disk I/O stats h Show/hide this help screen
f Show/hide file system stats t View network I/O as combination
n Show/hide network stats u View cumulative network I/O
s Show/hide sensors stats q Quit (Esc and Ctrl-C also work)
y Show/hide hddtemp stats
常用选项:
-b:以字节Byte为单位显示网卡数据速率
-d:关闭磁盘IO模块
-f :重定向到某个文件
-o {html|csv}:输出格式
-m:不显示mount模块
-n:警用网络模块
-t #: 间隔时间
-l:显示每个cpu
c/s模式下运行glances命令:
服务模式:
glances -s -B ipaddr(本机的ip)
客户端模式:
glances -c IPaddr(服务器的ip)
dstat:
-c : 显示cpu信息
-c #,# 指定显示某些cpu
-d:显示磁盘的读写速率
-D:指定显示某块磁盘的信息
sda1,sda2...
-g:page in /page out 页面换进换出选项
-i:显示中断的统计数
-l:负载load,过去5,10 15分钟
-m:内存
-n:网络数据相关统计数据
-p:进程统计数据
-r:显示IO请求相关的统计数据
-s:交换内存的相关统计数据
-t:时间日期输出
-aio:异步io统计数据
--ipc:进程通信(进程间通信的三种机制:(message queue, semaphores, shared memory)
--socket:
--tcp,udp,raw:
--top-cpu:最消耗cpu的进程
--top-io:最占据IO的进程
--top-mem:最占用内存的进程
--top-int:中断
--top-latency:延迟最大的进程
kill:
向进程发送控制信号,以实现对进程的管理
kill -l:查看信号(man 7 signal也可以获取)
[root@node2 ~]# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
常用信号:
1 -- SIGHUP 通知进程重读配置文件,无须关闭进程
2 -- SIGINT 中止正在运行的进程(Ctrl + c)
9 -- SIGKILL 杀死
15-- SIGTERM 终止正在进行的进程
18-- SIGCONT 启动
19-- SIGSTOP:转为停止
指定信号的方法;
信号的数字标识 1,2,9
信号完整名称
信号的简写名称 HUP
向进程发信号:
kill [-SIGNAL] PID
kill -15 3440
终止‘名称’下的所有进程
killall -SIGNAL 程序名
linux的作业控制:jobs
前台作业:运行时占据了命令行提示符的作业
后台作业:可以通过终端启动,但转为后台执行(不会占据终端)
如何让 作业到后台执行:
ctrl + z
尚未启动的作业启动立即转为后台:
COmmand &
虽然在后台,但是还是与终端相关的,所以终端一结束,就会把作业也终止了
如果希望送后台,剥离与终端的关联:
nohup command &
jobs:查看作业
作业控制:
fg [[%] JOBde 数字]:把指定的后台作业调回来
bg [[%] JOBde 数字]:让后台停止的作业继续在后台运行(但是如dstat输出是在屏幕的,所以还是会显示的)
kill [% 数字]:终止指定的作业
进程优先级调整:
静态优先级:100-139(内核负责调整的,叫动态优先级,但是也是100-139
nice,renice
进程默认启动的nice值 为 0,优先级为 120
nice命令:
nice -n 5 htop(只有管理员可以调低)
renice命令:
renice -n 优先级 pid
查看:ps axo ni,pid,command
未涉及到:sar,tsar,iostat,iftop