我有一台24GB内存的服务器,带有超线程的四核xeon。我需要在我的服务器应用程序中创建一个线程池。线程池的最大线程有哪些指导原则?
由于
答案 0 :(得分:0)
我通常会选择2倍数量的CPU核心。如果所有线程都忙,这几乎不会产生任何性能损失,但确保如果某些线程执行I / O,则CPU还有其他工作要做的就是空闲。
答案 1 :(得分:0)
没有更多详细信息的唯一可能答案是:添加线程,直到资源耗尽。找一些监视系统资源的工具,并通过实验来实现:在应用程序中添加越来越多的线程,同时密切关注监视器。
如果作业主要是CPU密集型,您可能会使用n_cores + 1
个帖子。
如果IO具有延迟(例如,抓取网站),您将添加更多线程。
如果它使用大量内存,您将添加线程,直到您使用所有24gb内存。