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