Supremes / myServer

http服务器

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

项目简介:

  • 基于Reactor并发模型开发的非阻塞IO服务器,采用了one loop per thread + 线程池的多线程编程模型,解析了get、head静态请求,支持优雅关闭连接,webbench压力测试,短连接QPS 2W+

技术点及工作:

  • 使用Epoll水平触发的IO多路复用技术
  • 使用多线程充分利用多核CPU,并使用线程池避免线程频繁创建销毁的开销
  • 多处使用了智能指针等RAII机制来减少内存泄漏的可能
  • 使用基于小根堆的定时器关闭超时请求
  • 使用eventfd异步唤醒阻塞的IO线程

Webbench压力测试

测试环境:

  • OS:ubuntu16.04
  • 内存:8G
  • CPU: i7-7700K

测试方法:

  • 使用工具Webbench,开启1000客户端进程,时间为1s和60s
  • 线程数为4

测试结果

  1. 测试时长为1秒

  1. 测试时长为60秒

cpu负载

  • 空闲负载:

cpu空闲负载.png

  • 连接负载:

cpu负载.png

About

http服务器


Languages

Language:Makefile 46.2%Language:C++ 34.7%Language:CMake 11.2%Language:C 7.6%Language:Roff 0.3%