给自己看的Linux进程监控及管理

进程状态
Linux 内核:抢占式多任务        
进程类型   
守护进程:daemon,在系统引导过程中启动的进程,和终端无关进程。
前台进程:跟终端相关,通过终端启动的进程
注意:两者可相互转化
       进程状态
  • 运行态:running
  • 就绪态:ready
  • 睡眠态:
        可中断:interruptable
        不可中断:uninterruptable
        停止态:stopped,暂停于内存,但不会被调度,除非手动启动
        僵尸态:zombie,结束进程,父进程结束前,子进程不关闭
    僵尸进程
        一个子进程在其父进程没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。如果其父进程还存在而一直不调用wait,则该僵尸进程将无法回收,等到其父进程退出后该进程将被init回收。
    孤儿进程
        一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
=====僵尸进程将会导致资源浪费,而孤儿进程则不会。====
进程的分类
CPU-Bound:CPU密集型,非交互
    在多重程序系统中,大部份时间用来做计算、逻辑判断等CPU动作的程序称之CPU bound。例如一个计算圆周率至小数点一千位以下的程序,在执行的过程当中 绝大部份时间用在三角函数和开根号的计算,便是属于CPU bound的程序。
IO-Bound:IO密集型,交互
    I/O bound 指的是系统的CPU效能相对硬盘/内存的效能要好很多,此时,系统运作,大部分的状况是 CPU 在等 I/O (硬盘/内存) 的读/写,此时 CPU Loading 不高。
Linux系统状态的查看及管理工具
pstree  ps  pidof  pgrep  top  htop  glance  pmap  vmstat  dstat  kill  pkill  job  bg  fg  nohup
进程相关
    pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-Z] [-A|-G|-U] [pid|user]
参数说明
-a:显示出该命令的参数,假如这个命令进程被其他进程替换掉,那么进程将显示在括号中-a选项包含有压实进程树的选项,对于相同的进程,会使用n*(process)的形成展现出来
-c:关闭禁用显示结果进程树,在默认情况下,进程树是会被压缩的。不管有多少进程名相同的进程,都会逐个显示出来。  
-G:使用vt100线性描述树
 -h:突空出显示当前进程的父进程并高亮显示出来,如果没有父进程那么什么都不会显示。
-H:突出显示出指定进程的父进程信息并高亮显示出来,使用方法为pstree -H PID
-l:显示长格式命令选项,在默认的情况下,命令行最多显示宽度为132bit,超过将不能正常显示。
-n:基于进程相同的祖先来进行排序,可以命名pid来代替进程名称。
-p:显示所有的时程,显示结果包含进程名和时进程ID
-u:显示出用户的UID,无论何时,这个UID和进程比较UID参数,这个新的UID将在进程名后显示不同的参数。
-U:使用utf-8字符集以十进制表示
pstree -pc
    ps默认显示当前终端中的进程
参数:说明
a:选项包括所有终端中的进程
x:选项包括不连接终端的进程
u:选项显示进程所有者的信息
f:选项显示进程的父进程
o:属性...选项显示定制的信息:pid、comm、%cpu、%mem、state、tty、euser、ruser
        字段含义
字段:含义
VSZ:Virtual memory SiZe,虚拟内存集,线性内存
RSS:ReSident Size,常驻内存集
ni:nice值
pri:priority 优先级
psr:processor CPU编号
rtprio:实时优先级
            STAT进程状态
字段:含义
R:running
S:interruptable sleeping
D:uninterruptable sleeping
T:stopped
Z:zombie
+:前台进程
l:多线程进程
L:内存 分页并带锁
N:低优先级进程
<:高优先级进程
s:session leader
        常用组合
  •  -ef
-e:显示所有进程
-f:显示完整格式的程序信息
--eFH
-F:显示完整格式的进程信息
-H:以进程层级格式显示进程相关信息
    进程优先级调整
静态优先级:100-139
进程默认启动时的nice 值为0,优先级为120
只有根用户才能降低nice值(提高优先性)
        nice [OPTION] [COMMAND [ARG]...]
执行时指定
        nice -n -5 /usr/local/mysql/bin/mysqld_safe &
renice [-n] priority pid...
        renice -n 2 -p 3432
        -n后面是优先级的值;-p是进程号
top命令。输入r,然后根据提示输入进程ID,再输入优先级数值。
查看:
ps    axo    pid    comm    ni
例1

[root@localhost ~]# ps -e #显示所有进程
PID TTY TIME CMD
1 ? 00:00:00 init
2 ? 00:00:00 migration/0
3 ? 00:00:00 ksoftirqd/0

。。。。。。。。。省略。。。。。。。。。。。。。。

