您的位置:首页 > 运维架构 > Linux

linux常用进程管理命令ps top renice

2013-06-27 21:26 429 查看

Linux常用进程管理命令总结1.进程的存放目录

#此目录为存放进程信息的目录,与当前进程PID一一对应[root@kvm ~]# ls /proc/[root@kvm 1]# pwd/proc/1

可以看到当前进程执行的命令是什么,如下[root@kvm 1]# cat cmdline /sbin/init


2.ps命令[root@ kvm 1]# ps -auxWarning: bad syntax, perhaps a bogus '-'? See/usr/share/doc/procps-3.2.7/FAQUSER       PID %CPU%MEM    VSZ   RSS TTY     STAT START   TIME COMMANDroot         1  0.0 0.2   2072   628 ?       Ss   07:23   0:01 init [3]   --------------------------------略-----


如上可以看到有关进程一系列参数,参数解释:

S:睡眠(可中断的睡眠)

s:会话的生成者,父进程

S<:高优先级进程

SN:低优先级进程

R:运行中或者准备就绪的状态

Ssl:表示多线程的进程

Ss+:前台进程组

D:睡眠状态(不可中断的睡眠,与S相反)

T:停止状态的进程

Z:僵尸进程

一个进程如果出现大量的僵死状态的进程 说明软件有BUG需要注意


%CPU:当前进程所占用的CPU时间:当前实际占用的时间

%MEM:内存的比例,RSS与整个内存空间的比率(RSS:MEM)

RSS:实际内存集,此进程真正占用的物理内存空间大小,因此物理内存的某些数据被交换到swap,

它将不再属于RSS,所以需要看VSZ的数值

VSZ:虚拟内存所占据的大小

START:进程的启动时间

COMMAND:由哪个命令启动起来的


如果想查看某进程的子进程以及相关信息可以使用命令: ps –axjf

如下所示:[root@svn ~]# ps -axjf    1  2137 2137  2137 ?           -1 Ss       0  0:00 /usr/sbin/atd    1  2146 2145  2145 ?           -1 Sl      99 10:03 /usr/local/sbin/pdnsd -d    1  2169 2169  2169 tty1      2169 Ss+      0  0:00 /sbin/mingetty tty1    1  2170 2170  2170 tty2      2170 Ss+      0  0:00 /sbin/mingetty tty2    1  2171 2171  2171 tty3      2171 Ss+      0  0:00 /sbin/mingetty tty3    1  2172 2172  2172 tty4      2172 Ss+      0  0:00 /sbin/mingetty tty4    1  2173 2173  2173 tty5      2173 Ss+      0  0:00 /sbin/mingetty tty5    1  2174 2174  2174 tty6      2174 Ss+     0   0:00 /sbin/mingetty tty6    1  2318 2318  2318 ?           -1 Ss       0  0:00 /usr/local/squid-3.2.6/sbin/squid -s 2318  2320 2318  2318 ?           -1 Sl      99 478:55 \_ (squid-1) -s

这样可以看到 子进程与父进程等对应关系都可以一一列出显示


3.top命令

Linux的top命令类似于windows的任务管理器,都是以动态方式实时查看进程的状态,如下所示:[root@svn ~]#toptop - 14:53:30 up 44 days, 19:09,  2 users, load average: 0.02, 0.16, 0.17Tasks:  82 total,   1 running, 81 sleeping,   0 stopped,   0 zombieCpu(s):  0.1%us,  0.0%sy, 0.0%ni, 99.9%id,  0.0%wa,  0.0%hi, 0.0%si,  0.0%stMem:   3985168ktotal,  3960592k used,    24576k free,   330408k buffersSwap:  4192956ktotal,     9360k used, 4183596k free,  1363684k cached  PID USER      PR NI  VIRT  RES SHR S %CPU %MEM    TIME+  COMMAND 2320 nobody    15  0 1915m 1.8g 5352 S  0.3 47.1478:57.02 squid    1 root      15  0 10368  604  556 S 0.0  0.0   0:01.64 init    2 root      RT -5     0    0   0 S  0.0  0.0  0:00.08 migration/0    3 root      34 19     0    0   0 S  0.0  0.0  0:00.05 ksoftirqd/0    4 root      RT -5     0    0   0 S  0.0  0.0  0:00.00 watchdog/0  

