我有一个生成多个子进程的应用程序,然后这些子进程继续生成多个线程。我可以控制产生的进程和线程的数量。线程对 NAS 执行特定的读/写操作,我记录了这需要多长时间。
奇怪的是,多线程执行读/写操作所需的时间更长。我在启动应用程序之前和完成后阅读了 /proc/stat 并得到了这个(经过一些数学运算):
cpu0: 1.0050% usrtime, 2.5126% systime, 95.4774% idle, 0.5025% softirq
cpu1: 0.0000% usrtime, 0.0000% systime, 100.0000% idle, 0.0000% softirq
我还检查了 sched_getaffinity,并且为子进程启用了两个 CPU。除了产生多个线程之外,我还必须做些什么来利用多个内核吗?