1
lushl9301 2015-03-26 09:21:47 +08:00 1
|
2
fangdingjun 2015-03-26 09:33:07 +08:00
如果内核编译了cpu热插拔支持, 向/sys/ 目录下的某个文件写0 就可以关闭cpu
|
3
gdqyn OP @fangdingjun 之前看到过这个方法,是向/sys/devices/system/cpu/cpu<X>/online文件写0,但是没找到online文件,刚才刚刚发现,cpu0文件夹下是没有online文件的,其他cpu都有,这个方法也可以关核心
|
4
monnand 2015-03-26 12:12:56 +08:00 1
先问问楼主为什么要这么做,因为不同目的有不同的方法。
如果仅仅是想让一个进程以及它的子进程跑在一个CPU/core上,那么可以考虑用cgroups来实现。一个简单的方法是:把你要跑的程序放在一个docker container里,跑的时候指定cpuset这个参数。具体参见这里: http://stackoverflow.com/questions/25998737/limiting-a-docker-container-to-a-single-cpu-core 简单说,就是这行这条命令:docker run --cpuset="0" <你要跑的container名字> 如果对linux container的底层实现感兴趣,参考这里: https://www.kernel.org/doc/Documentation/cgroups/cpusets.txt 如果楼主是希望通过关闭CPU/core来达到省电的目的,那么以上方法可能就不那么有效了。不过看样子好像只是为了测试,所以应该不是希望物理关闭某个CPU/core。 |