利用Linux系统命令行性能检测工具


    上面引用了IBM红皮书介绍的关于Linux性能需要考虑的内容。今天继续截选和修改文档中关于检测部分的介绍,但这部分不是很详细,今后有时间我会再补充一些参考资料。

    ※注:下面附图的命令输出信息,以红旗DC Server 5.0 for x86 Sp1为基础平台,可能在不同的操作系统或核心版本有较大区别,对比时请留意。

    一、uptime

    Uptime命令的显示结果包括服务器已经运行了多长时间,有多少登陆用户和对服务器性能的总体评估(load average)。load average值分别记录了上个1分钟,5分钟和15分钟间隔的负载情况,load average不是一个百分比,而是在队列中等待执行的进程的数量。如果进程要求CPU时间被阻塞(意味着CPU没有时间处理它),load average值将增加。另一方面,如果每个进程都可以立刻得到访问CPU的时间,这个值将减少。

    UP kernel下的load average的最佳值是1,这说明每个进程都可以立刻被CPU处理,当然,更低不会有问题,只说明浪费了一部分的资源。但在不同的系统间这个值也是不同的,例如一个单CPU的工作站,load average为1或者2都是可以接受的,而在一个多CPU的系统中这个值应除以物理CPU的个数,假设CPU个数为4,而load average为8或者10,那结果也是在2多点而已。   

利用Linux系统命令行性能检测工具

    你可以使用uptime判断一个性能问题是出现在服务器上还是网络上。例如,如果一个网络应用运行性能不理想,运行uptime检查系统负载是否比较高,如果不是这个问题更可能出现在你的网络上。

    二、top

    Top命令显示了实际CPU使用情况,默认情况下,它显示了服务器上占用CPU的任务信息并且每5秒钟刷新一次。你可以通过多种方式分类它们,包括PID、时间和内存使用情况。

利用Linux系统命令行性能检测工具

    下面是输出值的介绍:

    引用
    PID:进程标识
    USER;进程所有者的用户名
    PRI:进程的优先级
    NI:nice级别
    SIZE:进程占用的内存数量(代码+数据+堆栈)
    RSS;进程使用的物理内存数量
    SHARE;该进程和其他进程共享内存的数量
    STAT:进程的状态:S=休眠状态,R=运行状态,T=停止状态,D=中断休眠状态,Z=僵尸状态
    %CPU:共享的CPU使用
    %MEM;共享的物理内存
    TIME:进程占用CPU的时间
    COMMAND:启动任务的命令行(包括参数)


    进程的优先级和nice级别
    进程优先级是一个决定进程被CPU执行优先顺序的参数,内核会根据需要调整这个值。Nice值是一个对优先权的限制。进程优先级的值不能低于nice值。(nice值越低优先级越高)
    进程优先级是无法去手动改变的,只有通过改变nice值去间接的调整进程优先级。如果一个进程运行的太慢了,www.britepic.org你可以通过指定一个较低的nice值去为它分配更多的CPU资源。当然,这意味着其他的一些进程将被分配更少的CPU资源,运行更慢一些。Linux支持nice值的范围是19(低优先级)到-20(高优先级),默认的值是0。如果需要改变一个进程的nice值为负数(高优先级),必须使用su命令登陆到root用户。下面是一些调整nice值的命令示例,
    以nice值-5开始程序xyz

    #nice –n -5 xyz

    改变已经运行的程序的nice值

    #renice level pid

    将pid为2500的进程的nice值改为10

    #renice 10 2500

    僵尸进程
    当一个进程被结束,在它结束之前通常需要用一些时间去完成所有的任务(比如关闭打开的文件),在一个很短的时间里,这个进程的状态为僵尸状态。在进程完成所有关闭任务之后,会向父进程提交它关闭的信息。有些情况下,一个僵尸进程不能关闭它自己,这时这个进程状态就为z(zombie)。不能使用kill命令杀死僵尸进程,因为它已经标志为“dead”。如果你无法摆脱一个僵尸进程,你可以杀死它的父进程,这个僵尸进程也就消失了。然而,如果父进程是init进程,你不能杀死init进程,因为init是一个重要的系统进程,这种情况下你只能通过一次重新启动服务器来摆脱僵尸进程。也必须分析应用为什么会导致僵死?

  • 1
  • 2
  • 3
  • 4
  • 下一页

相关内容