- 浏览: 90707 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
pypy:
恩,这个可能是设计上方向的问题,
不过,你可以看下 stat ...
python获得磁盘剩余空间 statvfs -
Zandy:
Deprecated since version 2.6: T ...
python获得磁盘剩余空间 statvfs -
coffeesweet:
对这个不是很熟,回头看看API
python获得磁盘剩余空间 statvfs -
pypy:
1. 要写成客户端应用,及时收集相关信息,并通过网络上报到中心 ...
python 监控 linux cpu 使用率 -
Zandy:
高射炮打蚊子啊,用shell多简单
python 监控 linux cpu 使用率
在做视频编解码的程序,需要fork子进程去调用转码的tools做encode, 这里面就需要能很好的控制进程,让进程类似于跑在沙漏里面,安全,可控的运行,
实现进程的管理接口,其实比较简单的,所有的进程信息来源,均来自 /proc 文件系统
因为是所有进程相关的信息都是通过读取内存proc文件系统,所以没有任何性能问题,
所以对进程的信息采集,都是可以通过读取/proc文件系统获得
但已经有开源实现如下
A process utilities module
http://code.google.com/p/psutil/
获得当前系统上所有正在运行的进程(pid)
获得指定进程pid的一些详尽信息以及控制
主要信息是:
1. get_cpu_percent() 获得当前CPU使用百分比
2. get_cpu_times() 获得该进程使用cpu滴答,可以做一些CPU资源限制,比如指定进程能够使用CPU的总时钟滴答,超过可以强制杀掉
3. create_time 获得该进程已经运行的墙上时间,可以做为控制进程运行时间的依据,比如指定进程可以运行的时间timeout
4. get_memory_percent() 获得该进程当前占用内存的情况,可以作为控制进程内存使用量方面的控制
5. is_running 判断该进程是否在running list上
6. suspend() 可以将该进程暂时挂起
7. kill() 用来杀死进程主要是向该进程发送SIGKILL信号,回收资源
除了针对指定的进程进行监控之外,还可以获得该物理机器的负载信息
1. psutil.cpu_percent() 获得当前物理机器总的CPU使用率
2. psutil.cpu_times() 获得CPUtimes累计使用量,可以用于计费
3. psutil.TOTAL_PHYMEM
psutil.avail_phymem()
psutil.used_phymem()
获得当期机器的物理内存使用情况(以字节为单位)
4. psutil.total_virtmem()
psutil.avail_virtmem()
psutil.used_virtmem()
获得当前机器的虚拟内存使用情况(以字节为单位)
实现进程的管理接口,其实比较简单的,所有的进程信息来源,均来自 /proc 文件系统
因为是所有进程相关的信息都是通过读取内存proc文件系统,所以没有任何性能问题,
tommy@tommy-desktop:~$ cd /proc/ tommy@tommy-desktop:/proc$ ls 1 1176 13 1340 14 1451 15736 20444 20460 240 33 43 59 636 756 8 9299 crypto irq modules swaps 10 11887 1300 1346 1402 1461 16 20445 20461 25 34 44 594 640 76 80 9305 devices kallsyms mounts sys 1025 12 1306 1347 1404 1462 1675 20446 20462 257 35 45 596 641 760 81 9319 diskstats kcore mtrr sysrq-trigger 1085 1214 1309 1352 1413 1467 17 20447 20646 26 36 46 598 66 768 82 9321 dma key-users net sysvipc 1091 1232 1310 1358 1414 14734 18 20448 21 27 362 5 6 67 77 828 9323 dri kmsg pagetypeinfo timer_list 1098 1263 1313 1363 1428 1496 19 20449 2164 28 37 51 60 7 770 83 9340 driver kpagecount partitions timer_stats 11 1271 1314 1365 1430 15 2 20450 218 284 38 52 61 70 773 833 acpi execdomains kpageflags sched_debug tty 1105 1273 1318 1367 1432 151 20 20451 22 287 39 53 618 71 779 84 asound fb latency_stats schedstat uptime 1134 1277 1325 1370 1433 1517 20439 20453 23 29 4 54 62 716 78 9 buddyinfo filesystems loadavg scsi version 1135 1285 1327 1376 1436 1520 20440 20454 236 3 40 55 621 72 781 9043 bus fs locks self version_signature 1136 1287 1333 1381 1441 15355 20441 20457 237 30 4093 56 627 73 784 9045 cgroups interrupts mdstat slabinfo vmallocinfo 1161 1288 1334 1386 1443 15550 20442 20458 238 31 41 57 630 74 785 9047 cmdline iomem meminfo softirqs vmstat 1170 1294 1339 1391 1449 15596 20443 20459 239 32 42 58 632 75 79 922 cpuinfo ioports misc stat zoneinfo tommy@tommy-desktop:/proc$
所以对进程的信息采集,都是可以通过读取/proc文件系统获得
但已经有开源实现如下
A process utilities module
http://code.google.com/p/psutil/
获得当前系统上所有正在运行的进程(pid)
tommy@tommy-desktop:~/workerpool/worker/apps/health$ python Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import psutil >>> psutil.get_pid_list() [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 66, 67, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 151, 218, 236, 237, 238, 239, 240, 257, 284, 287, 362, 422, 425, 594, 596, 598, 618, 621, 627, 630, 632, 636, 640, 641, 716, 756, 760, 768, 770, 773, 779, 781, 784, 785, 828, 833, 922, 1025, 1085, 1091, 1098, 1105, 1134, 1135, 1136, 1161, 1170, 1176, 1214, 1232, 1263, 1271, 1273, 1277, 1285, 1287, 1288, 1294, 1300, 1306, 1309, 1310, 1313, 1314, 1318, 1325, 1327, 1333, 1334, 1339, 1340, 1346, 1347, 1352, 1358, 1363, 1365, 1367, 1370, 1376, 1381, 1386, 1391, 1402, 1404, 1413, 1414, 1428, 1430, 1432, 1433, 1436, 1441, 1443, 1449, 1451, 1461, 1462, 1467, 1496, 1517, 1520, 1675, 2164, 4093, 9043, 9045, 9047, 9299, 9305, 9319, 9321, 9323, 9340, 11887, 13354, 14734, 15355, 15550, 15596, 15620, 15621, 15629, 15630, 15735] >>>
获得指定进程pid的一些详尽信息以及控制
主要信息是:
1. get_cpu_percent() 获得当前CPU使用百分比
2. get_cpu_times() 获得该进程使用cpu滴答,可以做一些CPU资源限制,比如指定进程能够使用CPU的总时钟滴答,超过可以强制杀掉
3. create_time 获得该进程已经运行的墙上时间,可以做为控制进程运行时间的依据,比如指定进程可以运行的时间timeout
4. get_memory_percent() 获得该进程当前占用内存的情况,可以作为控制进程内存使用量方面的控制
5. is_running 判断该进程是否在running list上
6. suspend() 可以将该进程暂时挂起
7. kill() 用来杀死进程主要是向该进程发送SIGKILL信号,回收资源
>>> p=psutil.Process(20618) >>> dir(p) ['__class__', '__delattr__', '__dict__', '__doc__', '__eq__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_last_kern_time', '_last_sys_time', '_last_user_time', '_procinfo', 'cmdline', 'create_time', 'deproxy', 'get_cpu_percent', 'get_cpu_times', 'get_memory_info', 'get_memory_percent', 'getcwd', 'gid', 'is_proxy', 'is_running', 'kill', 'name', 'parent', 'path', 'pid', 'ppid', 'resume', 'suspend', 'uid', 'username'] >>> p.name 'aptd' >>> p.cmdline ['/usr/bin/python', '/usr/sbin/aptd'] >>> p.username 'root' >>> p.create_time 1289453012.6500001 >>> p.get_cpu_percent() 0.0 >>> p.get_cpu_times() (0.13, 0.39000000000000001) >>> p.get_memory_info() (11763712, 17235968) >>> p.get_memory_percent() 0.76203818681610258
除了针对指定的进程进行监控之外,还可以获得该物理机器的负载信息
1. psutil.cpu_percent() 获得当前物理机器总的CPU使用率
2. psutil.cpu_times() 获得CPUtimes累计使用量,可以用于计费
3. psutil.TOTAL_PHYMEM
psutil.avail_phymem()
psutil.used_phymem()
获得当期机器的物理内存使用情况(以字节为单位)
4. psutil.total_virtmem()
psutil.avail_virtmem()
psutil.used_virtmem()
获得当前机器的虚拟内存使用情况(以字节为单位)
发表评论
-
python 字典的扩展变形
2013-10-21 09:02 1460class AttrDict(dict): &q ... -
geohash的应用 附近地址搜索
2013-08-16 11:17 3469http://en.wikipedia.org/wiki/Ge ... -
openstack swift GB/month
2013-01-04 12:06 1261http://www.buildcloudstorage.co ... -
swift benchmark 转载
2012-12-26 11:09 1209具体测试移步到下面的blog URL http://www.z ... -
openstack-folsom-architecture 记录
2012-12-26 10:34 990http://ken.pepple.info/o ... -
An Introduction to the Python Web Server Gateway Interface
2012-12-05 13:51 1345非原创,来源互联网 In Brief WSGI is a ... -
openstack swift Cluster Health and Telemetry
2012-12-04 17:55 2178之前看swift的code主要关注在ring,proxy-se ... -
paste deploy python ini 配置文件简单说明
2012-12-03 13:27 4016配合 http://www.python.org/dev/pe ... -
python 反射
2012-03-20 10:31 799如何在python中实现 类似java中,Class.forN ... -
Webpy + Nginx with FastCGI
2010-11-10 16:50 1832Requirements * Nginx 0.8.* ... -
worker pool
2010-09-27 17:28 988http://celeryq.org/ Overview ... -
sandbox for python
2010-09-27 14:47 1673遇到一台机器上部署多个不同的python程序,管理其之间imp ... -
python get host ip socket
2010-08-11 08:57 1529[root@CT53-64-BASE tools]# pyth ... -
整数转换成二进制
2010-05-20 09:25 1249>>> bin = lambda n : ( ... -
python获得磁盘剩余空间 statvfs
2010-04-01 14:43 8623在linux上工作大家都会用到df命令 [tommy@tom ... -
python 监控 linux memory 使用率
2009-11-09 13:30 1867定时获得服务器上内存的使用率 linux的内存使用跟win是 ... -
python 监控 linux cpu 使用率
2009-11-09 13:18 3610最近一个应用特别的吃cpu,又是和已有的应用复用机器,故所以对 ... -
python异常捕获try except
2009-06-29 13:14 12889python的异常处理机制设计的比较传统,在日常的开发中,基本 ... -
python adodb 支持mysql非标准端口
2009-06-14 19:08 1918python对数据库的操作大多是基于 MySQLdb 模块 ... -
python安全管理子进程-subprocess
2009-06-10 20:14 3331经常会用到python去调用外部 工具或者命令去干活 有的时 ...
相关推荐
系统实现了基于Java的Linux运维监控工具Wgcloud,支持系统硬件信息、内存、CPU、温度、磁盘空间及IO、硬盘SMART、系统负载、网络流量等监控,服务接口监测,大屏展示,拓扑图,端口监控,进程监控,Docker监控,日志...
在测试环境、每日构建的集成环境,可以把一系列编译输出等jar文件放入约定的目录,由Jarboot提供友好的浏览器ui界面和http接口,统一管理它的启动、停止及状态的监控,以及执行命令对目标进程进行调试。 通常情况下...
在测试环境、每日构建的集成环境,可以把一系列编译输出等jar文件放入约定的目录,由Jarboot提供友好的浏览器ui界面和http接口,统一管理它的启动、停止及状态的监控,以及执行命令对目标进程进行调试。 通常情况下...
Linux 是在 1991 年发展起来的与 UNIX兼容的操作系统,可以免费使用,它的源代码 可以自由传播且可任人修改、充实、发展,开发者的初衷是要共同创造一个完美、理想并 可以免费使用的操作系统。 我们并不能使同学...
因为Linux与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至在有的系统中会损坏硬件设备(硬盘)。在系统关机前使用 shutdown命令,系统管理员会通知所有...
3.1进程与线程. . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 59 3.2单线程服务器的常用编程模型. . . . . . . . . . . . . . . . .. . . . . . . 61 3.3多线程服务器的常用编程模型. . . ....
内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...
内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...
内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...
内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...
内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...
FireKylin中文名称叫:火麒麟,其实跟某氪金游戏火麒麟并没有关系,作为国产的网络安全工具名称取自中国神兽:...对安装了监控功能的安全软件的主机来讲是非常友好的,不会对监控软件产生引起“误报安全事件”的命令
9.3.4 网络和进程监控 9.3.5 Fuzzing测试以及Sulley的Web界面 第10章 面向Windows驱动的Fuzzing测试技术 10.1 驱动通信基础 10.2 使用Immunity Debugger进行驱动级的Fuzzing测试 10.3 Driverlib——面向驱动的静态...
内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...
流监控器( ) 此Lightning App可以监视流事件:PushTopic事件,通用事件,标准和自定义平台事件,Change Data Capture事件以及监视事件。 :television: 特征: 订阅所有流事件(自动发现事件类型) 通过用户友好的...
调试友好,自动输入跟踪,远程监控无头浏览器 所有操作都是线程安全的 自动查找或下载 轻巧,没有第三方依赖项,在Linux,Mac和Windows上测试了 高级助手,如WaitStable,WaitRequestIdle,HijackRequests,...
Hyperf 还提供了 基于 PSR-11 的依赖注入容器、注解、AOP 面向切面编程、基于 PSR-15 的中间件、自定义进程、基于 PSR-14 的事件管理器、Redis/RabbitMQ 消息队列、自动模型缓存、基于 PSR-16 的缓存、Crontab 秒级...