1

我有一个生成多个子进程的应用程序,然后这些子进程继续生成多个线程。我可以控制产生的进程和线程的数量。线程对 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。除了产生多个线程之外,我还必须做些什么来利用多个内核吗?

4

1 回答 1

3

你几乎没有使用你的 CPU。使用网络附加存储,您的瓶颈很可能是您的网络连接。您正在推送多少数据以及您的管道(和您的 NAS)可以容忍多少带宽?

于 2012-04-23T23:53:09.317 回答