zoukankan      html  css  js  c++  java
  • 【转】Linux 查看某一进程的占用CPU的Cacti 脚本

    转:http://www.360doc.com/content/10/1214/15/4858070_78044538.shtml

    这几天在写一个脚本,需要记下cpu和内存的使用情况,不知道如何退出top,今天找资料,竟然找到了,转一下



     

    Linux 查看某一进程的占用CPUCacti 脚本. Mysqld为例:

    [root@localhost ~]# more top.sh

    #!/bin/bash

    top -n 1 > /root/top.log

    if grep -q mysqld /root/top.log

    then cpu=`grep "mysqld"
    /root/top.log | gawk '{ print $9 }'`

    echo $cpu

    else

    echo "0"

    fi

    exit

    Linux进程管理命令详解(pstop)
    1.ps
    命令
    作用:ps命令主要查看系统中进程的状态。
    格式:ps [选项]
    主要选项如下。

    -A:显示系统中所有进程的信息。
    -e:显示所有进程的信息。
    -f:显示进程的所有信息。
    -l:以长格式显示进程信息。
    -r:只显示正在运行的进程。
    -u:显示面向用户的格式(包括用户名、CPU及内存使用情况等信息)。
    -x:显示所有非控制终端上的进程信息。
    -p:显示由进程ID指定的进程的信息。
    -t:显示指定终端上的进程的信息。

    说明:要对进程进行监测和控制,首先要了解当前进程的情况,也就是需要查看当前进程。ps命令就是最基本、也是非常强大的进程查看命令。根据显示的信息可以确定哪个进程正在运行、哪个进程被挂起、进程已运行了多久、进程正在使用的资源、进程的相对优先级,以及进程的标志号(PID)。所有这些信息对用户都很有用,对于系统管理员来说更为重要。使用"ps aux"命令可以获得终端上所有用户的有关进程的所有信息,下面结合图讲解进程的基本信息。

    [root@Linux ~]# ps -aux

    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

    root 1 0.0 0.0 2064 624 ? Ss Sep27 0:03 init [3]
    root 2 0.0 0.0 0 0 ? S< Sep27 0:03 [migration/0]
    root 3 0.0 0.0 0 0 ? SN Sep27 0:00 [ksoftirqd/0]
    root 4 0.0 0.0 0 0 ? S< Sep27 0:00 [watchdog/0]
    root 5 0.0 0.0 0 0 ? S< Sep27 0:04 [migration/1]
    root 6 0.0 0.0 0 0 ? SN Sep27 0:00 [ksoftirqd/1]
    root 7 0.0 0.0 0 0 ? S< Sep27 0:00 [watchdog/1]
    root 8 0.0 0.0 0 0 ? S< Sep27 0:05 [migration/2]
    root 9 0.0 0.0 0 0 ? SN Sep27 0:00 [ksoftirqd/2]
    root 10 0.0 0.0 0 0 ? S< Sep27 0:00 [watchdog/2]

    图中第二行代码中,USER表示启动进程用户。PID表示进程标志号。%CPU表示运行该进程占用CPU的时间与该进程总的运行时间的比例。%MEM表示该进程占用内存和总内存的比例。VSZ表示占用的虚拟内存大小,以KB为单位。RSS为进程占用的物理内存值,以KB为单位。TTY表示该进程建立时所对应的终端,"?"表示该进程不占用终端。STAT表示进程的运行状态,包括以下几种代码:D,不可中断的睡眠;R,就绪(在可运行队列中);S,睡眠;T,被跟踪或停止;Z,终止(僵死)的进程,Z不存在,但暂时无法消除;W,没有足够的内存分页可分配;<高优先序的进程;N,低优先序的进程;L,有内存分页分配并锁在内存体内(实时系统或I/O)。START为进程开始时间。TIME为执行的时间。COMMAND是对应的命令名。

    应用实例如下。

    在进行系统维护时,如果CPU负载突然增加,而又不知道是哪一个进程造成的情况。使用命令:

    ps aux | sort +3n

    因为%CPU选项在第三列,所以sort3作为参数,+表示升序输出结果 .


    2.top
    命令

    top命令用来显示系统当前的进程状况。

    格式:top [选项]

    主要选项如下。

    d:指定更新的间隔,以秒计算。
    q
    :没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
    c
    :显示进程完整的路径与名称。
    S
    :累积模式,会将已完成或消失的子进程的CPU时间累积起来。
    s
    :安全模式。
    i
    :不显示任何闲置(Idle)或无用(Zombie)的进程。
    n
    :显示更新的次数,完成后将会退出top

    说明:top命令和ps命令的基本作用是相同的,都显示系统当前的进程状况。但是top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。这里结合图来说明它给出的信息。


     

    top - 15:01:27 up 48 days, 20:31, 3 users, load
    average: 0.08, 0.12, 0.42

    Tasks: 174 total, 1 running, 171 sleeping, 0 stopped, 2 zombie

    Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.6%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st

    Mem: 2075312k total, 1996848k used, 78464k free, 179360k buffers

    Swap: 4128760k total, 68k used, 4128692k free, 1298736k cached



     

    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

    9013 root 15 0 2328 1056 796 R 0.3 0.1 0:00.02 top

    1 root 15 0 2064 624 536 S 0.0 0.0 0:03.80 init

    2 root RT -5 0 0 0 S 0.0 0.0 0:03.88 migration/0

    3 root 36 19 0 0 0 S 0.0 0.0 0:00.04 ksoftirqd/0

    4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0

    5 root RT -5 0 0 0 S 0.0 0.0 0:04.06 migration/1

    6 root 34 19 0 0 0 S 0.0 0.0 0:00.05 ksoftirqd/1

    7 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/1

    8 root RT -5 0 0 0 S 0.0 0.0 0:05.96 migration/2

    9 root 34 19 0 0 0 S 0.0 0.0 0:00.04 ksoftirqd/2

    10 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/2

    11 root RT -5 0 0 0 S 0.0 0.0 0:02.98 migration/3

    12 root 34 19 0 0 0 S 0.0 0.0 0:00.09 ksoftirqd/3



     

    在图中,第一行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。第二行显示的是所有启动的、目前运行的、挂起(Sleeping)的和无用(Zombie)的进程。第三行显示的是目前CPU的使用情况,包括系统占用的比例、用户使用比例、闲置(Idle)比例。第四行显示物理内存的使用情况,包括总的可以使用的内存、已用内存、空闲内存、缓冲区占用的内存。第五行显示交换分区的使用情况,包括总的交换分区、使用的、空闲的和用于高速缓存的交换分区。第六行显示的项目最多,下面列出了详细解释。

    PID
    Process ID):进程标志号,是非零正整数。USER:进程所有者的用户名。PR:进程的优先级别。NI:进程的优先级别数值。VIRT:进程占用的虚拟内存值。RES:进程占用的物理内存值。SHR:进程使用的共享内存值。STAT:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。%CPU:该进程占用的CPU使用率。%MEM:该进程占用的物理内存和总内存的百分比。TIME:该进程启动后占用的总的CPU时间。COMMAND:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。top命令使用过程中,还可以使用一些交互的命令来完成其他参数的功能。这些命令是通过快捷键启动的。

    <空格>:立刻刷新。
    P
    :根据CPU使用大小进行排序。
    T
    :根据时间、累计时间排序。
    q
    :退出top命令。
    m
    :切换显示内存信息。
    t
    :切换显示进程和CPU状态信息。
    c
    :切换显示命令名称和完整命令行。
    M
    :根据使用内存大小进行排序。
    W
    :将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

    可以看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,它的缺点是会消耗很多系统资源。



     

  • 相关阅读:
    Java九种基本数据类型的大小,以及他们的封装类
    php之正则表达式
    代码开发注意事项
    提后端需求的要求
    后端上线规范
    关注公众号的微信用户收到非本人操作的充值消费记录,故障记录
    软件三层架构和MVC模式的区别
    HttpClient发送请求和接收参数
    js页面倒计时
    小程序换取openId
  • 原文地址:https://www.cnblogs.com/xia/p/2074193.html
Copyright © 2011-2022 走看看