Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1185446
  • 博文数量: 398
  • 博客积分: 10110
  • 博客等级: 上将
  • 技术积分: 4055
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-23 20:01
个人简介

新博客http://www.cnblogs.com/zhjh256 欢迎访问

文章分类

全部博文(398)

文章存档

2012年(1)

2011年(41)

2010年(16)

2009年(98)

2008年(142)

2007年(100)

我的朋友

分类:

2007-12-25 22:24:05

管理系统性能

       Solaris中跟踪的系统活动包括:

       ·CPU使用率;

       ·缓冲区使用情况;

       ·I/O活动;

       ·终端设备活动;

       ·系统调用活动;

       ·上下文切换;

·文件访问;

·队列活动;

·内核表;

·进程间通信;

·分页;

·可用内存和交换空间;

·内核内存分配,KMA

监控工具:

·cpustatcputrack:使用CPU性能计数器监视系统和进程的性能;

·netstatnfsstat:监视有关网络性能的信息;

·psprstat:显示有关活动进程的信息;

·sarsadc:报告系统活动数据;

·Sun Enterprise SyMON:收集有关SUN的企业级系统的系统活动数据;

·swap:显示系统中的可用交换空间的信息;

·vmstatiostat:汇总系统活动数据,如VM统计信息,IO信息,CPU活动;

·kstatmpstat:检查系统中可用内核的统计信息,并报告与命令行中指定条件匹配的统计信息;

进程管理

管理系统进程

1.任务

       ·列出进程;

       ·显示进程有关信息;

       ·控制进程;

       ·中止进程;

2.进程管理命令

       ·psrset:将特定进程组绑定到处理器集而非一个处理器;

       ·nice:更改分时进程的优先级;

       ·priocntl:为优先级类分配进程并管理进程优先级;

       ·dispadmin:列出缺省进程调度策略;

       ·pargs, preap:帮助进程调试;

       ·pkill:通过名称/其他属性查找进程并发送信号,终止进程;

       ·ps, pgrep, prstat, pkill:检查系统中活动进程的状态,并显示有关这些进程活动状态的详细信息;

3.控制进程

       /proc目录也称为进程文件系统(Process File System, PROCFS),使用进程命令可以列出/proc目录下所列进程的详细信息。进程控制命令/proc如下:

pcred      显示进程凭证信息;

pfiles       为进程中打开的文件报告fstatfcntl信息;

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

       ·进程的优先级继承自父进程;

       ·系统在分时分发参数表中查找用户模式优先级,然后添加任何用户提供的nicepriocntl并确保在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类中的相对优先级,对于分时进程,制定用户提供的优先级,范围从-6060

# 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:为要更改的进程指定类TSRT

       -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)即可确定。

 

阅读(1541) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~