linux系统使用python获取cpu信息脚本分享
linux系统使用python获取cpu信息脚本分享
#!/usr/bin/env Python
from __future__ import print_function
from collections import OrderedDict
import pprint
def CPUinfo():
''' Return the information in /proc/CPUinfo
as a dictionary in the following format:
CPU_info['proc0']={...}
CPU_info['proc1']={...}
'''
CPUinfo=OrderedDict()
procinfo=OrderedDict()
nprocs = 0
with open('/proc/CPUinfo') as f:
for line in f:
if not line.strip():
# end of one processor
CPUinfo['proc%s' % nprocs] = procinfo
nprocs=nprocs+1
# Reset
procinfo=OrderedDict()
else:
if len(line.split(':')) == 2:
procinfo[line.split(':')[0].strip()] = line.split(':')[1].strip()
else:
procinfo[line.split(':')[0].strip()] = ''
return CPUinfo
if __name__=='__main__':
CPUinfo = CPUinfo()
for processor in CPUinfo.keys():
print(CPUinfo[processor]['model name'])
简单说明一下清单 1,读取/proc/CPUinfo 中的信息,返回 list,每核心一个 dict。其中 list 是一个使用方括号括起来的有序元素集合。List 可以作为以 0 下标开始的数组。Dict 是 Python 的内置数据类型之一, 它定义了键和值之间一对一的关系。OrderedDict 是一个字典子类,可以记住其内容增加的顺序。常规 dict 并不跟踪插入顺序,迭代处理时会根据键在散列表中存储的顺序来生成值。在 OrderedDict 中则相反,它会记住元素插入的顺序,并在创建迭代器时使用这个顺序。
可以使用 Python 命令运行脚本 CPU1.py 结果见图
相关推荐
-
Linux 查看cpu 信息的命令及简单实例
有的时候领导会问你某个服务器是多少核的,多少线程的,是不是会懵了,下面教你怎么看cpuinfo 1.查看cpu个数: # cat /proc/cpuinfo | grep 'physical id' | sort -u 2.查看cpu核数: # cat /proc/cpuinfo | grep 'core id' | sort -u | wc -l 3.查看cpu线程: # cat /proc/cpuinfo | grep 'processor' | sort -u | wc -l eg:
-
使用python获取CPU和内存信息的思路与实现(linux系统)
大家都知道,linux里一切皆为文件,在linux/unix的根目录下,有个/proc目录,这个/proc 是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做"/proc"),这个伪文件系统允许与内核内部数据结构交互,获取有关进程的有用信息,在运行中(on the fly)改变设置(通过改变内核参数).与其他文件系统不同,/proc 存在于内存而不是硬盘中.proc 文件系统提供的信息如下: •进程信息:系统中的任何一个进程,在 proc 的子目录中都有一个同名的
-
Linux中使用Shell脚本查看Java线程的CPU使用情况
线上Java应用,在业务高峰期的时候经常出现CPU跑高,需要查看实时的线程占用cpu情况,下面是一个很好用的脚本,可以快速导出每个线程的占用CPU情况,结合jstack日志,排查到具体的线程类名. 一.首先获得jvm的进程ID: 复制代码 代码如下: ps -ef|grep javatomcat 374 372 1 11:45 ? 00:02:30 jsvc.exec -java-home /usr/java/latest -user tomcat -pidfile
-
Linux shell脚本实现CPU预警
如果CPU占用率持续达到80以上则调用打印java线程占用率堆栈的脚本,见https://github.com/oldratlee/useful-shells/blob/master/show-busy-java-threads.sh,具体用法见他的github wiki! #!/bin/bash #cpu idle percent cpu_idle=`top -b -d 1 -n 2 | grep Cpu | awk 'NR>1{print $5}' | cut -f 1 -d ".&q
-
linux php-cgi.exe占用cpu 100%的一次排障之旅
先说下我们网站的架构,由于目前网站访问量不是很大,但是由于最近公司网站要推广,所以将网站由单机切换成前端用nginx做负载均衡,带动两台web服务器,所有网页和静态文件都通过NFS共享调用,NFS服务装在其中的一个web服务器上,后端用mysql主从的方式,是很典型的架构. 切换成这个架构才2天,就收到nagios的报警,报警信息显示有一台web服务器负载很高,于是通过SecureCRT登录到服务器上,用top命令看了一下,发现有几个php-cgi进程占用了大量的CPU,如下: 13889 ww
-
Linux2.6对新型CPU的支持
文章分析了在 Linux 2.6 中引入的对 Intel CPU 快速系统调用指令 SYSENTER/SYSEXIT 支持的实现.Linux 驱动及内核开发者通过了解快速系统调用指令的机制,可以在自己的代码中通过利用这一机制,提高系统性能,并避开由快速系统调用方式带来的一些局限(如系统调用中嵌套系统调用). 前言 在 Linux 2.4 内核中,用户态 Ring3 代码请求内核态 Ring0 代码完成某些功能是通过系统调用完成的,而系统调用的是通过软中断指令(int 0x80)实现的.在 x86
-
linux vps服务器进程kswapd0与events/0消耗大量CPU的问题
今天下午网站宕了两次机,发工单给阿里云,发现原因是服务器的CPU 100%了. 重启服务器后,使用 top 命令看看是哪些进程消耗那么大的 CPU 使用.盯了有好十几分钟,主要消耗 CPU 的进程有两个,一个是 mysql,另一个是 apache.下面的图可以看到,mysql 占用了很大部分的 CPU 使用.apache 单个进程虽然占得不多,但有不少个 apache 进程同时存在,也消耗了不少 CPU 的使用. 当然,这些不足以让服务器的 CPU 直接跑满挂掉,后来发现了两个大家伙: 当 my
-
linux使用管道命令执行ps获取cpu与内存占用率
复制代码 代码如下: #include <stdio.h>#include <unistd.h>int main(){ char caStdOutLine[1024]; // ps 命令的标准输出中的一行信息 char* pcTmp = NULL; // 指向以空格拆分后的字符串 char caSelfPID[10]; // 自身进程的PID字符串 char caPSCmd[24]; // "ps aux | grep
-
linux查看cpu是否支持64位的方法
查看cpuinfo中是否有lm,如果有lm表示支持64位,lm的意思是long mode,具体命令如下: 复制代码 代码如下: cat /proc/cpuinfo | grep flags 检查输出里面是否有 lm 字符或 复制代码 代码如下: cat /proc/cpuinfo | grep flags | grep lm | wc -l 输出结果大于 0 表示支持64位
-
linux系统使用python获取cpu信息脚本分享
linux系统使用python获取cpu信息脚本分享 复制代码 代码如下: #!/usr/bin/env Pythonfrom __future__ import print_functionfrom collections import OrderedDictimport pprint def CPUinfo(): ''' Return the information in /proc/CPUinfo as a dictionary in the following format:
-
linux系统使用python获取内存使用信息脚本分享
复制代码 代码如下: #!/usr/bin/env Python from __future__ import print_functionfrom collections import OrderedDict def meminfo(): ''' Return the information in /proc/meminfo as a dictionary ''' meminfo=OrderedDict() with open('/proc/meminfo') as f:
-
解决Linux系统中python matplotlib画图的中文显示问题
最近想学习一些python数据分析的内容,就弄了个爬虫爬取了一些数据,并打算用Anaconda一套的工具(pandas, numpy, scipy, matplotlib, jupyter)等进行一些初步的数据挖掘和分析. 在使用matplotlib画图时,横坐标为中文,但是画出的条形图横坐标总是显示"框框",就去查资料解决.感觉这应该是个比较常见的问题,网上的中文资料也确实很多,但是没有任何一个彻底解决了我遇到的问题.零零碎碎用了快3个小时的时间,才终于搞定.特此分享,希望能帮到有同
-
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
最近想学习一些python数据分析的内容,就弄了个爬虫爬取了一些数据,并打算用Anaconda一套的工具(pandas, numpy, scipy, matplotlib, jupyter)等进行一些初步的数据挖掘和分析. 在使用matplotlib画图时,横坐标为中文,但是画出的条形图横坐标总是显示"框框",就去查资料解决.感觉这应该是个比较常见的问题,网上的中文资料也确实很多,但是没有任何一个彻底解决了我遇到的问题.零零碎碎用了快3个小时的时间,才终于搞定.特此分享,希望能帮到有同
-
Linux下通过python获取本机ip方法示例
下面介绍在Linux上利用python获取本机ip的方法. 经过网上调查, 发现大致有两种方法, 一种是调用shell脚本,另一种是利用python中的socket等模块来得到,下面是这两种方法的源码: #!/usr/bin/env python #encoding: utf-8 #description: get local ip address import os import socket, fcntl, struct def get_ip(): #注意外围使用双引号而非单引号,并且假设默
-
Python获取服务器信息的最简单实现方法
本文实例讲述了Python获取服务器信息的最简单实现方法.分享给大家供大家参考.具体如下: 主要核心代码如下: sUrl = 'http://www.163.com' sock = urllib2.urlopen(sUrl) sock.headers.values() 希望本文所述对大家的Python程序设计有所帮助.
-
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
type()函数: 使用type()函数可以判断对象的类型,如果一个变量指向了函数或类,也可以用type判断. 如: class Student(object): name = 'Student' a = Student() print(type(123)) print(type('abc')) print(type(None)) print(type(abs)) print(type(a)) 运行截图如下: 可以看到返回的是对象的类型. 我们可以在if语句中判断比较两个变量的type类型是否相
-
python获取地震信息 微信实时推送
本文实例为大家分享了python获取地震信息微信实时推送的具体代码,供大家参考,具体内容如下 import requests,time from lxml import etree from wxpy import * # 微信登陆 bot = Bot() # 查找好友 group = bot.groups().search('珍爱生命 远离lisp')[0] #写自己的讨论组名称 with open('log.txt', 'r') as f: rember = f.readline() hea
-
python获取对象信息的实例详解
1.获取对象类型,基本类型可以用type()来判断. >>> type(123) <class 'int'> >>> type('str') <class 'str'> >>> type(None) <type(None) 'NoneType'> 2.如果想获得一个对象的所有属性和方法,可以使用dir()函数返回包含字符串的list. >>> dir('ABC') ['__add__', '__cl
随机推荐
- 网页播放器Object使用详解
- IOS中使用UIWebView 加载网页、文件、 html的方法
- Perl中怎样从数组中删除某个值?
- About Perl(翻译Perl官网介绍)
- PHP解析html类库simple_html_dom的转码bug
- mysql 海量数据的存储和访问解决方案
- javascript实现获取浏览器版本、操作系统类型
- 网管员需注意的十点安全技巧
- Kotlin 基础教程之泛型
- Repeater对数据进行格式化处理
- JS+JSP checkBox 全选具体实现
- Struts2开发环境搭建 附简单登录功能实例
- C# 获取打印机当前状态的方法
- mysql如何实现多行查询结果合并成一行
- 兼容性最强的PHP生成缩略图的函数代码(修改版)
- python2.7 mayavi 安装图文教程(推荐)
- jQuery实现form表单基于ajax无刷新提交方法详解
- 安装完成后如何找回SQL Server实例安装时的序列号
- Linux中关于控制进程的命令总结
- CISCO基础ARP