谈谈Solaris系统性能上的维护( 二 )


----
runq-sz正常情况下它应小于2 。如果此值连续大于2表明系统可能处于CPU-bound状态 。如果%runocc大于90,并且runq-sz大于2,表明CPU处于超负荷状态,系统响应速率下降 。

---- 二、 系统进程监视
---- 系统中运行的进程都不同程度的消耗系统资源,通过监视这些进程,找到对系统资源影响较大的进程,就能够采取相应措施改善系统性能 。
----
在Solaris系统中,可以通过ps命令采集进程数据,系统中有2条ps命令(/usr/bin/ps、/usr/ucb/ps),建议两条命令结合使用,ps命令能够用来监视系统中活动进程的执行状态,它能汇报下列信息:

用户名称;

进程的ID(PID);

CPU使用时间;

内存使用情况;

当前进程状态;

进程的优先级;

进程类型 。
----
通过观察分析ps命令输出结果,如果发现异常情况,如某个进程占用CPU/MEM过多、某个用户产生很多进程等等,此时的问题不是用户的问题,而是过重的CPU
load阻碍用户的访问速率 。这时候可以对那些显尔易见的问题采取相应补救措施:
如果发现某个用户产生很多进程,占用过多的系统资源,可以kill其中的消耗资源较多的进程,释放系统资源;

如果发现某个进程积聚大量时间,这可能指示进程处于无限循环状态或进程出现错误 。在咨询这个进程的用户后,可以终止此进程 。

如果发现某个不很重要的进程消耗大量CPU,可以使用nice/priocntl命令改变此进程的优先级 。使它在较低的优先级中运行 。
---- 除采取上述措施外,还应该分析其他的问题,通常关心的是那些runnable、blocked for disk I/O、or paging
jobs,而不是那些sleeping、stoped进程,因为这些进程并不影响整个系统的性能 。如果必要的进程占用内存很大,表明系统可能需要增加内存 。
---- 三、 CPU与I/O监控
---- 从PS得到的数据是非常详细的,通常不仅需要知道每个进程的状态,而且还需知道整个系统的状态,有许多方法可以得到整个系统的状态比如:
---- 1、 df命令报告磁盘的使用情况,显示mount or unmount文件系统磁盘空间使用情况;
---- 2、 iostat and vmstat命令显示系统资源状况;
----
iostat命令汇报磁盘I/O状态、进程流通量、队列长度、服务时间等,vmstat命令显示内存使用情况、CPU负荷、paging、系统调用等等 。
---- 3、 sar命令收集、报告系统的活动情况 。
---- 四、 内存统计管理
----
在系统运行的不同时期,可用内存能否满足程序运行的需求是影响系统性能的一个重要因素 。如果可用内存不能满足程序运行的需要,那么系统就重复从物理内存中拷贝一个或多个页面到磁盘,以及从磁盘拷贝页面到内存 。在从物理内存中拷贝一个或多个页面到磁盘后,系统为其它任务重新使用这些内存,这就是通常所说的“paging” 。一旦系统启动paging,整个系统的性能可能会急剧下降直到系统内存又满足程序运行的需要 。总之,当可用内存不能满足系统需要时会影响系统性能;当可用内存满足系统需要时则不会影响系统,因此,应该经常监视有关内存使用数据并进行分析,预测可能发生的问题,扩展内存或调整内存配置参数使系统稳定可靠运行 。

---- 通常,系统采取两种方式来满足所有进程对内存的需求:paging and
swapping.swapping移动整个进程到磁盘,从而达到回收内存的目的 。在下一次系统运行该进程时,它必须从磁盘swap区中拷贝整个进程的内存映象到内存中去 。Paging移动进程的部分页面到磁盘来达到回收内存的目的,进程的大多数页面仍保留在内存中 。

---- 五、 系统信息的自动采集

推荐阅读