精华内容
下载资源
问答
  • 离线环境下python3.6.5环境搭建,执行python脚本,实现软件和硬件资源监控,存储redis,转为json格式输出。包含linux安装和执行命令。
  • 离线环境下python3.6.5环境搭建,执行python脚本,实现软件和硬件资源监控,存储redis,转为json格式输出。包含linux安装和执行命令。
  • #!/usr/bin/python3 ...此脚本用于zabbix监控所有硬件设备的维保到期时间 ''' import xlrd,datetime,time,os from xlrd import xldate_as_tuple import json class Maintence: def __init__(self): ...
    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    
    '''
    此脚本用于zabbix监控所有硬件设备的维保到期时间
    '''
    
    import xlrd,datetime,time,os
    from xlrd import xldate_as_tuple
    import json
    
    class Maintence:
    
        def __init__(self):
            self.file = '/Users/fanht/Desktop/机房设备20190726.xlsx'
            self.today = time.time()
    
        @property
        def read_excel(self):
    
            wb = xlrd.open_workbook(filename=self.file)   # 打开文件
            sheet1 = wb.sheet_by_index(0)  # 通过索引获取表格,表格对象
            row_message = {}
            for row in range(1,sheet1.nrows):
                line = sheet1.row_values(row) # 每一行的内容
    
                serial_number = line[4] # 设备序列号
    
                if sheet1.cell(row, 9).ctype == 3:
                    date = xldate_as_tuple(sheet1.cell(row,9).value,0)
                    maintenance_time = datetime.datetime(*date)  # 维保到期时间<class 'datetime.datetime'>
                    ans_time = time.mktime(maintenance_time.timetuple()) # 维保到期时间时间戳
                    row_message[serial_number] = ans_time
            return row_message
    
    
        @property
        def time_diff(self):
    
            time_dic = {}
            for key,value in self.read_excel.items():
                time_poor = int((value - self.today)/86400)# 维保时间截止今天的天数差
                time_dic[key] = time_poor
            return time_dic
    
    
    if __name__ == '__main__':
    
        maintence = Maintence()
        a = []
        for key in maintence.time_diff.keys():
            b= {}
            b["{#SERIAL}"] = key
            a.append(b)
    
        print(json.dumps(a,sort_keys=True, indent=6))
    
    展开全文
  • 最近个人网站准备重新写一个管理台,其中一个功能就是监控服务器的硬件资源信息,以下使用psutil库获取硬件信息,给出代码,开箱即用 import psutil import datetime import time class MessyServerHardware: ...

    日常前言

    最近个人网站准备重新写一个管理台,其中一个功能就是监控服务器的硬件资源信息,以下使用psutil库获取硬件信息,给出代码,开箱即用

    import psutil
    import datetime
    import time
    
    class MessyServerHardware:
    	def __init__(self):
    		self.__now_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
    		self.__serverStartTime = datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")
    
    	def cpu(self):
    		self._cpuCount = psutil.cpu_count(logical=False)						# 查看cpu物理个数	
    		self._cpu = str(psutil.cpu_percent(interval=2, percpu=False)) + '%'		# CPU的使用率
    																					# interval是获取2s内的cpu使用率波动
    																					# 这个获取的不是很准确,仅供参考
    		return self._cpu
    
    	def memory(self):
    		self._free = str(round(psutil.virtual_memory().free / (1024.0 * 1024.0 * 1024.0), 2))									# 总物理内存(DDR)
    		self._total = str(round(psutil.virtual_memory().total / (1024.0 * 1024.0 * 1024.0), 2))									# 剩余物理内存(DDR)
    		self._memory = int(psutil.virtual_memory().total - psutil.virtual_memory().free) / float(psutil.virtual_memory().total)	# 物理内存使用率(DDR)
    		self._memory = str(int(self._memory * 100)) + '%'
    		list = [self._memory,self._free,self._total]
    		return list
    
    	def user(self):
    		self._users_count = len(psutil.users())							# 当前登录用户名
    		self._users_list = ",".join([u.name for u in psutil.users()])	# 用户个数
    		list = [self._users_count,self._users_list]
    		return list
    
    	def network(self):
    		self._net = psutil.net_io_counters()
    		self._bytes_rcvd = '{0:.2f} Mb'.format(self._net.bytes_sent / 1024 / 1024)	# 网卡接收流量
    		self._bytes_sent = '{0:.2f} Mb'.format(self._net.bytes_recv / 1024 / 1024)	# 网卡发送流量
    		list = [self._bytes_rcvd,self._bytes_sent]
    		return list
    
    	def main(self):
    		list = {
    			'now_time':self.__now_time,
    			'serverStartTime':self.__serverStartTime,
    			'cpu':self.cpu(),
    			'memory':[
    				self.memory()[0],
    				self.memory()[1],
    				self.memory()[2],
    			],
    			'user':[
    				self.user()[0],
    				self.user()[1],
    			],
    			'network':[
    				self.network()[0],
    				self.network()[1],
    			]
    		}
    		return list
    
    serMeg = MessyServerHardware().main()
    print('最近一次监测数据时间:%s' % serMeg['now_time'])
    print('服务器启动时间:%s' % serMeg['serverStartTime'])
    print('CPU使用率:%s' % serMeg['cpu'])
    print('内存使用率:%s,剩余内存:%s,总内存:%s' % (serMeg['memory'][0],serMeg['memory'][1],serMeg['memory'][2]))
    print('当前登录用户:%s,用户名为:%s' % (serMeg['user'][0],serMeg['user'][1]))
    print('入网流量:%s,出网流量:%s' % (serMeg['network'][0],serMeg['network'][1]))
    

    本文作者: Messy
    原文链接:https://www.messys.top/detail/32
    版权声明: 本博客所有文章除特别声明外, 均采用 CC BY-NC-SA 4.0 许可协议. 转载请注明出处!

    展开全文
  • python 监控 当我第一次遇到counter和gauge以及带有颜色和数字的图表时,我的React是避免使用该图表,这些图表的颜色和数字分别标记为“平均”和“ 90以上”。 就像我看到了它们一样,但是我不在乎,因为我不了解...

    python 监控

    当我第一次遇到countergauge以及带有颜色和数字的图表时,我的React是避免使用该图表,这些图表的颜色和数字分别标记为“平均”和“ 90以上”。 就像我看到了它们一样,但是我不在乎,因为我不了解它们或它们如何有用。 由于我的工作不需要我关注它们,因此它们仍然被忽略。

    那是大约两年前。 随着我职业的发展,我想更多地了解我们的网络应用程序,也就是当我开始了解指标时。

    我到目前为止了解监视的三个阶段是:

    • 阶段1:什么? (在其他地方看)
    • 阶段2:如果没有指标,我们真的是盲目。
    • 阶段3:如何避免错误地执行指标?

    我目前处于第二阶段,将分享我到目前为止所学的知识。 我正在逐步进入第3阶段,在本文结尾的那部分旅程中,我将提供一些资源。

    让我们开始吧!

    软件先决条件

    我的GitHub仓库 。 您将需要安装dockerdocker-compose才能使用它们。

    我为什么要监视?

    进行监视的主要原因如下:

    • 了解正常异常的系统与服务行为
    • 进行容量规划,向上或向下扩展
    • 协助进行性能故障排除
    • 了解软件/硬件更改的影响
    • 响应测量改变系统行为
    • 在系统出现意外行为时发出警报

    指标和指标类型

    为了我们的目的, 度量是在给定的时间点上一定数量的观察值。 博客帖子上的点击总数,参加演讲的总人数,在缓存系统中找不到数据的次数,您网站上已登录用户的数量,所有这些都是指标的示例。

    它们大致分为三类:

    专柜

    考虑您的个人博客。 您刚刚发布了一条帖子,并希望随时关注它获得的点击次数,这个数字只会增加。 这是计数器的一个示例。 它的值从0开始,并在博客文章的生存期内增加。 图形上,计数器如下所示:

    Counter metric

    反指标总是会增加。

    量规

    假设您想跟踪每天或每周的点击数,而不是随着时间推移博客帖子的总点击数。 该指标称为仪表 ,其值可以上升或下降。 在图形上,量规如下所示:

    gauge metric

    量度指标可以增加或减少。

    仪表的值通常在特定的时间范围内具有上限下限

    直方图和计时器

    直方图 (如Prometheus所称)或计时器 (如StatsD所称)是跟踪采样观测值的度量。 与计数器或仪表不同,直方图指标的值不一定显示向上或向下的模式。 我知道这没有多大意义,而且似乎与衡量标准没有什么不同。 与标准表相比,您期望对直方图数据执行的操作有所不同。 因此,监视系统需要知道指标是直方图类型,才能执行这些操作。

    Histogram metric

    直方图指标可以增加或减少。

    演示1:计算和报告指标

    演示1是使用Flask框架编写的基本Web应用程序。 它演示了我们如何计算报告指标。

    src目录在app.py具有应用程序,其中src/helpers/middleware.py包含以下内容:

    
    
       
    from flask import request
    import csv
    import time


    def start_timer():
        request.start_time = time.time()


    def stop_timer(response):
        # convert this into milliseconds for statsd
        resp_time = (time.time() - request.start_time)*1000
        with open('metrics.csv', 'a', newline='') as f:
            csvwriter = csv.writer(f)
            csvwriter.writerow([str(int(time.time())), str(resp_time)])

        return response


    def setup_metrics(app):
        app.before_request(start_timer)
        app.after_request(stop_timer)

    从应用程序调用setup_metrics() ,它将配置在处理请求之前调用start_timer()函数,在处理请求之后但发送响应之前配置stop_timer()函数。 在上面的函数中,我们编写了timestamp以及处理请求所花费的时间(以毫秒为单位)。

    当我们在demo1目录中运行demo1 docker-compose up时,它将启动Web应用程序,然后启动一个向Web应用程序发出大量请求的客户端容器。 您将看到一个由两列创建的src/metrics.csv文件: timestamprequest_latency

    查看此文件,我们可以推断出两件事:

    • 已经生成了很多数据
    • 没有度量指标的观察结果与之相关的任何特征

    没有与度量标准观测值相关联的特征,我们无法说出该度量标准与哪个HTTP端点相关联,或者无法确定该度量标准是从哪个应用程序节点生成的。 因此,我们需要使用适当的元数据对每个指标观察进行限定。

    统计101

    如果我们回想一下高中数学,即使是含糊其词,也应该记住一些统计学术语,包括均值,中位数,百分位数和直方图。 让我们简要回顾一下它们,而不必像在高中时那样判断它们的用处。

    意思

    平均值或数字列表的平均值是数字的总和除以列表的基数。 3、2和10的平均值是(3+2+10)/3 = 5

    中位数

    中位数是另一种平均值,但计算方法有所不同。 它是从最小到最大(反之亦然)排序的数字列表中的中心数字。 在我们上面的列表(2,3,10)中,中位数是3。 这取决于列表中的项目数。

    百分位

    百分位数是一种度量,它使我们有了一个度量,低于该度量的一定百分比( k )的数字。 从某种意义上说,它给我们的是如何这一措施相做的一个想法 k我们的数据的百分比。 例如,以上列表的第95个百分值为9.29999。 百分位数度量范围从0到100(不包括在内)。 零个百分点是一组数字中的最低分数。 你们中有些人可能还记得中位数是第50个百分位数,结果是3。

    某些监视系统将百分位数度量值称为upper_X ,其中X是百分位数。 高90表示第90个百分位的值。

    分位数

    q分位数是在一组N个数字中对q N进行排名的度量。 q的值在0到1(包括两者)之间。 当q为0.5时,该值为中位数。 分位数与百分位数之间的关系是, q分位数处的度量等于100 q百分位数处的度量。

    直方图

    我们之前了解的度量直方图是监视系统的实现细节 。 在统计数据中,直方图是将数据分组为存储桶的图形。 让我们考虑一个不同的,人为的示例:阅读您的博客的人们的年龄。 如果您掌握了这些数据,并且希望按组粗略地了解读者的年龄,则绘制直方图将显示如下图:

    Histogram graph

    累积直方图

    累积直方图是直方图,其中每个桶的计数包括以前桶的数量,故名累积 。 上述数据集的累积直方图如下所示:

    Cumulative histogram

    为什么我们需要统计?

    在上面的演示1中,我们观察到在报告指标时会生成大量数据。 使用指标时,我们需要统计信息,因为它们太多了。 我们不在乎个人价值观,而是整体行为。 我们期望值显示的行为是所观察系统的行为的代理。

    演示2:向指标添加特征

    在上面的演示1应用程序中,当我们计算并报告请求延迟时,它指的是由几个特征唯一标识的特定请求。 其中一些是:

    • HTTP端点
    • HTTP方法
    • 正在运行的主机/节点的标识符

    如果将这些特征附加到度量标准观察值,则每个度量标准周围会有更多上下文。 让我们探索在示例2中为我们的指标添加特征。

    现在,在编写指标时, src/helpers/middleware.py文件将多个列写入CSV文件:

    
    
       
    node_ids = ['10.0.1.1', '10.1.3.4']


    def start_timer():
        request.start_time = time.time()


    def stop_timer(response):
        # convert this into milliseconds for statsd
        resp_time = (time.time() - request.start_time)*1000
        node_id = node_ids[random.choice(range(len(node_ids)))]
        with open('metrics.csv', 'a', newline='') as f:
            csvwriter = csv.writer(f)
            csvwriter.writerow([
                str(int(time.time())), 'webapp1', node_id,
                request.endpoint, request.method, str(response.status_code),
                str(resp_time)
            ])

        return response

    由于这是一个演示,因此在报告指标时,我可以自由地报告随机IP作为节点ID。 当我们在demo2目录中运行docker-compose up时,它将导致一个包含多列的CSV文件。

    pandas分析指标

    现在,我们将使用pandas分析此CSV文件。 运行docker-compose up将打印一个URL,我们将使用该URL打开Jupyter会话。 一旦将Analysis.ipynb笔记本上载到会话中,就可以将CSV文件读取到pandas DataFrame中:

    
    
       
    import pandas as pd
    metrics = pd.read_csv('/data/metrics.csv', index_col=0)

    index_col指定我们要使用timestamp作为索引。

    由于我们添加的每个特征都是DataFrame中的一列,因此我们可以基于以下列执行分组和聚合:

    
    
       
    import numpy as np
    metrics.groupby(['node_id', 'http_status']).latency.aggregate(np.percentile, 99.999)

    请参考Jupyter笔记本以获取有关数据的更多示例分析。

    我应该监视什么?

    软件系统具有许多变量,其值在其生命周期中会发生变化。 该软件在某种操作系统上运行,并且操作系统变量也会更改。 我认为,您拥有的数据越多,出现问题时就越好。

    我建议监视的关键操作系统指标是:

    • CPU使用率
    • 系统内存使用率
    • 文件描述符的用法
    • 磁盘使用情况

    要监视的其他关键指标将取决于您的软件应用程序。

    网络应用

    如果您的软件是侦听并处理客户端请求的网络应用程序,则要衡量的关键指标是:

    • 传入的请求数(计数器)
    • 未处理的错误(计数器)
    • 请求延迟(直方图/计时器)
    • 排队时间,如果您的应用程序中有队列(直方图/计时器)
    • 队列大小(如果应用程序中存在队列)
    • 工作进程/线程使用情况(仪表)

    如果您的网络应用程序在满足客户端请求的上下文中向其他服务发出请求,则它应具有度量标准来记录与这些服务的通信行为。 监视的关键指标包括请求数量,请求延迟和响应状态。

    HTTP Web应用程序后端

    HTTP应用程序应监视以上所有内容。 此外,他们应保留有关非200 HTTP状态计数的细化数据,这些计数由所有其他HTTP状态代码分组。 如果您的Web应用程序具有用户注册和登录功能,则它也应该具有这些指标。

    长时间运行的流程

    尽管不是网络服务器,但运行很长时间的进程(例如Rabbit MQ使用者或任务队列工作器)仍在拾取任务并对其进行处理的模型上工作。 因此,我们应该监视已处理请求的数量以及这些进程的请求延迟。

    无论应用程序类型如何,每个指标都应具有与其相关的适当元数据

    将监控集成到Python应用程序中

    将监视集成到Python应用程序中涉及两个组件:

    • 更新您的应用程序以计算和报告指标
    • 设置监视基础结构以容纳应用程序的指标并允许对其进行查询

    记录和报告指标的基本思想是:

    
    
       
    def work ( ) :
        requests + = 1
        # report counter
        start_time = time . time ( )
       
        # < do the work >

        # calculate and report latency
        work_latency = time . time ( ) - start_time
        ...

    考虑到上述模式,我们经常利用装饰器上下文管理器中间件 (用于网络应用程序)来计算和报告指标。 在演示1和演示2中,我们在Flask应用程序中使用了装饰器。

    推和推模型用于指标报告

    本质上,从Python应用程序报告指标有两种模式。 在模型中,监视系统在预定义的HTTP端点“刮”应用程序。 在推送模型中,应用程序将数据发送到监视系统。

    Pull and push models

    Prometheus是在模型中工作的监视系统的一个示例。 StatsD是监视系统的示例,其中应用程序度量标准送到系统。

    整合统计数据

    要将StatsD集成到Python应用程序中,我们将使用StatsD Python客户端 ,然后更新指标报告代码,以使用适当的库调用将数据推送到StatsD中。

    首先,我们需要创建一个client实例:

    
    statsd = statsd.StatsClient(host='statsd', port=8125, prefix='webapp1') 
    

    prefix关键字参数会将指定的prefix添加到通过此客户端报告的所有指标。

    有了客户后,我们可以使用以下方法报告timer的值:

    
    statsd.timing(key, resp_time) 
    

    要增加计数器:

    
    
       
    statsd.incr(key)

    为了将元数据与度量相关联,将密钥定义为metadata1.metadata2.metric ,其中每个metadataX都是一个允许聚合和分组的字段。

    演示应用程序StatsD是将Python Flask应用程序与statsd集成的完整示例。

    整合普罗米修斯

    要使用Prometheus监视系统,我们将使用Promethius Python客户端 。 我们将首先创建适当的度量标准类的对象:

    
    
       
    REQUEST_LATENCY = Histogram ( 'request_latency_seconds' , 'Request latency' ,
        [ 'app_name' , 'endpoint' ]
    )

    上述语句中的第三个参数是与度量标准关联的labels 。 这些labels定义了与单个指标值关联的元数据。

    记录特定的度量观察值:

    
    
       
    REQUEST_LATENCY. labels ( 'webapp' , request. path ) . observe ( resp_time )

    下一步是在我们的应用程序中定义Prometheus可以抓取的HTTP端点。 这通常是一个称为/metrics的端点:

    
    
       
    @app.route('/metrics')
    def metrics():
        return Response(prometheus_client.generate_latest(), mimetype=CONTENT_TYPE_LATEST)

    演示应用程序Prometheus是将Python Flask应用程序与prometheus集成的完整示例。

    哪个更好:StatsD或Prometheus?

    下一个自然的问题是:我应该使用StatsD还是Prometheus? 我已经写了一些有关该主题的文章,您可能会发现它们很有用:

    指标使用方式

    我们已经了解了为什么要在应用程序中设置监视,但是现在让我们更深入地研究其中两个:警报和自动缩放。

    使用指标进行警报

    指标的主要用途是创建警报。 例如,如果过去五分钟内HTTP 500的数量增加,则可能要向相关人员发送电子邮件或寻呼通知。 我们用于设置警报的方式取决于我们的监视设置。 对于Prometheus,我们可以使用Alertmanager ;对于StatsD,我们可以使用Nagios

    使用指标进行自动缩放

    指标不仅可以让我们了解我们当前的基础架构是否配置过多或不足,还可以帮助在云基础架构中实施自动扩展策略。 例如,如果过去五分钟我们服务器上的工作进程使用率通常达到90%,则我们可能需要水平扩展。 我们如何实施扩展取决于云基础架构。 默认情况下,AWS Auto Scaling允许根据系统CPU使用率,网络流量和其他因素来扩展策略。 但是,要使用应用程序指标来按比例放大或缩小,我们必须发布自定义CloudWatch指标

    多服务架构中的应用程序监视

    当我们超越单一应用程序体系结构(例如,客户端请求可以触发对多个服务的调用,然后再将响应发送回)时,我们需要指标中的更多内容。 我们需要统一的延迟指标视图,以便我们可以看到每个服务花费多少时间来响应请求。 这可以通过分布式跟踪启用。

    您可以在我的博客文章通过Zipkin在Python应用程序中介绍分布式跟踪中看到一个Python中的分布式跟踪示例。

    要记住的要点

    总之,请确保记住以下几点:

    • 了解指标类型在监控系统中的含义
    • 知道监视系统需要什么度量单位的数据
    • 监控应用程序中最关键的组件
    • 在最关键的阶段监视应用程序的行为

    以上假设您不必管理监视系统。 如果这是您工作的一部分,那么您还有很多事情要考虑!

    其他资源

    以下是我发现在监视教育过程中非常有用的一些资源:

    一般

    StatsD /石墨

    普罗米修斯

    避免错误(例如,第3阶段的学习)

    当我们学习监控的基础知识时,务必要注意我们不想犯的错误。 这是我遇到的一些有见地的资源:


    要了解更多信息,请参加阿米特·萨哈(Amit Saha)的演讲, 计数器,量规,上限90,哦,我的天! ,在PyCon克利夫兰2018年

    翻译自: https://opensource.com/article/18/4/metrics-monitoring-and-python

    python 监控

    展开全文
  • 原博文2013-08-29 21:21 −在日常工作中常遇到这样的情况,我们需要一个监控线程用于随时的获得其他进程的任务请求,或者我们需要监视某些资源等的变化,一个高效的Monitor程序如何使用python语言实现呢?...

    原博文

    2013-08-29 21:21 −

    在日常工作中常遇到这样的情况,我们需要一个监控线程用于随时的获得其他进程的任务请求,或者我们需要监视某些资源等的变化,一个高效的Monitor程序如何使用python语言实现呢?为了解决上述问题,我将我所使用的Monitor程序和大家分享,见代码: 1 import threading 2 i...

    comment.png

    0

    attention.png

    7136

    相关推荐

    2017-01-07 13:05 −

    一、背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试。故而重操python旧业,通过python编写脚本来构造类似线上的调度场景。在脚本编写过程中,碰到这样一个需求:要在测试环境创建10000个作业流。 最开始的想法是在一个azkaban project下...

    2013-03-07 15:10 −

    今天我们总结一下 C#线程同步 中的 Monitor 类 和 Lock 关键字进行一下总结。 首先来看看他们有什么异同(相信对此熟悉的朋友们都很清楚): 1、他们都是在指定对象上获取排他锁,用于同步代码区2、Lock关键字是Monitor的一种替换用法,lock在IL代码中会被翻译成Moni...

    2012-10-11 18:27 −

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! Python主要通过标准库中的threading包来实现多线程。在当今网络时代,每个服务器都会接收到大量的请求。服务器可以利用多线程的方式来处理这些请求,以提高对网络端...

    comment.png

    21

    attention.png

    44929

    2013-08-30 18:00 −

    Python中的ftplib模块用于对FTP的相关操作,常见的如下载,上传等。使用python从FTP下载较大的文件时,往往比较耗时,如何提高从FTP下载文件的速度呢?多线程粉墨登场,本文给大家分享我的多线程下载代码,需要用到的python主要模块包括:ftplib和threading。 首先讨论我...

    comment.png

    2

    attention.png

    5778

    2016-08-11 11:44 −

    昨天遇到一个问题 在一个python程序里面开了三个线程轮询处理三件事情,刚开始一切正常,但是下午的时候发现其中一个线程死掉了,只剩下另外两个线程在运行了,这时候也不想中断主进程,又需要系统自动把死掉的一个线程启动起来就想起了要做一个守护线程来监控三个工作线程是不是正常在工作。 查了一下手册pyth...

    comment.png

    0

    attention.png

    4069

    2017-05-12 19:24 −

    1 GIL全局解释器锁定义 定义:在一个线程拥有了解释器的访问权后,其他的所有线程都必须等待他释放解释器的访问权,即这些线程的下一条指令并不会互相影响。 缺点:多处理器退化为单处理器 优点:避免大量的加锁解锁操作 无论你启多少个线程,你有多少个cpu,pyth...

    2016-07-19 16:12 −

    一、Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元。 1、创建线程 1.1 自定义线程 # 自定义线程 import threading import time # 创建一个线程,继承threading.Thread class MyThr...

    2018-04-02 00:00 −

    一、线程与进程 进程有很多优点,它提供了多道编程,让我们感觉我们每个人都拥有自己的CPU和其他资源,可以提高计算机的利用率。很多人就不理解了,既然进程这么优秀,为什么还要线程呢?其实,仔细观察就会发现进程还是有很多缺陷的,主要体现在两点上: 进程只能在一个时间干一件事,如果想同时干两件事或多件事...

    2015-11-01 18:21 −

    线程 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位,一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。所有在同一个进程中的线程是共享同一块内存空间的。 一个程序执行的实例就是一个进程,进程就是资源的集合。 注意:...

    2016-06-22 23:31 −

    python线程 进程与线程的历史 我们都知道计算机是由硬件和软件组成的。硬件中的CPU是计算机的核心,它承担计算机的所有任务。 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分配、任务的调度。 程序...

    展开全文
  • 要探讨如何运用Python快速构建自动化仪器控制系统,帮助读者了解如何通过自行开发应用程序来监视或者控制仪器硬件。《真实世界的Python仪器监控》内容涵盖了从接线到建立接口,直到完成可用软件的整个过程。本书提供...
  • 《真实世界的Python仪器监控》主要探讨如何运用Python快速构建自动化仪器控制系统,帮助读者了解如何通过自行开发应用程序来监视或者控制仪器硬件。《真实世界的Python仪器监控》内容涵盖了从接线到建立接口,直到...
  • 通过Python开发对服务器硬件资源的监控,通过图表进行实时展现,实现基本的运维管理功能。
  • Python 系统监控管理模块psutil学习

    千次阅读 2017-07-09 00:16:32
    简介psutil,是python system and process utilities的缩写,意思python的系统监控及进程的管理的工具,是一个功能很强大的跨平台的系统管理库。可以实现命令行中类似ps、top、lsof、netstat、ifconfig、who、df、...
  • Python开发的jumpserver跳板机jumpserver跳板机是一款由Python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。企业主要用于解决:可视化安全管理特点:完全开源,...
  •   1-4_硬件信息介绍.mp4   1-5_技术架构介绍.mp4   1-6_开发环境介绍.mp4   2-1_安装依赖包.mp4   2-2_构建项目目录.mp4   2-3_设计内存统计模型.mp4   2-4_设计交换分区统计模型.mp4   2-5_设计CPU...
  • 本文实例为大家分享了python可视化动态cpu性能监控的具体代码,供大家参考,具体内容如下打算开发web性能监控,以后会去学js,现在用matp来补救下,在官网有此类模板,花了一点时间修改了下,有兴趣的可以去官网看看...
  • 本文实例为大家分享了python3磁盘空间监控的具体代码,供大家参考,具体内容如下 软硬件环境 python3 apscheduler 前言 在做频繁操作磁盘的python项目时,经常会碰到磁盘空间不足的情况,这个时候,工程应该要有...
  • APC 的 Netbotz 500 监控硬件 [1] 的 Web UI 子集的 Python 接口。 班级 CheckerPool - SensorModuleCheckers 的简单池 SensorChecker - 与单个传感器相关的逻辑和状态 SensorModuleChecker - 面向性能的传感器分组...
  • python监控系统(flask+python+html)

    千次阅读 2018-07-04 09:55:05
    我们知道zabbix是一款什么强大的监控系统,基本上你想要监控的都可以实现,于是就想自己写一款类似zabbix的监控小软件,也是一遍学习一遍摸索,最终完成了一部分的监控项目,具体的如下截图: ...
  • 真实世界的Python仪器监控:数据采集与控制系统自动化(硬件DIY 不可多得的实战指南) (美)休斯(Hughes,J.M.)著 OBP Group 译 ISBN 978-7-1...
  • python监控windows的CPU,Memory,Disk

    千次阅读 2015-08-28 15:18:08
    python的psutil模块可以跨平台监控linux、windows、mac等,于是使用python监控脚本,然后利用py2exe工具将其打包成exe后,直接将其放到windows下直接运行即可。 1.安装python2.7(32位) 在...
  • 远程监控你的树莓Pi进程
  • python 操作硬件

    千次阅读 2015-04-03 13:58:18
    http://blog.sina.com.cn/s/blog_4680937f0101rw5l.html... 《真实世界的Python仪器监控》 《Raspberry Pi开发实战》中,用的是pyFirmata http://lms.ctl.cyut.edu.tw/course.php?courseID=35443&f=doclist
  • 2019.021概述目前袁作为公司信息化部门的系统管理员袁日常运维工作中需要对众多服务器进行逐个巡检袁查看服务器的各项硬件资源和应用服务的运行状态遥这项工作存在两个方面的问题袁渊1冤人工操作费时费力袁还有可能...
  • multitool:日历,硬件监控,通知
  • python编程的windows系统监控中,需要监控监控硬件信息需要两个模块:WMI 和 pypiwin32 。
  • Python实现系统监控

    千次阅读 2018-10-24 16:01:46
    对(系统、CPU、内存、硬盘、用户)进行实时监控 主函数(run.py): import random import socket import platform import psutil from flask import Flask, render_template from datetime import ...
  • 本文实例为大家分享了python可视化动态CPU性能监控的具体代码,供大家参考,具体内容如下 打算开发web性能监控,以后会去学js,现在用matp来补救下,在官网有此类模板,花了一点时间修改了下,有兴趣的可以去官网看...
  • 引言 上一篇介绍完了观察者模式的原理,本篇想就此再介绍一个小应用,虽然我也就玩了一下午,是当时看observer正好找到的,以及还有Django-observer,...这种Watchdog属于硬件层面,必须有硬件电路的支持。 Linux也引
  • python 监控windows弹窗(pywin32)

    千次阅读 2020-04-17 22:41:59
    这里用python中的pywin32 Pywin32提供了很多访问windows的AP 安装pywin32会包含很多小模块win32ui,win32gui,win32con,win32process等等 pip install pywin32 DC在pywin32中是一个重要概念。windows不允许程序直接...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,035
精华内容 10,414
关键字:

python硬件监控

python 订阅