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