在Python中获取当前系统状态(当前CPU,RAM,可用磁盘空间等)的首选方式是什么?* nix和Windows平台的奖励积分。
似乎有几种方法可以从我的搜索中提取出来:
os.popen("ps")
对于* nix系统使用a 或类似代码,对于Windows平台使用MEMORYSTATUSin ctypes.windll.kernel32
(请参见ActiveState
上的此配方)。可以将Python类与所有这些代码段放在一起。并不是说这些方法不好,而是已经有一种受支持的,跨平台的方法来做同样的事情?
psutil库将为你提供各种平台上的一些系统信息(CPU /内存使用情况):
psutil是一个模块,提供了一个接口,该接口通过使用Python以可移植的方式检索有关正在运行的进程和系统利用率(CPU,html" target="_blank">内存)的信息,实现了ps,top和Windows任务管理器等工具提供的许多功能。
它当前支持32位和64位体系结构的Linux,Windows,OSX,Sun Solaris,FreeBSD,OpenBSD和NetBSD,Python版本从2.6到3.5(Python 2.4和2.5的用户可以使用2.1.3版本)。
更新:这是一些示例用法psutil
:
#!/usr/bin/env python
import psutil
# gives a single float value
psutil.cpu_percent()
# gives an object with many fields
psutil.virtual_memory()
# you can convert that object to a dictionary
dict(psutil.virtual_memory()._asdict())
问题内容: 我发现这篇较旧的文章“ 如何在Java中监视计算机的 Cpu内存和磁盘使用情况”,并想问一下Java 7中是否有新内容。我想获取当前的CPU- ,我的应用程序的RAM,netzwork和netzwork的使用情况。它必须适用于linux(mac)和Windows。数据不能太详细,三个值就足够了(cpu:10%,Ram 4%,Network 40%)。如果数据仅用于应用程序而不是整个操作
问题内容: 我的Go程序需要知道所有系统和用户进程的当前cpu使用率。 我如何获得? 问题答案: 我遇到了类似的问题,但从未找到轻量级的实现。这是我的解决方案的精简版,可以回答您的特定问题。我按照tylerl的建议对文件进行采样。您会注意到,我在两次采样之间等待3秒以匹配top的输出,但是在1或2秒的情况下我也取得了不错的结果。我在go例程中的循环中运行类似的代码,然后在需要其他go例程时访问cp
问题内容: VBulletin如何不使用来获取系统信息?在没有exec的情况下,我还能获得关于服务器的其他信息吗?我对感兴趣: 使用的带宽 系统类型 CPU速度/使用率/数量 RAM使用 问题答案: 使用 PHPSysInfo库 phpSysInfo是一个开放源代码PHP脚本,它显示有关正在访问的主机的信息。它将显示如下内容: 正常运行时间 中央处理器 记忆 SCSI,IDE,PCI 乙太网路 软
问题内容: 我正在尝试获取%的总CPU使用率。首先,我首先要说“ top”根本不会做,因为cpu转储之间会有延迟,它需要2个转储和几秒钟的时间,这使我的程序挂起(我不想给它自己的线程) 我尝试的下一件事情是“ ps”,它是即时的,但总的总数总是很高(超过20),当我实际上让我的cpu做某事时,它保持在20左右… 还有其他方法可以获取总的CPU使用率吗?超过一秒还是更长的时间都没有关系……但是更长的
我有一个使用分布式TensorFlow的计划,我看到TensorFlow可以使用GPU进行训练和测试。在集群环境中,每台机器可以有0个或1个或多个GPU,我想在尽可能多的机器上将我的TensorFlow图运行到GPU中。 我发现在运行TensorFlow在日志消息中提供有关GPU的信息,如下所示: 我的问题是如何从TensorFlow获取当前可用GPU的信息?我可以从日志中获取加载的GPU信息,但
问题内容: 如何确定Linux中Shell的当前CPU使用率? 例如,我得到如下的平均负载: 输出: 问题答案: Linux没有任何提供当前CPU使用率的系统变量。取而代之的是,您必须阅读几次:各行中的每一列都给出了总的CPU时间,并且您必须对其进行后续读取才能获得百分比。请参阅本文档以了解各列的含义。