[root@localhost ~]# ps aux #不区分终端,显示所有用户的所有进程
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 4535 0.0 0.5 64340 11208 ? S 18:59 0:00 /usr/libexec/notification-daemon
root 4538 2.8 0.4 51116 8712 pts/2 SL+ 18:59 0:44 mplayer /mnt/usb/music/20080625211631.mp3 /mnt/usb/music/46250194.mp3 /mnt

。。。。。。。。。省略。。。。。。。。。。。。。。

[root@localhost ~]# ps -ef #显示所有进程的UID,PPIP,C与STIME栏位
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 18:24 ? 00:00:00 init [3]
root 2 1 0 18:24 ? 00:00:00 [migration/0]
root 3 1 0 18:24 ? 00:00:00 [ksoftirqd/0]

。。。。。。。。。省略。。。。。。。。。。。。。。

[root@localhost ~]# ps -u zhangy #显示zhangy用户的所有进程
PID TTY TIME CMD
3804 ? 00:00:00 httpd
3805 ? 00:00:00 httpd
3806 ? 00:00:00 httpd
。。。。。。。。。省略。。。。。。。。。。。。。。

搜索进程
最灵活:ps    选项 | 其他命令
按预定义的模式:pgrep
pgrep [options] pattern
参数|含义
-u uid|effective user ,生效者
-U uid|real user ,真正发起运行命令者
-t terminal| 与指定终端相关的进程
-l| 显示进程名
-a| 显示完整格式的进程 名
-P pid| 显示指定进程的子进程
  1. tty
  2. pgrep -lt pts/0 显示pts/0终端的进程名和pid
  3. pgrep -lu root 显示root用户的相关进程
按确切的程序名称:/sbin/pidof
pidof bash
按确切的端口:lsof
  • lsof -i:80 查看tcp或udp为80的端口( netstat -lnp |grep 80)
  • lsof -u username 显示所属user进程打开的文件
  • lsof -g gid 显示归属gid的进程情况
  • lsof +d /DIR/ 显示目录下被进程打开的文件
  • lsof filename 显示打开指定文件的所有进程
  • lsof -i -U //显示所有打开的端口和UNIXdomain文件
  • lsof -i@192.168.1.91 查看指定网口有哪些进程在使用
uptime显示当前时间,系统已启动的时间、当前上线人数,系统平均负载(1、5、10分钟的平均负载,一般不会超过1)
系统平均负载:
指在特定时间间隔内运行队列中的平均进程数
- ==通常每个CPU内核的当前活动进程数不大于3,那么系统的性能良好。如果每个CPU内核的任务数大于5,那么 此主机的性能有严重问题==
- 如果linux 主机是1 个双核CPU,当Load Average为6的时候说明机器已经被充分使用
  1. uptime
  2. 00:48:13 up 8:02, 2 users, load average: 0.00, 0.01, 0.05
  3. 00:48:13 up指开机时间
  4. 8:02指系统运行了8分零2秒
  5. 2 users表示当前有两个终端登录,至少有一个tty1
  6. oad average: 0.00, 0.01, 0.05指1,5,10分钟内的平均负载
top 【-dupnb】
-b |批处理
-c| 显示完整的命令
-I |忽略失效过程
-s |保密模式
-S |累积模式
-i<时间> |设置间隔时间
-d <时间>|默认3s
-u<用户名>| 指定用户名
-p<进程号> |指定进程
-n<次数> |循环显示的次数

头部栏位信息简介

us |用户空间
sy |内核空间
ni |改变过优先级的进程占用CPU的百分比
id |空闲CPU百分比
wa |IO等待占用CPU的百分比
hi |硬中断 通过鼠标,硬盘数据移动等操作发送中断信号
si |软中断(模式切换)软件对cpu的操作,比如进程之间的切换
st|虚拟机偷走的时间

TOP交互命令
在top命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了s选项,其中一些命令可能会被屏蔽。
h:显示帮助画面,给出一些简短的命令总结说明
M:根据驻留内存大小进行排序
P:根据CPU使用百分比大小进行排序
T:根据时间/累计时间进行排序
k:终止一个进程
i:忽略闲置和僵死进程。这是一个开关式命令
q:退出程序
r:重新安排一个进程的优先级别
S:切换到累计模式
s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5s
f或者F:从当前显示中添加或者删除项目
o或者O:改变显示项目的顺序
l:切换显示平均负载和启动时间信息
m:切换显示内存信息
t:切换显示进程的CPU状态信息
c:切换显示命令名称和完整命令行
W:将当前设置写入~/.toprc文件中
内存相关
vmstat [options] [delay[count]]
vmstat 2 5 每2s刷新,一次刷新5次
-s 显示内存的统计数据
iostat统计CPU和设备IO信息(每个磁盘读写速率统计)
iostat 1 10    1s刷一次刷新10次停止
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值