天天看點

java.lang.outofmemoryerror unable to create new native thread

最近發現項目運作中總是會出現一個問題。

java.lang.outofmemoryerror unable to create new native thread
           

問題的原因是java線程開啟過多,超過了伺服器的負載。

我們的項目是因為調用了騰訊雲的cos,它最下來一句很小的shutdowm沒看到,是以導緻了線程開啟過多。

排查方式。網上說用ulimit -n。可自行嘗試。

我這邊使用的是:

pstree -up | less
           

傳回類似

|-java(4793,user)-+-{java}(4795)
           |                    |-{java}(4796)
           |                    |-{java}(4797)
           |                    |-{java}(4798)
           |                    |-{java}(4799)
           |                    |-{java}(4800)
           |                    |-{java}(4801)
           |                    |-{java}(4802)
           

4793為程序ID

可以看到 4793 的程式開啟了8個線程。

我們項目有一個開啟了上萬線程。必然是有問題了。