现在的位置: 首页 > 综合 > 正文

【服务器框架】(AsyncSelect模型、Windows平台)

2012年12月10日 ⁄ 综合 ⁄ 共 888字 ⁄ 字号 评论关闭

此次拖的时间稍长一些,因为遇到几个难题。一个就是前面提到的死锁,其他几个问题还未解决。遇到的几个问题和现象,大致总结如下:

1。 PC机的最大TCP连接数问题。

Windows平台,XP sp3(x86)系统,100Mb的网卡,测试结果显示,连接数最大只能达到32000多一些。由此推测,AysncSelect模型的最大的TCP连接数可能是32768。

对于Select模型、EventSelect模型,最大TCP连接数或为16384,因为我的程序最多的一次是跑到16165个连接。

也可能是PC的原因,也可能是XP系统的原因,或者是网卡?但是,AysncSelect模型的最大连接数约为 Select模型、EventSelect模型的两倍,从这一点来说,应该和网络模型有关了。

2。 PC机的最大线程数

这个以前说过,大约是1900多一些,再往后就是失败了。

3。 电脑的嘟嘟声

 原本是想做一个简单的压力测试,结果,在数万个连接之后,客户端或服务器退出,连接依次关闭,机器处于极度繁忙状态。此时,台式机偶尔发出嘟嘟声,而笔记本电脑则长时间发出嘟嘟声。

这时候,最忙的应该是网卡吧。估计是网卡发出的。其中,这次的嘟嘟声和上次的笔记本故障声音类似!——可以拿这个来测试笔记本的性能了。

4。 可怕的Dos攻击

DOS或DDOS攻击究竟会产生什么效果,以前一直无缘得见。这次算是开眼了,台式机的CPU利用率直接飙升到50%以上,而笔记本的CPU利用率则直接100%。

这个和程序的设计有一定关系。

(1)服务器接受客户端的连接时,我加了一把全局进程锁和一把线程锁,这可能导致效率低下。

(2)习惯于使用临界区加锁,而临界区过大,这降低了程序的执行效率。

(3)如果每次接受一个客户端连接后,就Sleep几十毫秒,应该可以大大降低CPU利用率,但是,服务器响应客户端连接的速度就会大大降低。

避开这些人为因素,不得不感叹DOS攻击的可怕!一台机器运行DOS程序,就可以造成这么大的攻击性,如果是大量的死士同时攻击,那该多么壮观!——当然了,服务器的配置要高很多的,即使这样,也难以承受几十台肉鸡每秒上万次乃至更多的攻击数。

抱歉!评论已关闭.