欢迎光临
我们一直在努力

linux查看进程使用情况,linux 进程查看

说明:本文所有案例均在linux 2.6.32-642.el6.x86_64验证成功

查看进程 ps (重要)

Process State 是非常强大的进程查看命令,用于报告当前系统的进程状态。

常用选项:

1、BSD风格
a——和终端有关的进程
x——和终端无关的进程
u——显示进程的执行者
2、sys V风格
-e——查看所有进程
-l——long,长格式
-f——full,详细信息
-o——指定输出格式

常用命令

ps #查看隶属于自己的进程

ps -l(ps -u)#仅查看隶属于自己进程的详细信息

[root@daidai ~]# ps -lF S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD4 S 0 1703 1698 0 80 0 – 27104 wait pts/0 00:00:00 bash4 R 0 1779 1703 0 80 0 – 27035 – pts/0 00:00:00 ps

F 进程标志
4 此进程的权限为root
1 此进程仅可进行复制(fork)而无法被执行(exec)

S 进程状态
R:该进程正在运行中
S:该进程目前正在睡眠状态(idle),但可以被唤醒(signal)
#进程睡眠并不代表该进程未开启;
D: 不可被唤醒的睡眠状态,通常这个进程可能在等待I/O的情况(ex>打印)
T:停止状态,stop,可能是在工作控制(后台暂停)或除错(traced)状态
Z:“僵尸”状态,进程已经终止但却无法被删除至内存外

UID、PID、PPID
该进程是root用户(UID为0一般为root)的1730进程(UID),此进程的父进程为1698(PPID);

C
CPU利用率,单位为百分比;

PRI/NI
此进程被CPU执行的优先级(后续会详解);

ADDR、SZ、WCHAN
都与内存有关;ADDR表示该进程在内存的哪个部分,running的进程显示,SZ表示此进程用掉多少内存,WCHAN表示目前进程是否在运行中,running显示

ps aux(ps -le) #查看所有用户执行的过程的详细信息

[root@daidai ~]# ps -aux | head -n 5USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.1 19360 1528 ? Ss 19:13 0:03 /sbin/initroot 2 0.0 0.0 0 0 ? S 19:13 0:00 [kthreadd]root 3 0.0 0.0 0 0 ? S 19:13 0:00 [migration/0]root 4 0.0 0.0 0 0 ? S 19:13 0:00 [ksoftirqd/0]

user:进程执行者;

PID:进程的ID;

%CPU:进程CPU占用率;

%MEM:进程内存占用率;

VSZ:该进程使用掉的虚拟内存大小(kb);

RSS:该进程占用的真实内存大小;

TTY:是否终端有关;

STAT:进程状态;

START:进程启动时间;

TIME:进程占用CPU的总时长;

COMMAND:进程名
【COMMAND】代表的是内核进程的一个线程

ps -o pid,comm,ni
指定进程按PID、COMMAND、NICE的格式输出

列出占用CPU最多的5个进程,并按从大到小进行排序

[root@daidai ~]# ps -eo comm,pcpu –sort -pcpu | head -n 5COMMAND %CPUevents/0 0.2init 0.0kthreadd 0.0migration/0 0.0

pcpu:cpu使用率的百分比;
可直接在后面接–sort进行排序;

和kill搭配

用于随时终端、删除不必要的程序

例:寻找并杀死僵尸进程

top | head -n 2 #查看服务器是否有僵尸进程,若zombie>0则有;(见top详解)ps -efo stat,ppid,pid,cmd | grep -e ‘^[Zz]’ #寻找僵尸进程
Z 12348 12344 /path/cmd kill -15 12348 #给进程发送signal,杀死这个僵尸进程ps -efo stat,ppid,pid,cmd | grep -e ‘^[Zz]’ #确认该僵尸进程已被杀死
若未被杀死,可以通过以下方法解决:
kill -15 12344 #杀死其父进程
kill -9 12348 #强制杀死
killall/pkill P_name #通过进程名杀死进程

