Total Pageviews

Monday, 1 February 2016

OpenVZ VPS内存分析工具/超售检查脚本

一个python脚本,用来查看OpenVZ VPS内存情况的,原始数据取自/proc/user_beancounters文件,脚本内做了一个数据简单的分析提取和可视化提高的工作,已经很晚了,先搞几个基本功能出来,增强功能以后再补。

    用法: python vz_checker.py /proc/user_beancounters (需要root权限)
    输出内容:
filename is:[user_beancounters]
Kernel Mem Info:                                   used:[5.723M] max_used:[35.539M] limit:[2048.000M] fail_count:[0]
Mem already allocated Info:                        used:[17.621M] max_used:[33.074M] limit:[96.000M] fail_count:[0]
Ram actually used:                                 used:[8.516M] max_used:[67.820M] limit:[96.000M] fail_count:[0]
Mem (Ram + swap) used:                             used:[9.848M] max_used:[13.219M] limit:[96.000M] fail_count:[0]

Kernel Mem Info:占用的内核内存大小,不可被swap,主要用来存放进程数据等。
Mem already allocated Info:已分配的内存大小,limit即为burst内存大小。
Ram actually used: 实际占用的物理内存大小。
Mem (Ram + swap) used:  占用的物理内存和swap大小。

如果  实际占用的物理内存 == 占用的物理内存和swap大小  那么恭喜你,你的vps里运行的程序都在内存中,主机超售不严重。
如果  实际占用的物理内存 <   占用的物理内存和swap大小   情况不妙,主机已经开始占用swap了,超售比较严重了。

另外我在测试过程中发现有一台vps实际占用物理内存大小显示比物理内存+swap总和还要大,现象很奇怪,查了一些资料没有关于这方面的说明,待后续调查。

脚本功能还比较粗糙,一些数据需要继续打磨.

源码地址:https://github.com/snooda/openvz_checker