#coding=utf-8 import time import psutil import pymysql # 先安装两个包psutil和pymysql # 在mysql创建数据库test1,然后创建table # sql = "create table memory_and_cpu(cpu_lv varchar(100),memory_lv varchar(100),pro_cpu_lv varchar(100), pro_memory_lv varchar(100));" def useagent(pid_list): cpu_list = [] memory_list = [] pro_cpu_list = [] pro_memory_list = [] try: while True: time.sleep(1) cpu_lv = psutil.cpu_percent() cpu_list.append(cpu_lv) # print "当前cpu利用率:\033[1;31;42m%s%%\033[0m" % cpu_lv print "当前服务器cpu利用率%.2f%%" % cpu_lv memory = psutil.virtual_memory() # print memory.used # print memory.total memory_lv = float(memory.used) / float(memory.total) * 100 memory_list.append(memory_lv) print "当前服务器内存利用率%.2f%%" % memory_lv # pro = psutil.pids() # # print(pro) pro_cpu_lv = get_cpu_percent(pid_list) print "当前进程cpu利用率%.2f%%" % pro_cpu_lv[0] pro_cpu_list.append(pro_cpu_lv) p = psutil.Process(pid_list[0]) pro_memory_lv = p.memory_percent() print "当前进程内存利用率%.2f%%" % pro_memory_lv pro_memory_list.append(pro_memory_lv) # 执行sql语句把数据存到数据库 sql = "insert into memory_and_cpu values('%s','%s','%s','%s')" % (cpu_lv, memory_lv, pro_cpu_lv, pro_memory_lv) db = connectDB() sqlDML(sql, db) except: print("连接服务器异常") print cpu_list print memory_list print pro_cpu_list print pro_memory_list def get_cpu_percent(pid_list, interval=0.5): processes = [psutil.Process(pid=i) for i in pid_list] for p in processes: p.cpu_percent(interval=None) time.sleep(interval) percents = [p.cpu_percent(interval=None) for p in processes] print(type(percents)) return percents def connectDB(dbname='test12'): if dbname == 'test12': db = pymysql.connect("localhost", "root", "123", "test12") return db def sqlDML(sql, db): cr = db.cursor() cr.execute(sql) db.commit() cr.close() if __name__ == '__main__': useagent([24450])
python 监测服务器的cpu和内存占用率,单进程的内存和cpu占用率
猜你喜欢
转载自blog.csdn.net/weixin_41896508/article/details/80838384
今日推荐
周排行