加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 启用超线程 – 在Ubuntu Precise 64位上导致qthread创

发布时间:2020-12-13 16:34:44 所属栏目:Linux 来源:网络整理
导读:我们最近为一些繁重的工作设置了HP ProLiant DL360p服务器.由于某种原因,我们在设置时禁用了系统B IOS中的超线程.作为双CPU 8核系统,它给了我们16个硬件线程. 32 GB RAM.我们正在运行64位的Ubuntu 12.04. 完成的大部分工作是通过VHDL“合成器”或编译器完成
我们最近为一些繁重的工作设置了HP ProLiant DL360p服务器.由于某种原因,我们在设置时禁用了系统B IOS中的超线程.作为双CPU 8核系统,它给了我们16个硬件线程. 32 GB RAM.我们正在运行64位的Ubuntu 12.04.

完成的大部分工作是通过VHDL“合成器”或编译器完成的.它是QT应用程序,但通常以命令行模式运行(无GUI).这个编译器在过去几周一直运行良好,由一个持续集成系统(Jenkins)启动.

今天我们重新启用超线程以访问所有32个硬件线程.但是现在这个编译器在我可以设想的每种情况下都会挂起以下错误:

QThread :: start:线程创建错误:资源暂时不可用

该过程似乎停滞不前,并没有在任何CPU上忙,并且ctrl-c会中断它.

我做了一些在线搜索,看起来这可能与操作系统最大线程限制有关,但我不知道如何改变它.无论如何,默认值大约为800个线程,这对于只运行少量(可能是2?)的编译器来说应该足够了.

与此同时,我将不得不禁用超线程,但我想知道这是否是运行64位Linux的高端服务器的已知问题?有没有已知的解决方法?或者它更可能是特定应用程序的问题?

解决方法

你能描述一下这个过程是如何开始的,并从尽可能接近的上下文中为我们提供ulimit -a的输出吗?

正如pthread_create(3)解释的那样,你遇到了:

ERRORS
       EAGAIN Insufficient  resources  to create another thread,or a system-
              imposed limit on the number of threads  was  encountered.   The
              latter  case  may  occur  in  two  ways:  the RLIMIT_NPROC soft
              resource limit (set via setrlimit(2)),which limits the  number
              of  process  for  a  real user ID,was reached; or the kernel's
              system-wide limit on  the  number  of  threads,/proc/sys/ker                        

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读