新博客http://www.cnblogs.com/zhjh256 欢迎访问
分类:
2007-12-25 22:24:05
管理系统性能
Solaris中跟踪的系统活动包括:
·CPU使用率;
·缓冲区使用情况;
·I/O活动;
·终端设备活动;
·系统调用活动;
·上下文切换;
·文件访问;
·队列活动;
·内核表;
·进程间通信;
·分页;
·可用内存和交换空间;
·内核内存分配,KMA;
监控工具:
·cpustat和cputrack:使用CPU性能计数器监视系统和进程的性能;
·netstat和nfsstat:监视有关网络性能的信息;
·ps和prstat:显示有关活动进程的信息;
·sar和sadc:报告系统活动数据;
·Sun Enterprise SyMON:收集有关SUN的企业级系统的系统活动数据;
·swap:显示系统中的可用交换空间的信息;
·vmstat和iostat:汇总系统活动数据,如VM统计信息,IO信息,CPU活动;
·kstat和mpstat:检查系统中可用内核的统计信息,并报告与命令行中指定条件匹配的统计信息;
进程管理
管理系统进程
1.任务
·列出进程;
·显示进程有关信息;
·控制进程;
·中止进程;
2.进程管理命令
·psrset:将特定进程组绑定到处理器集而非一个处理器;
·nice:更改分时进程的优先级;
·priocntl:为优先级类分配进程并管理进程优先级;
·dispadmin:列出缺省进程调度策略;
·pargs, preap:帮助进程调试;
·pkill:通过名称/其他属性查找进程并发送信号,终止进程;
·ps, pgrep, prstat, pkill:检查系统中活动进程的状态,并显示有关这些进程活动状态的详细信息;
3.控制进程
/proc目录也称为进程文件系统(Process File System, PROCFS),使用进程命令可以列出/proc目录下所列进程的详细信息。进程控制命令/proc如下:
pcred 显示进程凭证信息;
pfiles 为进程中打开的文件报告fstat和fcntl信息;
pflags 列出/proc跟踪标志,暂挂信号,保留信号以及其他状态信息;
pldd 列出链接至进程中的动态库;
pmap 列出每个进程中的地址空间图;
psig 列出每个进程的信号操作和处理程序;
prun 启动每个进程;
pstack 为每个进程中的每个lwp列显示十六进制符号栈跟踪;
pstop 停止每个进程;
ptime 使用微状态纪录进程的时间;
ptree 显示进程数;
pwait 在进程中之后显示状态信息;
pwdx 显示进程的当前工作目录;
进程工具与ps命令类似,区别是输出更加详细,允许对进程进行控制。
4.常用命令
·列出所有进程:ps [-efc];
·显示特定进程的信息:
# pgrep process --获得进程号,process为进程名;
# /usr/bin/pcommand pid --显示进程信息,pcommand为要运行的进程控制命令/proc;
·控制进程:
# pgrep process --获得进程号,process为进程名;
# /usr/bin/pcommand pid --控制进程,pcommand为要运行的进程控制命令/proc;
# ps -ef | grep pid --验证进程状态;
·终止进程(pkill):
# pgrep process --获得进程号,process为进程名;
$ pkill [signal] pid --终止进程;
$ pgrep pid --验证进程是否终止;
·终止进程(kill):
$ ps -fu user --获得进程号,user为用户名;
$ kill [signal-number] pid --终止进程;
$ pgrep pid --验证进程是否终止;
·显示传递给进程的参数:
# pargs ‘pgrep process‘ --显示进程参数;
$ pargs -e 6763 --显示与进程关联的环境变量;
5.调试进程
pargs命令可以显示与实时进程或核心转出文件相关的参数和环境变量,preap可以删除不再存在的进程(僵停进程),这些进程通常无害,但是太多会占用资源。
使用pargs命令可以显示即使用ps命令也无法解决的问题,显示传递给进程的所有参数以及环境变量。
管理进程类信息
1.任务
·显示有关进程类的基本信息:使用priocntl –l显示进程调度类和优先级范围;
·指定进程的全局优先级:使用ps –ecl可以显示进程的全局优先级;
·指定进程优先级:使用priocntl - e –c已指定的优先级启动进程;
·更改分时进程的调度参数:使用priocntl -s –m可以更改分时进程的调度参数;
·更改进程的类:使用priocntl -s –c可以更改进程的类;
·更改进程优先级:使用/usr/bin/nice可以更改进程的优先级;
2.进程调度类
系统中可配置的进程调度类:
·公平共享(FFS);·固定(FX);·系统(SYS);·交互(IA);·实时(RT)·分时(TS);
分时的用户优先级范围:
·用户提供的优先级范围从-60─ +60;
·进程的优先级继承自父进程;
·系统在分时分发参数表中查找用户模式优先级,然后添加任何用户提供的nice或priocntl并确保在0-59之间,创建全局优先级。
3.常用命令
·显示进程调度类和优先级范围:$ priocntl –l;
·显示进程的全局优先级:$ ps –ecl,输出中的PRI列。
·指定进程优先级:
# priocntl -e -c class -m user-limit -p pri command-name --以指定的优先级启动进程;
-e:执行该命令;
-c:指定要在其中运行进程的类,有效值包括: TS,RT,FSS,TX,IA;
-m user-limit:使用-P选项时,可以指定将优先级提高或降低的最大值;
-p pri command-name:为实时线程指定在RT类中的相对优先级,对于分时进程,制定用户提供的优先级,范围从-60到60。
# ps -ecl | grep command-name --验证进程状态;
·更改分时进程的调度参数:
# priocntl -s -m user-limit [-p user-priority] -i idtype idlist
—更改正在运行的分时进程的调度参数;
-s:允许设置用户优先级范围的上限并更改当前优先级;
-m user-limit:使用-P选项时,可以指定将优先级提高或降低的最大值;
-p user-priority:允许指定优先级;
-i idtype idlist:结合使用idtype idlist标识一个/多个进程,idtype制定id的类型,idlist可以标识进程id或用户id的列表;
# ps -ecl | grep idlist --验证;
·更改进程的类
# priocntl -s -c class -i idtype idlist --更改进程的类;
-s:设置用户优先级范围的上限并更改当前优先级;
-c:为要更改的进程指定类TS或RT;
-i idtype idlist:结合使用idtype idlist标识一个/多个进程,idtype制定id的类型,idlist可以标识进程id或用户id的列表;
# ps -ecl | grep idlist --验证结果;
·使用nice更改优先级:$ /usr/bin/nice -5 command-name
常见的小问题
·查找用户所有的多个相同作业。可能由于某个脚本启动了多个后台作业;
·查找积累了大量CPU时间的进程,通过ps的输出中的TIME字段可确定;
·查找运行优先级过高的进程。使用ps –c检查CLS字段。或者查找NICE很大的分时进程。
·查找超越进程。可以查看进程启动时的时间并监视一会儿CPU时间累计(TIME)即可确定。