我有一台 16 核的 Linux 机器。
// uname -a
Linux lndbxdev01 2.6.24.7-108.el5rt #1 SMP PREEMPT RT
Mon Mar 23 10:58:10 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
// OS detail
Red Hat Enterprise Linux Server release 5.3 (Tikanga)
我想安排进程亲和性,以便 1 个 CPU 完全专用于 1 个进程。
当我说完全专用时,我的意思是我真的想将任何其他正在运行的守护进程IRQ-nnnn, rpciod/nn
等绑定到所有可用的 CPU,除了我的进程感兴趣的那个。(在我的操作系统上,我可以数出大约 500 个进程)。
- 这样做是安全的还是我应该关心让它们中的一些在它们当前运行的 CPU 上?
- 如果我至少绑定 IRQ,性能会更好吗?
由于这些连接到经常触发的中断,因此它们会导致频繁的进程上下文切换,因为内核必须调用它们。
我期待以下好处:
- 因为会有一个进程运行一个 CPU,所以根本不会有进程上下文切换。
- 在该 CPU 上分配给我的进程的时间片将增加,因此它会在进程上下文切换(如果有)之前运行更长时间。
亲切的问候 AFG