python c/s模式下的内存监控模拟代码 推荐
2014-05-01 14:47
337 查看
对与服务端我们可以自己写些API供监控使用。
以下Code只是简单的给监控机吐出固定的mem值:80,不过,可以根据后期需要来开发相应的模块。此次我采用的是select来作为server端的socket监控,不过对与他的1024限制来说,我觉得仅作为监控服务端来说足够了,如果作为更大并发的server端话,可以使用poll,epoll,或者多线程并且结合队列来做到一定的限制,别让过多的连接把服务器干挂。
Server端
以下Code只是简单的给监控机吐出固定的mem值:80,不过,可以根据后期需要来开发相应的模块。此次我采用的是select来作为server端的socket监控,不过对与他的1024限制来说,我觉得仅作为监控服务端来说足够了,如果作为更大并发的server端话,可以使用poll,epoll,或者多线程并且结合队列来做到一定的限制,别让过多的连接把服务器干挂。
Server端
#!/usr/bin/env python #Author:Badboy #CreatBy:2014/5/1 import socket,select host="192.168.1.61" port=1001 sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock.setblocking(0) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.bind((host,port)) sock.listen(1024) inputs=[sock] outputs=[] addrs={} debug=0 def get_free_mem(): return "80" def send_data(sock,data): if data.strip()=='mem': sock.send(get_free_mem()) else: sock.send("Error key words!") while inputs: rlist,wlist,elist=select.select(inputs,outputs,[],0) for s in rlist: if s == inputs[0]: clientsock,clientaddr=s.accept() inputs.append(clientsock) addrs[clientsock]=clientaddr[0] print "ClientAddr:",clientaddr[0] if debug: clientsock.send("Welcome here!\r\n") else: words=s.recv(1024) if not words: print "Byebye",addrs[s] s.close() inputs.remove(s) del addrs[s] if s in outputs: outputs.remove(s) continue if s not in outputs: outputs.append(s) for s in wlist: send_data(s,words) outputs.remove(s)Client
#!/usr/bin/env python #Author Badboy #CreatBy:2014/5/1 import socket,sys mem_check="mem" host="192.168.1.61" port=1001 sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock.connect((host,port)) sock.send(mem_check) mem_warning=40 mem_critical=20 mem_size=sock.recv(1024) if mem_size=="Error key words!": print "Please check client!" sys.exit(1) mem_size=int(mem_size) if mem_size > mem_warning: print "Mem Size Ok!" elif mem_size < mem_critical: print "Mem Size Critical!" else: print "Mem Size Warning!"以上仅是案例,大家可以在此基础上扩展修改的。
相关文章推荐
- Python的psutil模块监控内存代码
- Python实现模拟时钟代码推荐
- Python实现模拟时钟代码推荐
- python监控linux内存并写入mongodb(推荐)
- python运用decorate装饰器模拟网页登陆(含代码)
- zabbix自动发现结合shell实现自动发现占用内存最大top10进程并监控其资源 推荐
- 监控服务器的注册及登陆并邮件通知的代码(go / python)
- 关于B+tree (附python 模拟代码)
- 实用python监控代码
- python内存监控工具memory_profiler和guppy的用法
- python 模拟登陆weibo 代码 已验证
- 用python实现简易内存监控
- 利用meliae来监控python进程的内存占用情况
- Python模拟登陆实现代码
- Python代码中的捕捉性能-内存分析
- Python模拟登录验证码(代码简单)
- 实用python监控代码
- 用python 10min手写一个简易的实时内存监控系统
- python3.3教程之模拟百度登陆代码分享
- Python在windows下模拟按键和鼠标点击代码