答案1
您很可能超出了硬件的工作能力。有太多 CPU 同时尝试排队和处理工作 - 超出了物理硬件的实际能力。
您的多线程软件正在花时间等待……自己。这些共享资源可能是共享内存、共享服务器,甚至是磁盘。
Native_queued_spin_lock_slowpath
是
自旋锁。这样的锁应该只是短暂地、偶尔地“旋转”,但您的锁却旋转了很多次。花在“旋转”上的 CPU 时间是 100% 浪费的时间。
您只需要分配足够的 CPU 来处理任务即可。如果分配更多的 CPU 来执行任务,导致它们只是相互等待,那么您将一事无成,尤其是考虑到它们在自旋锁中浪费了 CPU 时间,而它们本应该做一些有用的事情。
您应该减少使用的 CPU 数量。如果您确实需要这样的性能,您可以使用“亲和性”规则在 CPU 之间分配计算资源。
另请参阅帖子 为什么拥有更多更快的内核反而会使我的多线程软件变得更慢?