操作socket报Too many open files errno :24错误解决方法
生活随笔
收集整理的這篇文章主要介紹了
操作socket报Too many open files errno :24错误解决方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在使用socket時,發現在壓力測試一陣子后,在accept函數中會報Too many open files errno :24錯誤
if ((connfd = accept(listenfd, NULL, NULL)) == -1) {printf("accpet socket error: %s errno :%d", strerror(errno), errno);continue;}通過壓力測試此程序,發現此進程很快就達到了最大進程的上限fd限制1024
lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more1023 /usr/sbin/initdaemon45 /bin/busybox查看code時發現確實是connfd沒有及時關閉導致,添加close就可以解決此問題。
close(connfd);通過指令查看進程的fd,發現一直穩定在118數量,應該是沒有問題了。
# lsof -p 6137 |wc -l lsof -p 6137 |wc -l 118 # lsof -p 6137 |wc -l lsof -p 6137 |wc -l 118 # lsof -p 6137 |wc -l lsof -p 6137 |wc -l 118 # lsof -p 6137 |wc -l lsof -p 6137 |wc -l 118 # lsof -p 6137 |wc -l lsof -p 6137 |wc -l 118總結
以上是生活随笔為你收集整理的操作socket报Too many open files errno :24错误解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dragon Quest VIII 流程
- 下一篇: python自加_浅谈:为什么pytho