zoukankan      html  css  js  c++  java
  • linux监控平台搭建-cpu

    linux监控平台搭建-cpu

    目前服务器的主流CPU是intel或者AMD。到底主频是什么。多核、多线程、并发、并行、超频、一级缓存、二级缓存、三级缓存。i386、x86

    cpu:含有算术逻辑、控制、记忆等单元

    频率:就是CPU每秒钟可以进行的工作次数。3.0GHz 这个CPU在一秒内进行3.0*10(9)

    外频:CPU与外部组件进行数据传输、运算是的速度。最好与内存相匹配。

    总核数 = 物理CPU个数 X 每颗物理CPU的核数 

    总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

    查看物理CPU个数:cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

    查看每个物理CPU中core的个数(即核数):cat /proc/cpuinfo| grep "cpu cores"| uniq

    查看逻辑CPU的个数:cat /proc/cpuinfo| grep "processor"| wc -l

    查看CPU信息(型号):cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

    查看CPU的主频:cat /proc/cpuinfo |grep MHz|uniq 

     

    1.监控相关的CPU计算方法:通过采集/proc/stat来得到,大家可以参考sar命令的统计输出来理解。

    cpu.idle:CPU或CPUs空闲并且系统没有未完成的磁盘I / O请求的时间百分比。

    cpu.busy:与cpu.idle相对,他的值等于100减去cpu.idle。

    cpu.guest:CPU或CPUS用于运行虚拟处理器的时间百分比。

    cpu.iowait:CPU或CPUS用于维护硬件中断所花费的时间百分比。

    cpu.irq:CPU或CPUS用于维护硬件中断所花费的时间百分比。

    cpu.softirq:CPU或CPUS用于服务软件中断所花费的时间百分比。

    cpu.nice:在优先级高的用户级别执行时CPU占用率的百分比。

    cpu.steal:当虚拟机管理程序为另一个虚拟处理器服务时,虚拟CPU或CPUS在非自愿等待中花费的时间百分比。

    cpu.system:在系统级别(内核)上执行时CPU占用率的百分比。

    cpu.user:在用户级别(应用程序)执行时CPU占用率的百分比。

    cpu.cnt:cpu核数。

    cpu.switches:cpu上下文切换次数,计数器类型。在stat里面是这个  ctxt 30516916343

    CPU时间=user+system+nice+idle+iowait+irq+softirq

    例如:查看cpu核0  

           %usr    %nice   %sys     %iowait     %irq    %soft   %steal   %guest   %idle

    cpu0    3143580   88     2678777   3863810314   2442     0     5461    0      0

    btime:这行展示从系统启动到现在为止的时间(以Epoch时间开始计算, 1970-01-01 00:00:00 +0000 (UTC)),单位为秒。 

    processes:(total_forks) 自系统启动以来所创建的任务的个数目。

    procs_running:当前运行队列的任务的数目。

    procs_blocked:当前被阻塞的任务的数目。

    softirq:从系统启动开始累计到当前时刻,软中断时间(单位:jiffies)

    aa.jpg

    intr:这行给出中断的信息,第一个为自系统启动以来,发生的所有的中断的次数;然后每个数对应一个特定的中断自系统启动以来所发生的次数。

    2.监控相关的CPU-load计算方法:读取/proc/loadavg,都是原始值类型的:

    load.1min:表示最近1分钟的平均负载(取决于机器的核数)

    load.5min:表示最近5分钟的平均负(取决于机器的核数)

    load.15min:表示最近15分钟的平均负载(取决于机器的核数)

    常用的命令:sar、mpstat、top、iostat、vmstat、w...

    mpstat [-P {cpu|ALL}] [internal [count]]

    3.获取进程cmd的方式

    ps  -e   o user,pid,cmd | grep ssh

    ps  w  -p  $pid

    4.计算进程启动的时间

    ps -p  $pid  -o lstart

    或者脚本

    #!/bin/bash

    pid=$1

    elt=$( ps w -p $pid o pid=,cmd=,etime= | awk  '{print $NF}' )

    case $( echo $elt | sed -e 's/:/: /g' | grep ":" -c ) in

    "1")

    elt=$( echo $elt | sed -e 's/:/ minutes ago /' )

    ;;

    *)

    elt=$( echo $elt | sed -e 's/-/ days ago /' -e 's/:/ hours ago /' -e 's/:/ minutes ago /' )

    ;;

    esac

    date -d "$elt seconds ago"

    5.查看单个进程的状态

    cat  /proc/$pid/stat

    参考:

    http://blog.51cto.com/asinego/1949715

  • 相关阅读:
    mysql 锁相关的视图(未整理)
    MYSQL的用户变量(@)和系统变量(@@)
    mysql杀死线程
    mysql 系统变量和session变量
    Oracle DB 移动数据
    MySQL数据库------常用函数
    练习-----查询
    练习建表
    课堂笔记总结
    数据库--------用代码来创建表
  • 原文地址:https://www.cnblogs.com/robinunix/p/8489680.html
Copyright © 2011-2022 走看看