用于管理cgroup的python库

cgroupsp的Python项目详细描述


[![构建状态](https://travis ci.org/cloudsigma/cgroupspy.svg)(https://travis ci.org/cloudsigma/cgroupspy)
cgroupspy
==


用于管理cgroups的python库

该库提供了管理和表示cgroups的python方法。它提供了将python对象转换为cgroup兼容字符串的接口,反之亦然。




trees
----
cgroupspy有两种方法将cgroup文件系统表示为树-这是表示它们的最基本和通用的方法。您基本上是从cgroup根目录中的所有
目录构造它的。

*一个分组树-它可以访问同一级别上具有相同名称的所有cgroup分区。例如-
内存、cpuset、cpu等cgroup中的“machine”分区。所有这些属性都可以通过machine.cpus、machine.cpuset等访问


*vmtree-分组树的一个子类,具有简单管理libvirt来宾的实用程序

从cgroupspy导入树

这是cgroup tree的最基本类型。它对文件系统进行建模。
>>gt;t=treets.tree()

;它的根节点类型为node
>>;t.root
<;node/>>;
>
>;t.root
>;t.root
>;它的根节点类型为node
;它的根节点类型为node
;它的根节点类型为child子女;打印(t.root.childldren)打印(t.root.children
>>
>;打印(t.root.children)打印(t.root.children)(打印(t.root.root.children)
>>>>;,<;节点/blkio>;,<;节点/net\u cls>;,<;节点/frequer>;、<;节点/devices>;、<;节点/内存>;、<;节点/cpuacct>;、<;节点/cpu>;、<;节点/cpuset>;、<;节点/systemd>;、<;节点/cgmanager>;]

;例如,您可以获得cpuset
>;<;节点/cgmanager>;]

>>>;cset=t.get节点按路径('/cpuset/cpuset/')
>;gt;>;、<;节点/cpu>;、<;节点/cpu>;、<;节点/cpuset>;>>cset
<;节点/cpuset>;



>该cgroup所使用的控制器是cpu set controller
>>;cset.controller
<;cgroupspy.controllers.cpusetcontroller对象,位于0x7f63a3843843050>;

>
;例如,它可以显示cpu pinning
>;cset.controller.cset.controller.cpus







;您可以创建一个cgroup
>>




;您可以创建一个cgroup,您可以创建一个cgroup组。>;>;>;测试=cset.create_cgroup('test')
<;node/cpu set/test>;

测试。控制器。CPU
>设置([1])
````




>另一个使用vmtree的例子-用于管理libvirt来宾

>
``` python
>>>>>;从cgroupspy.trees导入vmtree
>;vmt=vmtree()
>;打印(vmt.vms)
{{u'1ce10f47-fb4e-4b6a-8ee6-ba34940cd47.libvirt qemu'''libvirt qemu''''':<;NodeVM 1ce10f47-fb4e-4b6a-8ee6-ba34940cdda7.libvirt-qemu>,
u'3d5013b9-93ed-4ef1-b518-a2cea43f69ad.libvirt-qemu': <NodeVM 3d5013b9-93ed-4ef1-b518-a2cea43f69ad.libvirt-qemu>,
}

>>> vm = vmt.get_vm_node("1ce10f47-fb4e-4b6a-8ee6-ba34940cdda7")
>>> print(vm.cpu.shares)
1024
>>> 打印(vm.cpuset.cpus)打印(vm.children)打印(vm.children)打印(vm.memory.limit以字节为单位)打印(vm.memory.limit以字节为单位)
{0、1、1、2、2、3、3、4、5、6、7、8、9、10、11、12、13、14、14、12、13、14、14、15}
>>;打印(vm.children)打印(vm.children)
[<;nodecontrolgroup vcppu1>;
>><;nodecontrolgroup vcppu0>;
>;
<;nodetrolgroup模拟器>;]
>;>;打印(vm.path)
/machine/gray/1CE10F47-FB4E-4B6A-4B6A-8EE6-BA34940CDDA7.libvirt qemu
>;vcpu1=vm.children[0]
>;打印(vcpu1.cpuset.cpus)
{{1,2,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1,2,3,3,4,5,6,7,8,9,10,11,11,12,13,11,11,12,13,14,14,15}
>
>>>
>>>>>>>>;CPU={1,2,3}

>;>>打印(vcpu1.cpuset.cpus)
{1,2,3}
```

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将Scanner对象作为构造函数参数传递给UserInterface类   spring未能启动bean“subtocolWebSocketHandler”;嵌套的例外是java。lang.IllegalArgumentException:没有处理程序   Java EE应用程序中后台服务的多线程Java线程(设置守护进程和优先级)?   java Pull to refresh返回列表的第一个位置   无法将comparator类转换为java。可比的   java将json从servlet传递到dojo   JavaHibernate:将子类实例转换为超类实例   java警告调用servlet类时非法反射访问   java静态变量值   java@Entity和@embeddeble之间有什么区别   java将作业配置导入公共作业配置类(注释配置)   sql公共表表达式(以values语句开头)在java中给出错误   java在ImageJ中使用ImageProcessor   java PostgreSQL executeBatch()会随着时间的推移而变慢   java在安卓中以表格形式排列sqllite表数据?   java中SVG的swing定制呈现   java删除与另一个实体映射的实体   java何时/如何添加ListView适配器,使用back按钮恢复它?(片段)   java为什么IBinder和Binder之间的类型转换不是非法的?   java在方法参数列表中使用ArrayList或List