首页 > 代码库 > Linux服务器CPU、内存、磁盘空间、负载情况查看python脚本
Linux服务器CPU、内存、磁盘空间、负载情况查看python脚本
[本文出自天外归云的博客园]
网上搜,东拼西凑,组装了一个可以查Linux服务器CPU使用率、内存使用率、磁盘空间占用率、负载情况的python脚本。
脚本内容如下:
# -*- coding:utf-8 -*- - import os, timelast_worktime=0last_idletime=0def get_cpu(): global last_worktime, last_idletime f=open("/proc/stat","r") line="" while not "cpu " in line: line=f.readline() f.close() spl=line.split(" ") worktime=int(spl[2])+int(spl[3])+int(spl[4]) idletime=int(spl[5]) dworktime=(worktime-last_worktime) didletime=(idletime-last_idletime) rate=float(dworktime)/(didletime+dworktime) last_worktime=worktime last_idletime=idletime if(last_worktime==0): return 0 return ratedef get_mem_usage_percent(): try: f = open(‘/proc/meminfo‘, ‘r‘) for line in f: if line.startswith(‘MemTotal:‘): mem_total = int(line.split()[1]) elif line.startswith(‘MemFree:‘): mem_free = int(line.split()[1]) elif line.startswith(‘Buffers:‘): mem_buffer = int(line.split()[1]) elif line.startswith(‘Cached:‘): mem_cache = int(line.split()[1]) elif line.startswith(‘SwapTotal:‘): vmem_total = int(line.split()[1]) elif line.startswith(‘SwapFree:‘): vmem_free = int(line.split()[1]) else: continue f.close() except: return None physical_percent = usage_percent(mem_total - (mem_free + mem_buffer + mem_cache), mem_total) virtual_percent = 0 if vmem_total > 0: virtual_percent = usage_percent((vmem_total - vmem_free), vmem_total) return physical_percent, virtual_percentdef usage_percent(use, total): try: ret = (float(use) / total) * 100 except ZeroDivisionError: raise Exception("ERROR - zero division error") return retstatvfs = os.statvfs(‘/‘)total_disk_space = statvfs.f_frsize * statvfs.f_blocksfree_disk_space = statvfs.f_frsize * statvfs.f_bfreedisk_usage = (total_disk_space - free_disk_space) * 100.0 / total_disk_spacedisk_usage = int(disk_usage)disk_tip = "硬盘空间使用率(最大100%):"+str(disk_usage)+"%"print(disk_tip)mem_usage = get_mem_usage_percent()mem_usage = int(mem_usage[0])mem_tip = "物理内存使用率(最大100%):"+str(mem_usage)+"%"print(mem_tip)cpu_usage = int(get_cpu()*100)cpu_tip = "CPU使用率(最大100%):"+str(cpu_usage)+"%"print(cpu_tip)load_average = os.getloadavg()load_tip = "系统负载(三个数值中有一个超过3就是高):"+str(load_average)print(load_tip)
在Linux服务器上touch一个py文件,把以上内容粘贴进去并保存。运行python脚本,效果如下:
一目了然。以后再出现访问后台接口502、无返回的情况,在后台服务器执行一下脚本,看看是不是这方面引起的问题,是不是内存占用过高,是不是磁盘满了等等。方便后台服务器环境问题的定位,以便联系相关的开发或运维来协助解决问题。
Linux服务器CPU、内存、磁盘空间、负载情况查看python脚本
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。