小结:使用ps命令可确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用率过多的资源等等,总之大部分信息都是可以通过执行该命令得到的

top

top是一个交互式系统性能监控工具,不同于ps是静态的结果输出,top可以实时动态地查看系统的整体运行情况。
通过top命令所提供的互动式界面,用热键可以管理。
#这个交互界面,类似任务管理器

load average:系统负载对于单个处理器来说,负载在0-1.00之间是正常的,超过1.00就要引起注意了,系统已经超载了,我理解为塞车了。在多核处理器中,你的系统均值不应该高于处理器核心的总数(多个1*CPU核数),还可以通过uptime查看系统负载;

%us:用户空间占用CPU百分比,此值较高时,表示进程消耗CPU时间多,如果长期超过50%的时候,我们就要考虑优化程序算法或者进行加速;

%sy:内核空间占用CPU百分比,此值较高时,表示系统内核消耗CPU资源多,我们应该检查原因;

%wa:等待输入输出的CPU时间百分比,此值较高时,说明IO等待验证,这可能是由于磁盘大量随机访问造成,也可能造成磁盘出现瓶颈(块操作);

%id:反映了CPU繁忙程度;

buffers和cached区别了解一下:buffer是块设备的读写缓存区,cached是文件系统本身的页面缓存,它们都是linux操作系统底层的机制,目的是加速对磁盘的访问;

PR和NI:系统优先级有2种,一种是不能被用户更改,由系统控制的priority;一种是nice值,可以被用户修改(使用renice命令),范围-20~+19,越小越优先;

小结

RT代表实时,real time,最高优先级
每隔3s刷清一次,-b改变时间;T、M、P 按键盘

pstree

linux系统中,每一个进程都是由其父进程创建的,
此命令以树状图的方式展现进程间的派生关系。

常用命令

pstree -p 显示当前所有进程的进程号和进程id

[root@daidai ~]# pstree -p init(1)─┬─NetworkManager(1407) ├─auditd(1336)───{auditd}(1337) ├─crond(1668) ├─cupsd(1441) ├─dbus-daemon(1393)───{dbus-daemon}(1396) ├─dmeventd(1097)─┬─{dmeventd}(1098) │ └─{dmeventd}(1099) ├─master(1654)─┬─pickup(1780) │ └─qmgr(1664) ├─mingetty(1681) ├─mingetty(1683)

由上可知,所有的进程都是依附在init这个进程下面,且id(init)=1,是由init内核主动调用的第一个进程;

systmd是Rehat7以上版本新的service,作用是加载服务,也是红帽启动的第一个进程

pgrep

通过进程名与其他属性来查找进程,并显示查找到的进程id

常用选项

-l ——显示进程名

参数

进程名称:指定要查找的进程名称,同时也支持类似grep指令中的匹配模式

[root@daidai ~]# pgrep -l sshd1569 sshd1824 sshd

pstree -a
显示进程的所有详细信息,遇到相同的进程名可以压缩展示

[root@daidai ~]# pstree -a init ├─NetworkManager –pid-file=/var/run/NetworkManager/NetworkManager.pid ├─auditd │ └─{auditd} ├─crond ├─cupsd -C /etc/cups/cupsd.conf ├─dbus-daemon –system │ └─{dbus-daemon} ├─dmeventd │ ├─{dmeventd} │ └─{dmeventd} ├─master │ ├─pickup -l -t fifo -u │ └─qmgr -l -t fifo -u ├─mingetty /dev/tty1 ├─mingetty /dev/tty2

如果子进程挂掉或者老是杀不掉子进程,则可用pstree来找到父进程杀掉;

写在最后的话

本人只是一个在linux学习大军中搬砖的小小的一员,技术水平有限,文中难免出现不妥或者错讹,欢迎大家在评论区多多指正,共同进步,不尽感激!

原创不易,转载请务必保留出处http://blog.csdn.net/wsxxdwwzjdy/article/details/78507698

00376193

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。