打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Epoll & Select性能比较测试(很明显Epoll比较好)

测试程序分客户端(client)及服务端(server).  服务端分别以select和epoll两种I/O模型实现.
1.连接建立速度测试
某个时刻连续向server发起大量连接请求,比较两种I/O模型下Server端的连接接收速度。在客户端记录下连接数完全建立后所花费的时间.
操作步骤:
I.启动服务端程序.
Selectserver命令:(./SelectServer 192.168.0.30 8000 1>/dev/null)
EpollServer命令:   (./EpollServer 192.168.0.30 8000 1>/dev/null)
参数1(192.168.0.30)为server绑定的IP, 参数2(8000)为server监听的端口号;
II.启动客户端程序
命令:./deadlink 192.168.0.30 8000 800
参数1(192.168.0.30)是server端的IP, 参数2(8000)是server监听的端口,参数3(800)是你想要建立连接的数量.等连接全部建立完毕后程序会自动打印出所花费的时间及成功建立的连接数.每个连接数量记录5组数据,去除一个最大及最小值后,取余下的3组数据的平均值作为最终结果.

2.数据传输性能测试
client端创建若干线程,每个线程与server建立一个连接。连接建立后向server发送取数据请求,然后读取server端返回的数据.如此反复循环。每个client请求server返回的数据字节数为1K(1024bytes)大小.当连接全部建立后,系统稳定下来,记录此时的服务程序对应的CPU占用率及内存使用率.每个连接数量记录下12组数据供分析使用.分析结果中将除去一个最大值及最小值,取余下的10组数据的平均值作为最终结果。
操作步骤:
I启动服务端
Selectserver命令:(./SelectServer 192.168.0.30 8000 1>/dev/null)
EpollServer命令:   (./EpollServer 192.168.0.30 8000 1>/dev/null)
参数1(192.168.0.30)为server绑定的IP, 参数2(8000)为server监听的端口号;
II.启动客户端
命令: ./activelink 192.168.0.30 8000  800
参数1(192.168.0.30)是server端的IP, 参数2(8000)是server监听的端口,参数3(800)是你想要建立的线程数(连接数).因为每个线程建立一个连接,所以此数量亦即建立的连接数。
III. netstat –la | grep “192.168.0.250” | wc –l 查看连接数量,等待建立完成.此处192.168.0.250为客户端机器IP地址。
IV.连接全部建立后等待5-6分钟,待系统稳定下来后 top查看并记录12 组Server 程序所占CPU/内存使用率.
1.2 测试平台说明
Server机器配置
CPU(处理器) Intel(R) Pentium(R) 4 CPU 2.40GHz, L2 cache size: 512 KB
RAM(内存) 248384kb, 约为242M
OS(操作系统) Redhat Linux 9.0, kernel 2.6.16-20
NIC(网卡) Realtek Semiconductor RTL-8139/8139C/8139C+ (rev 10), work on negotiated 100baseTx-FD

client机器配置
CPU(处理器) Intel(R) Pentium(R) 4 CPU 2.0GHz, L2 cache size: 512 KB
RAM(内存) 222948kb, 约为218M
OS(操作系统) Redhat Linux 9.0, kernel 2.4.20-8
NIC(网卡) VIA Technologies VT6102 [Rhine-II] (rev 74)
1.3 测试工具说明


Server端程序:
源代码文件:server.cpp (请用UE打开) ,运行make生成SelectServer 及 EpollServer可执行文件.
 
客户端程序:
源代码文件:deadlink.cpp, activelink.cpp(请用UE打开),运行make生成deadlink(接收连接速度测试客户端),activelink(数据传输测试客户端)
  
2 测试结果
2.1 接收连接速度测试结果
表 2 1接收连接速度测试结果
连接数\IO模型 SelectServer(单位 秒s) EpollServer(单位 秒s)
100 0s 0s
200 0s 0s
300 6s 0s
400 14s 0s
500 24s 0s
600 36s 0.3s
700 48s 0s
800 59s 0s
900 72s 0s
1000 84s 0s

2.2 数据传输性能测试
表 2 2数据传输性能测试结果
连接数\IO模型 SelectServer [cpu%, mem%] EpollServer [cpu%, mem%]
100 [28.06,    0.3] [21.74, 0.3]
200 [43.66,    0.3] [40.50, 0.3]
300 [47.09,    0.3] [42.73, 0.3]
400 [59.04,    0.3] [44.55, 0.3]
500 [54.44,    0.3] [51.00, 0.3]
600 [63.38,    0.3] [50.76, 0.3]
700 [65.77,    0.3] [51.47, 0.3]
800 [70.52,    0.3] [52.80, 0.3]

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Improving (network) I/O performance
如何让cpu满负载运行
redis源代码分析–event library
Redis主体流程分析
liunx命令(mke2fs)的快速格式化
运维
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服