免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: wyezl

epoll模型的使用及其描述符耗尽问题的探讨 [复制链接]

论坛徽章:
0
发表于 2006-08-22 14:52 |显示全部楼层
原帖由 思一克 于 2006-8-22 14:41 发表
to wyezl,

FD泄露,原因就是没有close是无疑问的。
WHY MEIYOU close?
就是事件有的时候(比如网络坏等原因)没有到来。


这种情况怎么处理才好呢?

论坛徽章:
0
发表于 2006-08-22 14:55 |显示全部楼层
你可以设置一个timeout, 超过的cfd(在ACCPTE处)一律关闭

论坛徽章:
0
发表于 2006-08-22 14:56 |显示全部楼层
原帖由 nuclearweapon 于 2006-8-22 14:33 发表


由于有SO_KEEPALIVE可以避免这种情况吧(lz的程序也做了处理)。
否则就是client有问题,一直连着不放。


我没有支持KEEPALIVE。发送完处理,立刻就关闭描述符了。

论坛徽章:
0
发表于 2006-08-22 15:01 |显示全部楼层
原帖由 思一克 于 2006-8-22 14:55 发表
你可以设置一个timeout, 超过的cfd(在ACCPTE处)一律关闭

怎么为每个描述符设置超时?

论坛徽章:
0
发表于 2006-08-22 15:01 |显示全部楼层
原帖由 wyezl 于 2006-8-22 14:51 发表



这是只监视1024个fds的时候的部分贴图。

# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State ...



难道有人攻击你

SYN_RECV有多少个!

论坛徽章:
0
发表于 2006-08-22 15:04 |显示全部楼层
你打开tcp_syncookies
试试。
再做测试

论坛徽章:
0
发表于 2006-08-22 15:07 |显示全部楼层
可能不是好方法:

while( ......... accept()  ....) {


  ....这里检查全局的time_t fd_create[5000];

}

关闭时设置fd_create[fd] = 0;

论坛徽章:
0
发表于 2006-08-22 15:11 |显示全部楼层
原帖由 nuclearweapon 于 2006-8-22 15:01 发表



难道有人攻击你

SYN_RECV有多少个!


几百个吧。贴出来。省略一部分后面的。
# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 *:32768                     *:*                         LISTEN      
tcp        0      0 *:sunrpc                    *:*                         LISTEN      
tcp        0      0 *:http                      *:*                         LISTEN      
tcp        0      0 xxx.108.37.77:http          58.217.195.47:4689          SYN_RECV   
tcp        0      0 xxx.108.37.77:http          58.47.42.74:2899            SYN_RECV   
tcp        0      0 xxx.108.37.77:http          218.68.242.127:1238         SYN_RECV   
tcp        0      0 xxx.108.37.77:http          222.67.10.49:30384          SYN_RECV   
tcp        0      0 xxx.108.37.77:http          pc68.broad.dynamic.xm.:2215 SYN_RECV   
tcp        0      0 xxx.108.37.77:http          220.191.231.198:47700       SYN_RECV   
tcp        0      0 xxx.108.37.77:http          218.77.186.194:63425        SYN_RECV   
tcp        0      0 xxx.108.37.77:http          220.207.230.113:3652        SYN_RECV   
tcp        0      0 xxx.108.37.77:http          60.7.59.197:3216            SYN_RECV   
tcp        0      0 xxx.108.37.77:http          123.49.160.226:3127         SYN_RECV   
warning, got duplicate tcp line.
tcp        0      0 xxx.108.37.77:http          122.48.0.89:13698           SYN_RECV   
tcp        0      0 xxx.108.37.77:http          58.67.158.106:krb524        SYN_RECV   
tcp        0      0 xxx.108.37.77:http          218.79.187.16:3129          SYN_RECV   
tcp        0      0 xxx.108.37.77:http          122.48.0.89:13680           SYN_RECV   
tcp        0      0 xxx.108.37.77:http          60.171.192.39:2531          SYN_RECV   
tcp        0      0 xxx.108.37.77:http          60.216.170.48xx5          SYN_RECV   
warning, got duplicate tcp line.
tcp        0      0 xxx.108.37.77:http          218.22.68.194:1101          SYN_RECV   
tcp        0      0 xxx.108.37.77:http          219.137.172.101:15053       SYN_RECV   
tcp        0      0 xxx.108.37.77:http          61.141.94.21:4748           SYN_RECV   
tcp        0      0 xxx.108.37.77:http          58.24.101.69:4188           SYN_RECV   
tcp        0      0 xxx.108.37.77:http          222.82.225.134:3118         SYN_RECV   
tcp        0      0 xxx.108.37.77:http          59.52.119.145:55806         SYN_RECV   
tcp        0      0 xxx.108.37.77:http          124.248.1.69:50344          SYN_RECV   
tcp        0      0 xxx.108.37.77:http          220.171.79.196:3014         SYN_RECV   
tcp        0      0 xxx.108.37.77:http          123.49.164.148:55258        SYN_RECV   
tcp        0      0 xxx.108.37.77:http          212.193.163.60.broad.:63429 SYN_RECV   
tcp        0      0 xxx.108.37.77:http          122.48.0.89:13754           SYN_RECV   
tcp        0      0 xxx.108.37.77:http          61.188.210.2:3532           SYN_RECV   
tcp        0      0 xxx.108.37.77:http          122.48.0.89:13752           SYN_RECV   


