我正在尝试在使用 OpenVZ 虚拟化并运行 CentOS 6.x 的 4vCpu VPS 上设置 mysql(最新的 Percona 服务器)的关联。
我正在运行的命令是taskset -pc 0-1 1026. 我也试过0,1。输出是:
pid 1026's current affinity list: 0-3
pid 1026's new affinity list: 0-3
Run Code Online (Sandbox Code Playgroud)
所以,它似乎没有“粘住”。可以通过再次运行 taskset 以找到进程可用的 CPU 来确认。这可能是我的虚拟化类型的问题吗?
我这样做是因为我时不时地需要 mysql 来非常努力地运行,并且超过 2.0-4.0 超过 2 个小时让我重新启动我当前的提供程序。
是否有明确的原因为什么这不起作用,或者需要更多的故障排除?
Mic*_*ton 10
在 OpenVZ 容器中忽略 CPU 关联掩码。你将无法让它“工作”。
在基于 RHEL5 的内核中,我们有虚拟 CPU 的概念:任务被安排在 vcpus 上,而 vcpus 以某种方式分布在物理 CPU 上。然后可以使用 sched_setaffinity 系统调用将任务绑定到 vcpus。
这个概念很麻烦,而且通常不是最优的,所以在 RHEL6 中我们决定放弃它:当前为容器设置 nr_cpus 限制实际上等同于设置 cpulimit。最新的 Linux 调度程序足够聪明,可以将主动交互的任务聚集在一起,因此不需要人为地限制并行性,这一事实证明了这一决定是合理的。
因此,CPU 亲和性支持被取消。任务仍然可以使用 sched_setaffinity 系统调用,但它将被忽略。
| 归档时间: |
|
| 查看次数: |
1178 次 |
| 最近记录: |