操作socket报Too many open files errno :24错误解决方法
生活随笔
收集整理的這篇文章主要介紹了
操作socket报Too many open files errno :24错误解决方法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在使用socket時(shí),發(fā)現(xiàn)在壓力測(cè)試一陣子后,在accept函數(shù)中會(huì)報(bào)Too many open files errno :24錯(cuò)誤
if ((connfd = accept(listenfd, NULL, NULL)) == -1) {printf("accpet socket error: %s errno :%d", strerror(errno), errno);continue;}通過(guò)壓力測(cè)試此程序,發(fā)現(xiàn)此進(jìn)程很快就達(dá)到了最大進(jìn)程的上限fd限制1024
lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more1023 /usr/sbin/initdaemon45 /bin/busybox查看code時(shí)發(fā)現(xiàn)確實(shí)是connfd沒(méi)有及時(shí)關(guān)閉導(dǎo)致,添加close就可以解決此問(wèn)題。
close(connfd);通過(guò)指令查看進(jìn)程的fd,發(fā)現(xiàn)一直穩(wěn)定在118數(shù)量,應(yīng)該是沒(méi)有問(wèn)題了。
# 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總結(jié)
以上是生活随笔為你收集整理的操作socket报Too many open files errno :24错误解决方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Dragon Quest VIII 流程
- 下一篇: 监测磁盘文件是否被修改程序