[root@sina src]# netstat -an | more
warning, got duplicate tcp line.
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 0.0.0.0:32768               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      
tcp        0      0 xxx.108.37.77:80            xxx.103.215.242:62165       SYN_RECV   
tcp        0      0 xxx.108.37.77:80            220.191.231.198:47700       SYN_RECV   
tcp        0      0 xxx.108.37.77:80            218.246.73.21:60164         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            222.64.136.219:2881         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            123.49.160.226:3127         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            60.63.11.185:22834          SYN_RECV   
tcp        0      0 xxx.108.37.77:80            58.51.39.146:1870           SYN_RECV   
tcp        0      0 xxx.108.37.77:80            122.48.0.89:13698           SYN_RECV   
tcp        0      0 xxx.108.37.77:80            211.147.240.74:3076         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            59.54.226.64:1135           SYN_RECV   
tcp        0      0 xxx.108.37.77:80            218.28.166.198:61757        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            222.82.225.134:3118         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            58.35.242.69:23660          SYN_RECV   
tcp        0      0 xxx.108.37.77:80            211.92.156.131:1210         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            221.5.82.81:2100            SYN_RECV   
tcp        0      0 xxx.108.37.77:80            220.171.79.196:3014         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            60.163.193.212:63429        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            122.48.0.89:13754           SYN_RECV   
tcp        0      0 xxx.108.37.77:80            61.188.210.2:3532           SYN_RECV   
tcp        0      0 xxx.108.37.77:80            218.82.23.151:64811         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            122.48.0.89:13752           SYN_RECV   
tcp        0      0 xxx.108.37.77:80            218.18.33.108:4641          SYN_RECV   
tcp        0      0 xxx.108.37.77:80            211.95.165.175:61439        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            218.28.188.86:52324         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            211.92.156.131:1215         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            211.92.156.131:1206         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            218.71.200.192:1503         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            221.200.137.120:1619        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            218.59.106.182:53008        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            211.69.18.125:3158          SYN_RECV   
tcp        0      0 xxx.108.37.77:80            218.81.193.198:1434         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            61.144.254.129:50050        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            211.92.156.131:1216         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            218.28.58.69:9898           SYN_RECV   
tcp        0      0 xxx.108.37.77:80            220.234.241.178:1679        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            219.242.196.109:2261        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            124.21.243.228:1648         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            221.200.137.120:1620        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            222.35.126.211:1336         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            221.234.146.160:2188        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            222.169.187.100:3529        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            122.48.0.89:13748           SYN_RECV   
--More--warning, got duplicate tcp line.
warning, got duplicate tcp line.
warning, got duplicate tcp line.
tcp        0      0 xxx.108.37.77:80            218.246.73.21:60165         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            221.196.131.130:4444        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            220.174.8.13:12043          SYN_RECV   
tcp        0      0 xxx.108.37.77:80            211.95.165.175:61440        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            220.205.30.17:1519          SYN_RECV   
tcp        0      0 xxx.108.37.77:80            61.188.210.2:3531           SYN_RECV   
tcp        0      0 xxx.108.37.77:80            60.163.193.212:63427        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            218.94.127.135:30598        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            219.155.143.97:1120         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            221.7.131.131:4331          SYN_RECV   
tcp        0      0 xxx.108.37.77:80            211.147.240.74:3077         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            210.76.66.35:1524           SYN_RECV   
tcp        0      0 xxx.108.37.77:80            61.138.254.47:29233         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            59.35.87.21:11079           SYN_RECV   
tcp        0      0 xxx.108.37.77:80            219.242.196.109:2260        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            220.205.30.17:1518          SYN_RECV   
tcp        0      0 xxx.108.37.77:80            58.62.84.52:4315            SYN_RECV   
tcp        0      0 xxx.108.37.77:80            221.216.74.228:4444         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            222.169.187.100:3528        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            211.92.156.131:1207         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            222.209.217.21:38807        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            219.238.191.17:17679        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            61.172.137.186:4075         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            211.92.156.131:1212         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            221.214.13.109:17600        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            218.23.149.98:46060         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            221.222.116.178:1658        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            xxx.103.215.242:62164       SYN_RECV   
tcp        0      0 xxx.108.37.77:80            222.173.191.91:1143         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            61.242.112.118:59158        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            222.209.217.21:38551        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            219.129.164.182:62607       SYN_RECV   
tcp        0      0 xxx.108.37.77:80            58.60.67.4:48095            SYN_RECV   
tcp        0      0 xxx.108.37.77:80            211.92.156.131:1213         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            122.48.0.89:13694           SYN_RECV   
tcp        0      0 xxx.108.37.77:80            218.87.71.62:2363           SYN_RECV   
tcp        0      0 xxx.108.37.77:80            61.173.14.106:4444          SYN_RECV   
tcp        0      0 xxx.108.37.77:80            220.234.241.178:1678        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            210.21.209.145:5554         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            122.48.0.89:13750           SYN_RECV   
tcp        0      0 xxx.108.37.77:80            59.35.87.21:11080           SYN_RECV   
tcp        0      0 xxx.108.37.77:80            61.172.137.186:4076         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            222.67.94.46:1434           SYN_RECV   
tcp        0      0 xxx.108.37.77:80            122.48.0.89:13697           SYN_RECV   
tcp        0      0 xxx.108.37.77:80            61.242.112.118:59160        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            58.35.242.69:23659          SYN_RECV   
--More--warning, got duplicate tcp line.
warning, got duplicate tcp line.
tcp        0      0 xxx.108.37.77:80            61.181.71.50:3946           SYN_RECV   
tcp        0      0 xxx.108.37.77:80            211.92.156.131:1209         SYN_RECV   
tcp        0      0 xxx.108.37.77:80            60.63.11.185:22833          SYN_RECV   
tcp        0      0 xxx.108.37.77:80            122.48.0.89:13744           SYN_RECV   
tcp        0      0 xxx.108.37.77:80            222.137.152.197:4755        SYN_RECV   
tcp        0      0 xxx.108.37.77:80            220.169.5.239:3676          SYN_RECV   
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      
tcp        0      0 xxx.108.37.77:80            221.6.163.131:35293         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            221.198.127.25:1956         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            60.2.106.52:58968           TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            221.222.144.24:1618         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            211.158.132.14:1808         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            218.89.188.200:60118        TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            221.0.180.142:58305         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            61.51.223.223:1992          TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            61.170.213.11:14704         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            219.136.26.220:3765         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            211.158.81.195:4087         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            218.71.200.192:1460         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            221.5.152.50:37803          TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            210.21.232.236:33515        TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            221.198.127.25:1957         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            221.15.17.77:1878           TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            221.1.244.62:1230           TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            61.155.209.139:2875         TIME_WAIT   
tcp        1      1 xxx.108.37.77:80            60.186.14.190:13808         CLOSING     
tcp        0      0 xxx.108.37.77:80            60.208.111.253:57016        TIME_WAIT   
tcp        1      1 xxx.108.37.77:80            219.145.113.15:52970        CLOSING     
tcp        0      0 xxx.108.37.77:80            61.170.213.11:14705         TIME_WAIT   
tcp        1      1 xxx.108.37.77:80            xxx.106.180.254:2266        CLOSING     
tcp        1      1 xxx.108.37.77:80            222.68.248.150:7632         CLOSING     
tcp        0      0 xxx.108.37.77:80            60.17.17.149:62063          TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            60.0.16.66:3159             TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            58.101.33.97:3616           TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            125.32.0.114:1367           TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            125.33.217.83:3502          TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            71.135.63.37:61595          TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            218.26.227.9:31478          TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            220.161.163.113:1141        TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            221.1.244.62:1229           TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            60.2.106.52:58970           TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            221.15.17.77:1877           TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            222.64.14.150:64545         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            222.67.166.24:2299          TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            61.51.223.223:1994          TIME_WAIT   
--More--warning, got duplicate tcp line.
warning, got duplicate tcp line.
tcp        0      0 xxx.108.37.77:80            61.155.18.18:56733          TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            60.15.21.5:12313            TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            58.33.225.117:2739          TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            61.167.60.224:58498         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            58.60.5.33:7454             TIME_WAIT   
tcp        0    243 xxx.108.37.77:80            218.71.200.192:1718         FIN_WAIT1   
tcp        0      0 xxx.108.37.77:80            123.49.164.148:55288        TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            125.33.217.83:3501          TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            221.214.13.109:47024        TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            221.218.117.87:17919        TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            218.108.44.10:21325         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            124.200.18.190:3484         TIME_WAIT   
tcp        0    300 xxx.108.37.77:80            221.218.117.87:26879        FIN_WAIT1   
tcp        0    567 xxx.108.37.77:80            221.218.117.87:27135        FIN_WAIT1   
tcp        0      0 xxx.108.37.77:80            218.26.227.9:31479          TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            220.161.163.113:1140        TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            221.222.144.24:1617         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            60.2.106.52:58971           TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            221.5.181.31:3752           TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            61.49.166.124:62700         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            221.0.180.142:58306         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            61.51.223.223:1995          TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            60.208.111.253:57018        TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            xxx.111.152.6:56054         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            58.33.225.117:2738          TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            61.181.245.85:25618         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            123.49.164.148:55289        TIME_WAIT   
tcp        1      1 xxx.108.37.77:80            125.92.214.174:6619         CLOSING     
tcp        0      0 xxx.108.37.77:80            124.200.18.190:3483         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            60.166.100.106:48296        TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            222.223.6.176:40086         ESTABLISHED
tcp        0      0 xxx.108.37.77:80            124.42.126.70:55826         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            221.226.242.212:64827       TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            221.198.127.25:1952         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            222.64.14.150:64295         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            xxx.106.113.61:6182         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            221.229.12.88:4273          TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            61.49.166.124:62699         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            221.8.9.91:5210             TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            210.21.196.86:11655         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            218.87.255.183:3552         TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            61.181.250.190:32782        TIME_WAIT   
tcp        0      0 xxx.108.37.77:80            125.33.217.83:3499          TIME_WAIT

论坛徽章:
0
发表于 2006-08-22 15:12 |显示全部楼层
原帖由 nuclearweapon 于 2006-8-22 15:04 发表
你打开tcp_syncookies
试试。
再做测试

怎么打开?

论坛徽章:
0
发表于 2006-08-22 15:14 |显示全部楼层
wyezl,

攻击不会影响FD。FD是已经建立的连接没close.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP