AIX中的进程管理

1、AIX中的进程
(1)后台进程
后台进程运行时,用户不必等待当前后台进程的结束,即可以运行下一个进程。
后台进程的运行方式:
# command &
 
(2)提高进程优先等级
-- nice:可增加 nice 的值,降低进程的优先级别。
# nice [-lncrement | -n lncrement]
renice:可再增加 nice 的值,以再降低进程的优先级别。
 
(3)终止进程
--前台进程
ctrl-c:终止当前的前台进程
kill:终止指定的前台进程
--后台进程
kill:终止指定的后台进程
 
(4)kill 的用法
#kill [ -Signalnumber | -Signalname ] Processes
常用:
#kill ProcessesID
# kill -9  ProcessesID
ProcessesID 为进程号,可以用 ps命令获取
 
(5)运行长进程
nohup:使用户的后台进程在用户退出系统时仍然运行,如果无指定 nohup 的输出信息会将保存在 nohup.out 中
# nohup command &
# nohup ls -R  / &
 
2、ps指令
常用参数
-A 表示显示系统中所有的进程,包括进程组组长(process group leader)和核心进程
-a 表示显示系统中所有的进程,除了进程组组长和没有相关终端的进程
-d 表示显示系统中所有的进程,除了进程组组长,但包括核心进程
-e 表示显示系统中所有的进程,除了核心进程
-f 表示 显示进程的详细信息
-G grouplist 显示grouplist列表中包含的所有进程组中的进程
-g 同-G grouplist
-k 显示核心进程
-l 以长格式显示进程信息,输出的内容比-f参数输出的内容多
-m 显示进程中的线程信息
-o format 按format 指定的格式显示进程信息
-P Plist显示由Plist指定进程号的进程信息
-t TList 显示由Tlist指定终端上的进程信息
-U Ulist 显示由Ulist指定用户名或用户标识号的进程信息
-u Ulist 同-U Ulist
 
 
PS常用指令
#ps   -elf
 
#ps   aux
 
# ps aux|head -1; ps aux|sort -nr +2 |head -10
 显示10个消耗cpu最多的进程
# ps -eakl |head -1; ps -eakl | sort -nr +5 |head -10
按顺序显示系统中受罚的进程
# ps vx |head -1; ps vx |sort +6 -nr | head -10
按实际内存使用的多少顺序显示系统中的前十个进程
# ps vx |head -1; ps vx |sort -nr +4 | head -10
按换入页面的多少顺序显示系统中的前十个进程
 
 
 
3、topas命令监控进程
  Topas命令用于监控各种系统资源, 如cpu的使用情况, cpu事件和队列, 内存和换页空间的使用, 磁盘性能, 网络性能以及NFS统计等. 
它还会报告指派给不同WLM类的进程对系统资源的消耗情况. 同时可以报告系统中最热门的进程和工作量管理器(WLM的热门类).
Topas命令将热门进程定义为那些使用大量cpu时间的进程. Topas命令没有作日志的选项, 所有信息都是实时的.
 

3.1 topas参数

Topas命令可以监控系统活动――memory,I/O,paging space,cpu,process。
此命令包含在perfagent.tools文件集里面。
命令使用方法:
topas [ -d number_of_monitored_hot_disks ] [ -h ] 
[ -i monitoring_interval_in_seconds ] 
[ -n number_of_monitored_hot_network_interfaces]
[ -p number_of_monitored_hot_processes ] 
[ -w number_of_monitored_hot_WLMclasses ] 
[ -c number_of_monitored_hot_CPUs ] 
[ -P | -W ]
 
参数:
-d:指定要监控的磁盘数。如果屏幕显示的区域足够大的话,这也是磁盘可显示的最大数。当这个数值超出实际安装的磁盘数,仅仅监控并显示安装磁盘的信息。这个参数缺省值为2,如果这个值设为0,将没有磁盘被监控。
-h:显示帮助信息。
-i:设置监控时间的间隔(秒),默认为2秒。
-n:设置被监控的网络接口数。这也是在屏幕上显示的最大网络接口数,当这个值超出了实际安装的网络接口数,仅仅监控并显示安装的网络接口信息。参数缺省值为2,如果这个值设为0,将没有网络信息被监控。
-p:指定被监控的进程数。这也是在屏幕上显示的最大进程数。缺省值为20,如果这个值为0,没见进程信息被监控。得到的这些进程信息是topas的主要开销。如果进程信息不需要,通常使用这个参数指定那些不想要的进程信息。
-w:指明被监控的WLM类的值。这也是在屏幕上显示的最大WLM值,当这个值超出了实际安装的WLM数,仅仅显示那些安装的WLM类的信息,缺省值为2,如果这个值为0,将没有信息显示。
-c:指明被监控的CPU数。这也是在屏幕上显示的最大CPU值,当这个值超出了实际安装的CPU数,仅仅显示那些安装的CPU的信息,缺省值为2,如果这个值为0,将没有信息显示。
-P:显示整个全屏进程显示。显示一系列最繁忙的进程,类似于默认显示的一部分,每个进程仅仅显示几列,可以通过任何列排序。
-W:显示全屏WLM(负载管理器)类。顶部显示一系列WLM类,类似于WLM类的一部分显示。
3.2 topas子命令
一些子命令:
a 这个键显示所有被监控的(CPU,network,disk,WLM,process)不同部分。
c 这个键在累积报告和最忙的CPU之间进行切换。
d 这个键在最忙的磁盘和系统总的磁盘活动之间进行切换。
h 显示帮助信息。
n 这个键在最忙的接口和系统总的网络活动之间进行切换。
w 这个键在WLM类的开关之间切换。
p 这个键进程的开关之间切换。
P 这个键用全屏进程显示替换默认的显示。
W 这个键用全屏WLM类显示替换默认显示。
f 移动光标到一个WLM类上,这个键可以在WLM屏幕底端显示一系列进程情况。
q 退出程序。
r 更新显示。
 
 
3.3 EVENTs部分
下是各个部分表示的含义:
Cswitch:在监控期间每秒钟内容转换的次数;
Syscall:在监控期间每秒钟运行系统呼叫的总次数;
Reads:在监控期间每秒钟运行读系统呼叫的次数;
Writes:在监控期间每秒钟运行写系统呼叫的次数;
Forks:在监控期间每秒钟运行派生系统呼叫的次数;
Execs:在监控期间每秒钟运行执行系统呼叫的次数;
Runqueue:等待处理器空闲以便运行的线程平均数;
Waitqueue:等待分页完成的线程平均数;
Readch:在监控期间通过读系统呼叫每秒钟读出的字节数;
Writech:在监控期间通过写系统呼叫每秒钟写入的字节数;
Rawin:在监控期间通过TTYs每秒钟读入的裸字节数;
Ttyout:在监控期间每秒钟写入TTYs的字节数;
Igets:在监控期间每秒钟到节点查找例行程序的呼叫数;
Namei:在监控期间每秒钟路径查找例行程序的呼叫数;
Dirblk:在监控期间通过目录搜索例行程序每秒钟扫描到的目录块数;
 
3.4 PAGING部分
PAGING部分显示的是分页每秒钟次数的统计:
Faults:在监控期间每秒钟发生的分页错误总数;
Steals:在监控期间被虚拟内存管理器每秒钟偷走的物理内存4k的帧;
PgspIn:在监控期间每秒钟从分页空间中读取的4k分页数;
PgspOut:在监控期间每秒钟写入分页空间的4k分页数;
PageIn:在监控期间每秒钟读取的4k分页数,这包括从文件系统读操作相关的分页活动,从这个值减去PgspIn的值就是每秒钟从文件系统读操作相关的分页活动数;
PageOut:在监控期间每秒钟写入的4k分页数,这包括向文件系统写操作相关的分页活动,从这个值减去PgspOut的值就是每秒钟向文件系统写操作相关的分页活动数;
Sios:在监控期间通过虚拟内存管理器得到的I/O请求数;
3.5 MEMORY部分
Momory部分显示的是实际内存和在使用中的内存:
Real,MB:以M为单位的实际内存;
%Comp:当前分配给计算分页片断的内存占实际内存的百分比。计算分页片断由分页空间产生。
%Nocomp:当前分配非计算分页片断的内存占实际内存的百分比。非计算分页片断包括那些文件空间,数据文件、可执行文件、或者共享库文件。
%Client:当前分配给用来缓冲远程挂载文件的内存占实际内存的百分比。
 

 

3.6 PAING SPACE部分
PAING SPACE显示分页空间的大小和使用率:
Size,MB:系统里所有分页空间的大小,以M为单位;
%Used:当前使用的分页空间占总空间的百分比;
%Free:当前空闲的分页空间占总空间的百分比。
 
3.7 CPU工具:
User%:显示运行的用户程序所占用的CPU百分比;
Kern%:显示运行的内核程序所占用的CPU百分比;
Wait%:显示等待IO操作所占用的CPU百分比;
Idel%:显示CPU空闲的百分比。
 
3.8 网络接口:
Interf:网络接口的名称;
KBPS:在监控期间每秒钟通过的以M为单位的总流量,这部分包括每秒钟接收和发送的总和。
I-Pack:在监控期间每秒钟接收到的数据包数;
O-Pack:在监控期间每秒钟发送的数据包数;
KB-In:在监控期间每秒钟接收到的字节数(以K为单位);
KB-Out:在监控期间每秒钟发送的字节数(以K为单位)。
 
3.9 物理磁盘:
Disk:物理磁盘的名称;
Busy%:指明物理磁盘在活动状态的时间百分比;
KBPS:在监控期间每秒钟读写的字节数(以K为单位);
TPS:每秒钟物理磁盘的数据传输量。一次传输指的是一次I/O请求;
KB-Read:每秒钟从物理磁盘读出的K字节数;
KB-Write:每秒钟向物理磁盘写入的K字节数。
 
3.10 WLM(负载管理)类:
%CPU Utilization:CPU的平均利用率;
%Mem Utilization:内存的平均利用率;
%Blk I/O:块I/O的平均利用率;
 
3.11进程:
NAME:可执行程序的名称;
Process ID:进程的ID号;
%CPU Utilization:进程的CPU平均使用率,这个值指的是进程在生命周期中的平均使用率;
Paging Space Used:分配给进程的分页空间大小;
Process Owner:拥有这个进程的用户名;
Workload Management(WLM)Class:进程属于哪个WLM class。
 
 
4、pTools—进程监控的一组工具
Ptools是Aix5.2引进的system v unix提供的一组工具, 用于查看进程相关的信息.
包括命令procwdx, procfiles, procflags, proccred, procmap, procldd, procsid, procstack, procstop, procrun, procwait, proctree.
 
 

4.1 procwdx

Procwdx打印进程的当前工作目录
# ps vx |head -1; ps vx |sort +3 -nr | head -10
     PID    TTY STAT  TIME PGIN  SIZE   RSS   LIM  TSIZ   TRS %CPU %MEM COMMAND
   53274      - A    137617:51    0    40    36    xx     0     0 12.8  0.0 wait
    8196      - A    136562:05    0    40    36    xx     0     0 12.7  0.0 wait
   49176      - A    128993:26    0    40    36    xx     0     0 12.0  0.0 wait
   57372      - A    128264:57    0    40    36    xx     0     0 11.9  0.0 wait
  303258      - A    533:49  412  1364   256    xx    42     0  0.0  0.0 dtgreet
  483564      - A    129:40 4401   804   548    xx    32    24  0.0  0.0 /usr/bi
  368856      - A    82:35  562   872    20    xx    40     0  0.0  0.0 /usr/sb
       0      - A    59:07    7    52    44    xx     0     0  0.0  0.0 swapper
   16392      - A    58:59    0    60    32    xx     0     0  0.0  0.0 lrud
  131254      - A    52:22 1719   512   284    xx     3     4  0.0  0.0 /usr/sb
#
#
# procwdx 131254
131254: /
 

4.2 procfiles

报告关于进程打开的所有文件描述符的信息
# ps -ef |head -1; ps -ef |grep ora|head -5
     UID     PID    PPID   C    STIME    TTY  TIME CMD
  oracle  299146       1   0   Apr 10      - 13:39 ora_pmon_arpdb
  oracle  323600       1   0   Apr 10      - 10:31 ora_smon_arpdb
  oracle  442460       1   0   Apr 10      -  9:38 ora_lgwr_arpdb
  oracle  462924       1   0   Apr 10      - 15:14 ora_dbw0_arpdb
  oracle  471062       1   0   Apr 10      -  1:44 ora_mman_arpdb
#
# procfiles 299146
299146 : ora_pmon_arpdb
  Current rlimit: 65534 file descriptors
   0: S_IFCHR mode:00 dev:10,4 ino:286 uid:202 gid:201 rdev:2,2
      O_RDONLY
   1: S_IFCHR mode:00 dev:10,4 ino:286 uid:202 gid:201 rdev:2,2
      O_RDONLY
   2: S_IFCHR mode:00 dev:10,4 ino:286 uid:202 gid:201 rdev:2,2
      O_RDONLY
   3: S_IFCHR mode:00 dev:10,4 ino:286 uid:202 gid:201 rdev:2,2
      O_RDONLY
   4: S_IFCHR mode:00 dev:10,4 ino:286 uid:202 gid:201 rdev:2,2
      O_RDONLY
   5: S_IFREG mode:0200 dev:10,12 ino:191040 uid:202 gid:201 rdev:0,0
      O_WRONLY size:550
   6: S_IFREG mode:0200 dev:10,12 ino:190026 uid:202 gid:201 rdev:0,0
      O_WRONLY | O_APPEND size:8944487
   7: S_IFREG mode:0660 dev:10,12 ino:76412 uid:202 gid:201 rdev:0,0
      O_RDWR size:0
   8: S_IFREG mode:0200 dev:10,12 ino:190026 uid:202 gid:201 rdev:0,0
      O_WRONLY | O_APPEND size:8944487
   9: S_IFREG mode:0775 dev:10,12 ino:76408 uid:202 gid:201 rdev:0,0
      O_RDWR | O_SYNC size:1552
   10: S_IFREG mode:0640 dev:10,12 ino:191039 uid:202 gid:201 rdev:0,0
      O_RDWR | O_APPEND size:1148
   11: S_IFREG mode:0555 dev:10,12 ino:143871 uid:202 gid:201 rdev:0,0
      O_RDONLY size:842240
   12: S_IFREG mode:0775 dev:10,12 ino:76408 uid:202 gid:201 rdev:0,0
      O_RDWR | O_SYNC size:1552
   15: S_IFREG mode:0775 dev:10,12 ino:76409 uid:202 gid:201 rdev:0,0
      O_RDWR size:24
   16: S_IFREG mode:0555 dev:10,12 ino:143871 uid:202 gid:201 rdev:0,0
      O_RDONLY size:842240
 

4.3 procflags

打印 /proc 跟踪标志、暂挂和挂起信号和指定进程中每个线程的其它 /proc 状态信息。
 

4.4 proccred

打印进程的凭证(有效的、真实的、已保存的用户标识和组标识)。
 

4.5 procmap

打印进程的地址空间映射。
 

4.6 procldd

列出进程装入的动态库,包括使用 dlopen() 显式连接的共享对象。
 

4.7 procsig

列出进程定义的信号操作。
 

4.8 procstack

打印进程中的所有线程的十六进制地址和符号名称。
 

4.9 procstop

停止 PR_REQUESTED 事件的进程。
 

4.10 procrun

启动在 PR_REQUESTED 事件中停止的进程。
 

4.11 procwait

等待全部指定的进程终止。
 
 

4.12 proctree.

打印包含指定进程标识或用户的进程树。
# ps -ef |head -1; ps -ef |grep ora| sort -10
     UID     PID    PPID   C    STIME    TTY  TIME CMD
    root 1228964  893046   0 15:33:56  pts/0  0:00 grep ora
  oracle  299146       1   0   Apr 10      - 13:39 ora_pmon_arpdb
  oracle  323600       1   0   Apr 10      - 10:31 ora_smon_arpdb
  oracle  442460       1   0   Apr 10      -  9:38 ora_lgwr_arpdb
  oracle  462924       1   0   Apr 10      - 15:14 ora_dbw0_arpdb
  oracle  471062       1   0   Apr 10      -  1:44 ora_mman_arpdb
  oracle  479474       1   0   Apr 10      -  1:47 ora_psp0_arpdb
  oracle  487432       1   0   Apr 10      - 26:34 ora_mmnl_arpdb
  oracle  491762       1   0   Apr 10      - 10:51 ora_ckpt_arpdb
  oracle  495864       1   0   Apr 10      -  2:00 ora_qmnc_arpdb
  oracle  786640       1   0   Apr 10      -  0:00 ora_q001_arpdb
  oracle  884988       1   0 11:46:03      -  0:00 ora_q004_arpdb
  oracle  901310       1   0   Mar 12      -  3:18 /oracle/product/10.2.0/bin/tnslsnr LISTENER -inherit
  oracle 1155298       1   0   Apr 10      -  3:22 ora_mmon_arpdb
  oracle 1175776       1   0   Apr 10      - 20:09 ora_cjq0_arpdb
  oracle 1179830       1   0   Apr 10      -  0:09 ora_s000_arpdb
  oracle 1224930       1   0 02:24:35      -  0:00 ora_q002_arpdb
  oracle 1232974       1   0   Apr 10      -  0:01 ora_reco_arpdb
  oracle 1241260       1   0   Apr 10      -  0:06 ora_d000_arpdb
#
#
# proctree 901310
901310    /oracle/product/10.2.0/bin/tnslsnr LISTENER -inherit
# proctree 1241260
1241260    ora_d000_arpdb
 
 
 
 
上一篇:js-简易的飞机大战补缺版(2)


下一篇:如何在 Linux 中查看进程占用的端口号【转】