下面来一一解释相关参数top - 14:53:30 up 44 days, 19:09,  2 users, load average: 0.02, 0.16, 0.17

#up 44 days :启动时长

#load average:平均负载,指CPU队列当中等待执行的进程个数的平均值,(CPU可能只有一颗,在某时刻运行的进程可能有多个,

如果有多个进程都需要运行的话需要等待)0.02,0.16, 0.17 分别表示当前1分钟的负载值、5分钟负载值、15分钟负载值,值越少表示当前进程等待处理的时间越短或CPU性能越好,总之,值越小越优,当单颗cpu的平均值超过3的时候,意味着CPU的瓶颈太高


Tasks:  82 total,   1 running, 81 sleeping,   0 stopped,   0 zombie

#汇总信息


Cpu(s):  0.1%us,  0.0%sy, 0.0%ni, 99.9%id,  0.0%wa,  0.0%hi, 0.0%si,  0.0%st

#0.1%us:用户占用空间

#0.0%sy:系统(内核)占用率

#0.0%ni:调整nice优先级之后的进程占用率

#99.9%id:CPU空闲比例

#0.0%wa:等待IO(磁盘加载数据)完成的的占用率

#0.0%hi:

#0.0%si:

#0.0%st:虚拟机占用的时间比例Mem:   3985168ktotal,  3960592k used,    24576k free,   330408k buffers

#MEM:内存信息

#3985168k total : 物理内存总大小

# 3960592k used:使用了多少

#24576k free:剩余了多少

#330408k buffers :有多少用于缓冲


Swap:  4192956ktotal,     9360k used,  4183596k free,  1363684k cached

#1363684k cached:有多少是缓存,缓存信息是mem


 PID USER      PR NI  VIRT  RES SHR S %CPU %MEM    TIME+  COMMAND 2320 nobody    15  0 1915m 1.8g 5352 S  0.3 47.1478:57.02 squid    1 root      15  0 10368  604  556 S 0.0  0.0   0:01.64 init    2 root      RT -5     0    0   0 S  0.0  0.0  0:00.08 migration/0    3 root      34 19     0    0   0 S  0.0  0.0  0:00.05 ksoftirqd/0    4 root      RT -5     0    0   0 S  0.0  0.0  0:00.00 watchdog/0  

#RP:代表实时优先级

#NI: nice值

#VIRT:虚拟内存集

#RES: 真正占据物理空间

#SHR:与其他进程共享的内存空间大小

#S:状态

#%CPU:占用的CPU

#%MEM:占用的内存

#TIME+:占据CPU时间的累积时间长


4.调整进程nice值

Linux进程的nice数值范围:

从负20 – 19 (-20 -- 19),nice值越小优先级越高

查看nice值:[root@svn ~]# top----------中间略-------------  PID USER      PR NI VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND    1 root      15  0 10368 604  556 S  0.0 0.0   0:01.64 init    2 root      RT -5    0   0    0 S  0.0 0.0   0:00.08 migration/0      3 root      34 19    0   0    0 S  0.0 0.0   0:00.00 ksoftirqd/0    4 root      RT -5    0    0    0 S 0.0  0.0   0:00.00 watchdog/0

其中,NI为nice值,上面有提到过,不做过多解释

下面来更改进程httpd的nice值:


(1)查看进程号:[root@mode ~]# ps -ef | grep httproot      3332     1  008:02 ?        00:00:00 /usr/sbin/httpdapache    3334  3332  008:02 ?        00:00:00 /usr/sbin/httpdapache    3335  3332  008:02 ?        00:00:00 /usr/sbin/httpd

(2)记录进程号对其更改nice值:[root@mode ~]# renice -1 33323332: old priority 0, new priority -1

可以看到 old prioity是之前的nice值,为0 ,newpriority 为当前修改后的nice值 为-1


阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: