runtime/cgo: pthread_create failed: Resource temporarily unavailable


用戶執行docker ps后,報錯:

$ docker ps

runtime/cgo: pthread_create failed: Resource temporarily unavailable

SIGABRT: abort

PC=0x7efca7dad387 m=0 sigcode=18446744073709551610

goroutine 0 [idle]:

runtime: unknown pc 0x7efca7dad387

stack: frame={sp:0x7ffdbda3a6c8, fp:0x0} stack=[0x7ffdbd23ba98,0x7ffdbda3aad0)

00007ffdbda3a5c8:  000055af6e558e7f <runtime.(*mheap).growAddSpan+271>  00007ffdbda3a600 

00007ffdbda3a5d8:  000055af6e54fe0e <runtime.(*mTreap).end+78>  0000000000000000 

00007ffdbda3a5e8:  00007efc00000001  0000000000000000 

00007ffdbda3a5f8:  00007ffdbda3a630  000055af6e57e7d7 <runtime.step+327> 

00007ffdbda3a608:  000055af708fbdf2  0000000000d08e00 

00007ffdbda3a618:  0000000000d08e00  00007ffdbda3a658 

00007ffdbda3a628:  000055af6e57e7a3 <runtime.step+275>  00007ffdbda3a6d8 

00007ffdbda3a638:  000055af6e57daba <runtime.pcvalue+346>  000055af70918a3f 

......

這里有一行報錯是,runtime/cgo: pthread_create failed: Resource temporarily unavailable,

即資源缺乏。

我嘗試用limit -u 10000來擴大用戶的限制參數,再次執行docker ps后不再報錯。

說明這個處理方法是對的,但這是臨時的,要想長期保持,需要更改配置文件。

1. 在文件/etc/security/limits.d/20-nproc.conf末尾添加

renyi      soft    nproc     60000

2. 在/etc/security/limits.conf末尾添加

renyi soft nproc 65535

renyi hard nproc 65535

renyi soft nofile 60000

renyi hard nofile 65535

如此,可以永久性的解決資源匱乏問題。

附注:nproc:示意max number of processes
nofile:示意max number of open file descriptors
hard與soft:soft是一個警告值,而hard則是一個真正意義的閥值,超過改值就會報錯。

結束。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM