设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

QQ登录

只需一步,快速开始

#公告#抱歉,网站将关闭,不再开放。由于PC时代已远逝 。在这个后移动互联网时代,我们继续携手前行,保持对技术的热情。共同构建linuxtone知识星球欢迎加入,一起讨论技术、招聘人才、分享资源。请新老linuxtone人 扫码移步到 知识星球:linuxtone

学习是一种信仰!分享是一种快乐!能力= 心态 * 沟通 * 知识 (你的每一天需要正能量!)

 网站的发展需要你贡献一份力量!希望你能每天坚持看贴1小时,并回答网友的问题!祝你在浏览论坛的过程中取得进步!谢谢!linuxtone加油!大家加油! 友情提示: 你今天学习了吗?你今天进步了吗?少一点抱怨!多一点进步!Life is short ! Why not linuxtone ?  

网站的发展、感谢每位坛友的努力!

查看: 9421|回复: 2

[提问] 如何监控一台LINUX主机的cpu [复制链接]

Rank: 6Rank: 6

签到
37
注册时间
2012-5-20
最后登录
2019-7-22
在线时间
12 小时
阅读权限
70
积分
4174
帖子
8
主题
4
精华
0
UID
20122
发表于 2012-7-27 18:42:41 |显示全部楼层
如题.........

Rank: 8Rank: 8

注册时间
2011-11-28
最后登录
2017-8-22
在线时间
285 小时
阅读权限
90
积分
50754
帖子
70
主题
0
精华
0
UID
16067
发表于 2012-7-27 22:18:34 |显示全部楼层
你可以通过 监控软件来监控。
比如nagios、cacti、zabbix
http://bbs.linuxtone.org/forum-20-1.html

使用道具 举报

Rank: 6Rank: 6

注册时间
2011-12-8
最后登录
2014-11-18
在线时间
7 小时
阅读权限
70
积分
3374
帖子
19
主题
0
精华
0
UID
16438
发表于 2012-8-1 19:57:48 |显示全部楼层
具体要看你监控什么了。有一个python 脚本,供你参考一下。

#!/usr/bin/env python
#****************************************************************#
# ScriptName: cpu.py
# Author: wangshangde
# Create Date: 2012-07-24
# Modify Author:
# Modify Date: 2012-07-24
# Function:
#***************************************************************#

import re,time

def _read_cpu_usage():
    """Read the current system cpu usage from /proc/stat"""
    statfile = "/proc/stat"
    cpulist = []
    try:
        f = open(statfile, 'r')
        lines = f.readlines()
    except:
        return []
    for line in lines:
        tmplist = line.split()
        if len(tmplist) < 5:
            continue
        for b in tmplist:
            m = re.search(r'cpu\d+',b)
            if m is not None:
                cpulist.append(tmplist)
    f.close()
    return cpulist

def get_cpu_usage():
    cpuusage = {}
    cpustart = {}
    cpuend = {}
    linestart = _read_cpu_usage()
    if not linestart:
        return 0
    for cpustr in linestart:
        usni=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])+long(cpustr[5])+long(cpustr[6])+long(cpustr[7])+long(cpustr[4])
        usn=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])
        cpustart[cpustr[0]] = str(usni)+":"+str(usn)
    sleep = 2
    time.sleep(sleep)
    lineend = _read_cpu_usage()
    if not lineend:
        return 0
    for cpustr in lineend:
        usni=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])+long(cpustr[5])+long(cpustr[6])+long(cpustr[7])+long(cpustr[4])
        usn=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])
        cpuend[cpustr[0]] = str(usni)+":"+str(usn)
    for line in cpustart:
        start = cpustart[line].split(':')
        usni1,usn1 = float(start[0]),float(start[1])
        end = cpuend[line].split(':')
        usni2,usn2 = float(end[0]),float(end[1])
        cpuper=(usn2-usn1)/(usni2-usni1)
        cpuusage[line] = int(100*cpuper)
        
    return cpuusage

if __name__ == '__main__':
    a = get_cpu_usage()
    print a

不是我写的,前段时间在哪个网站上看到的,当时觉得没啥用,现在也许对你有用。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢您的支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2019-8-19 21:55 , Processed in 0.018375 second(s), 12 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部