标签:docker
taskset命令设置只在1和2号cpu运行sshd进程程序
[root@apenglinux-002 ~]# taskset -cp 1,2 914
pid 914‘s current affinity list: 0-3
pid 914‘s new affinity list: 1,2
查看id为1的进程在哪个cpu上运行
[root@apenglinux-002 ~]# taskset -cp 1
pid 1‘s current affinity list: 0-3
设置 nginx cpu亲和力
在 conf/nginx.conf 中,有如下一行:
worker_processes 1;
这里用来配置nginx启动几个工作进程,默认为1.而nginx还支持一个名为worker_cpu_affinity的配置项,也就是说,nginx可以为每个工作进程绑定cpu。如下配置:
worker_processes 3;
worker_cpu_affinity 0010 0100 1000
这里0010 0100 1000是掩码,分别代表第2、3、4颗cpu核心。
重启nginx后,3个工作进程就可以各自用各自的cpu了。
物理机一共用16个核心,创建的容器只能用0、1、2这三个内核
[root@apenglinux-002 ~]# docker run -itd --name cpu1 --cpuset-cpus 0-2 centos
eefe1ff3e567082c2d2d888911b239cfdc3407230f6c727ead05dfcf13368406
[root@apenglinux-002 ~]# cat /sys/fs/cgroup/cpuset/docker/eefe1ff3e567082c2d2d888911b239cfdc3407230f6c727ead05dfcf13368406/cpuset.cpu
cpuset.cpu_exclusive cpuset.cpus
[root@apenglinux-002 ~]# cat /sys/fs/cgroup/cpuset/docker/eefe1ff3e567082c2d2d888911b239cfdc3407230f6c727ead05dfcf13368406/cpuset.cpus
0-2
进入容器测试
通过docker exec <容器id或名字> taskset -c -p 1(容器内部第一个进程编号一般为1),可以看到容器中进程与cpu内核的绑定关系,可以认为达到了绑定cpu内核的目的。
[root@apenglinux-002 ~]# docker exec cpu1 taskset -cp 1
pid 1‘s current affinity list: 0-2
标签:docker
原文地址:http://blog.51cto.com/13480443/2097581