gpt4 book ai didi

linux - 如何在 Python 中检测我的 RAM 可用空间和总空间?

转载 作者:太空宇宙 更新时间:2023-11-04 11:31:13 24 4
gpt4 key购买 nike

所以,标题描述了几乎所有必要的回答我的问题。还有一件事:请回复关于默认安装 Python 的库,因为我正在开发的应用程序是 Ubuntu 应用程序摊牌的一部分。

运行 Python 2.7、Ubuntu 12.04。

最佳答案

您要的是一个几乎无法计算且值(value)很小的数字。

任何运行一段时间的 Linux 系统都几乎没有可用的“免费”内存。只需 cat /proc/meminfo - MemFree 条目通常只有几兆字节。

那么,那段内存去了哪里?

对于初学者来说,内核会缓存所有磁盘访问。这通常在 Cached 条目中可见。当您需要更多内存时,磁盘缓存将被修剪,因此您可以将该数字添加到 MemFree

但是,如果应用程序在具有恰好 2 GB RAM 的系统上分配(C 中的 malloc())2 GB,通常只会被授予:您会得到一个有效的指针。然而,实际上没有任何 RAM 是为您的应用程序保留的——只有当您的应用程序开始接触内存页面时才会发生——每个接触的页面都会被分配。您可以请求的最大大小作为 CommitLimit 提供。

但应用程序代码本身可能也不在 RAM 中 - 二进制文件和库是 mmapp()ed,所以同样只有被触摸的页面才会加载到 RAM 中。

如果您运行 top 之类的工具 - 您将获得每个进程的各种内存信息,包括 VIRT、RES 和 SHR。

  • VIRT 代表“虚拟”——应用程序在声明其请求的所有页面时所需的所有内存页面。
  • RES 是“常驻”——实际使用的内存量
  • SHR 是“共享的”- 与其他应用程序共享的页面数量,例如在多个应用程序中加载的库。

那么,知道有多少内存可用有什么值(value)呢?您可以启动一个应用程序,该应用程序可能需要比您的系统拥有的内存多得多的内存,但它仍然运行...您甚至可以运行该应用程序两次或三次 - 无论如何共享代码页...

注意:上面的答案删减了不少,真正的机制要复杂得多。而且我什至还没有开始将交换空间带入故事中。但这对你有用,我希望......

关于linux - 如何在 Python 中检测我的 RAM 可用空间和总空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11164651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com