nova 中读取proc/meminfo
来源:互联网 发布:域名的所有权 编辑:程序博客网 时间:2024/06/11 15:18
在nova/libvirt/host.py 中的get_memory_mb_used会读取proc/meminfo。源码如下:ef get_memory_mb_used(self): """Get the used memory size(MB) of physical computer. :returns: the total usage of memory(MB). """ if sys.platform.upper() not in ['LINUX2', 'LINUX3']: return 0 with open('/proc/meminfo') as fp: m = fp.read().split() idx1 = m.index('MemFree:') idx2 = m.index('Buffers:') idx3 = m.index('Cached:') avail = (int(m[idx1 + 1]) + int(m[idx2 + 1]) + int(m[idx3 + 1])) # Convert it to MB return self.get_memory_mb_total() - avail // units.Ki可见这里通过open 打开proc/meminfo 文件,详细的parse 如下:linux-eabw:~ # cat /proc/meminfo MemTotal: 263878132 kBMemFree: 262125224 kBMemAvailable: 261697292 kBBuffers: 2196 kBCached: 821680 kBSwapCached: 0 kB>>> with open('/proc/meminfo') as fp:... m = fp.read().split()... >>> m['MemTotal:', '263878132', 'kB', 'MemFree:', '262121912', 'kB', 'MemAvailable:', '261693340', 'kB', 'Buffers:', '2196', 'kB', 'Cached:', '821332', 'kB', 'SwapCached:', '0', 'kB', 'Active:', '720800', 'kB', 'Inactive:', '261540', 'kB', 'Active(anon):', '159636', 'kB', 'Inactive(anon):', '9520', 'kB', 'Active(file):', '561164', 'kB', 'Inactive(file):', '252020', 'kB', 'Unevictable:', '80', 'kB', 'Mlocked:', '80', 'kB', 'SwapTotal:', '2104316', 'kB', 'SwapFree:', '2104316', 'kB', 'Dirty:', '0', 'kB', 'Writeback:', '0', 'kB', 'AnonPages:', '159132', 'kB', 'Mapped:', '100644', 'kB', 'Shmem:', '10104', 'kB', 'Slab:', '128496', 'kB', 'SReclaimable:', '57512', 'kB', 'SUnreclaim:', '70984', 'kB', 'KernelStack:', '12336', 'kB', 'PageTables:', '2856', 'kB', 'NFS_Unstable:', '0', 'kB', 'Bounce:', '0', 'kB', 'WritebackTmp:', '0', 'kB', 'CommitLimit:', '134043380', 'kB', 'Committed_AS:', '1008196', 'kB', 'VmallocTotal:', '135290290112', 'kB', 'VmallocUsed:', '0', 'kB', 'VmallocChunk:', '0', 'kB', 'AnonHugePages:', '79872', 'kB', 'CmaTotal:', '0', 'kB', 'CmaFree:', '0', 'kB', 'HugePages_Total:', '0', 'HugePages_Free:', '0', 'HugePages_Rsvd:', '0', 'HugePages_Surp:', '0', 'Hugepagesize:', '2048', 'kB']>>> idx1 = m.index('MemFree:')>>> idx13>>> int(m[idx1])Traceback (most recent call last): File "<stdin>", line 1, in <module>ValueError: invalid literal for int() with base 10: 'MemFree:'>>> int(m[idx1+1])262121912>>>
阅读全文
0 0
- nova 中读取proc/meminfo
- /proc/meminfo
- /proc/meminfo
- /proc/meminfo
- /proc/meminfo
- /proc/meminfo
- /proc/cpuinfo /proc/meminfo
- linux /proc/cpuinfo /proc/meminfo
- /proc/meminfo详解
- cat /proc/meminfo
- /proc/meminfo 详解
- /proc/meminfo文件分析
- cat /proc/meminfo
- /proc/meminfo文件分析
- /proc/meminfo文件分析
- /proc/meminfo信息介绍
- #cat /proc/meminfo 详细
- cat /proc/meminfo
- 学习网站总结
- SDUT-2712 派生类的构造函数
- 创建基本的搜索页面
- Splunk App for Stream
- uva 10934 Dropping water balloons
- nova 中读取proc/meminfo
- (七)短信验证码
- The CATALINA_HOME environment variable is not defined correctly
- 第六章
- Javascript DOM使用知识
- Ehcache详细解读
- Linux 设备驱动的重点、难点
- ERP实施技巧:用正确的方法做正确的事
- lucene和solr的区别