【问题标题】:Processing Power In Python [duplicate]Python中的处理能力[重复]
【发布时间】:2013-08-15 15:16:08
【问题描述】:

有没有办法监控 Python 程序中使用的处理能力?我的目标是如果有人在连接到我的服务器时使用过多的电量以防恶意使用,则终止程序。

【问题讨论】:

  • 您希望您的 Python 程序监控自己的 CPU 使用情况吗?或者你想监控其他程序的 CPU 使用率?
  • 你确定这是你想要的吗?它不会停止像fork bomb 这样的事情。您将如何确定某个东西是恶意的,还是目前机器上 CPU 最密集的东西?
  • 此外,几乎每个系统都有内置的方法来限制进程。在 Windows 上,这些非常复杂(并且通常隐藏在非服务器版本中,并且因版本而异);在大多数 *nix 系统上,它可以像在启动 Python 解释器之前从 shell 调用 ulimit 一样简单。
  • 这是一个相关线程:stackoverflow.com/questions/276052/…

标签: python


【解决方案1】:

即使 psutil 以相对独立于操作系统的方式提供操作系统级别的信息,有时最好指示直接与本地操作系统交互。在 API 级别这样做可能会被视为过于复杂且难以调试。如果是这种情况,在 Windows 的情况下一些有用的替代方案是:

wmic process list full

和

wmic path Win32_PerfFormattedData_PerfProc_Process get Name,PercentProcessorTime 

这是与 *nix 更知名的 ps 最接近的 Windows。

然后,建议是“Popen”它们,并将它们的输出通过管道传回以供分析。我的理解是至少第一个(wmic process)支持连续模式。

【讨论】:

    【解决方案2】:

    psutil

    >>> for x in range(3):
    ...     psutil.cpu_percent(interval=1, percpu=True)
    ... 
    [4.0, 6.9]
    [7.0, 8.5]
    [1.2, 9.0]
    

    【讨论】:

      【解决方案3】:

      psutil 非常方便监控进程和 CPU 使用情况。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-09
        • 2018-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多