当前位置: 首页 > wzjs >正文

四川省建设工程质量监理协会网站戴尔网站建设成功

四川省建设工程质量监理协会网站,戴尔网站建设成功,惠州淘宝网站建设,wordpress引用图片样式源码 https://github.com/DBWGLX/SZU_system_programming 文章目录 技术设计编码JSON的替换Protobuf 网络线程池更高效率网络字节序的考虑send可能无法一次性发送全部数据!EPOLLHUP , EPOLLERR 的正确处理 IO数据库操作的更高性能 开发日志2025.3a.粘包问题 2025.4b…

源码 https://github.com/DBWGLX/SZU_system_programming

文章目录

  • 技术设计
    • 编码
      • JSON的替换
      • Protobuf
    • 网络
      • 线程池更高效率
      • 网络字节序的考虑
      • send可能无法一次性发送全部数据!
      • EPOLLHUP , EPOLLERR 的正确处理
    • IO
    • 数据库操作的更高性能
  • 开发日志
      • 2025.3
        • a.粘包问题
      • 2025.4
        • b.多个线程同时读取同一个文件描述符问题
        • 第一次批量注册成功1W用户
        • 500qps
        • c.数据库连接池没必要问题
        • 700qps
        • d. 高并发均匀处理问题 [ EPOLLONESHOT ]

技术设计

编码

JSON的替换

JSON 不提供强类型,必须手动检查字段类型。而Protobuf 反序列化时,会自动检查字段类型。

JSON编程时,每个 k 的设置解析都得检查。
json_t *response = json_object(); 对象创建,最后还要释放。

Protobuf

已结合 K-L-V

官方编码文档学习 https://blog.csdn.net/JK01WYX/article/details/146919585?spm=1001.2014.3001.5501

网络

线程池更高效率

网络字节序的考虑

htol

send可能无法一次性发送全部数据!

EPOLLHUP , EPOLLERR 的正确处理

直接看 events 部分:https://blog.csdn.net/JK01WYX/article/details/132699613

IO

数据库操作的更高性能

数据库查询需要时间,可以不去等其操作完

开发日志

2025.3

项目搭好,跑了下,感觉一点问题没有。

a.粘包问题

压测下,注册5W个用户: !json解析错误,粘包了!json是一起解析的,毕竟找 {} 即可。

和同学交流后得知,json报文不是很好的选择,启动protobuf

2025.4

protobuf + KLV 启动

b.多个线程同时读取同一个文件描述符问题

任务队列recv 出问题

接着注册5w个用户

我用一个客户端发起5w份注册请求 —— 只注册了前5个

epoll 收到 IO 只放到任务队列,那同一个socket文件描述符就可能被多个线程同时读取,这是错误的

可以分离 接收数据 和 数据处理,后期接收数据用协程和高性能的io_uring

第一次批量注册成功1W用户

通过减慢发送速度,提升缓冲区 net.core.rmem_max,维护 recv接收完整 (服务器这边是一个线程再处理)

用时 2m40s (第一个创建时间和最后一个创建时间之差)

在这里插入图片描述
在这里插入图片描述

用的默认 net rmem 缓冲区大小

wyx@ubuntu:~/work/SZU_system_programming/ChatServer$ sysctl net.core.rmem_max
net.core.rmem_max = 212992
wyx@ubuntu:~/work/SZU_system_programming/ChatServer$ sysctl net.core.rmem_default
net.core.rmem_default = 212992

不限制发送方发送速度,程序正常运行

2m18s
在这里插入图片描述

提升 net.core.rmem_max 为 16MB,速度提升至 52s

sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.rmem_default=8388608

在这里插入图片描述

500qps

现在分出4个客户端,并行请求:(此时服务器4个线程并行处理)

18s => 1e4 / 18 = 555 queries per second!
在这里插入图片描述
(插入时分配主键,根据主键id排序的)

c.数据库连接池没必要问题
700qps

数据库连接池的思想是不用频繁创建释放数据库连接。然而多线程从连接池中取连接,也会出现竞态条件
我这里4核4任务线程,不算多,可以给每个线程分配一个连接

14s => 1w注册请求 : 1e4 ➗ 14 = 714 qps !
在这里插入图片描述

(top)运行时占用:
在这里插入图片描述

客户端发送第一个前的时间:
在这里插入图片描述
服务器同一时刻收到注册请求:
在这里插入图片描述

d. 高并发均匀处理问题 [ EPOLLONESHOT ]

在 epoll 的边缘触发(Edge Triggered,ET)模式下结合 EPOLLONESHOT 使用时,一个 socket 文件描述符在加入 epoll 实例前收到消息,加入后仍可以收到这次 IO 事件

连接一直连接断开前,recv可以一直阻塞,导致任务线程阻塞,服务器没法处理其他请求了。

所以应设置超时,或者就按任务队列顺序处理。

但是!按照任务队列顺序处理,之前补丁加的set 有漏洞,可能会忽视一些边缘驱动, 应使用 EPOLLONESHOT

19s => 1e4 / 19 = 526 qps
在这里插入图片描述

接着就可以写 io_uring 啦!


文章转载自:

http://NgMjPkVy.nwnbq.cn
http://kcvtkWyZ.nwnbq.cn
http://KqsbvHjj.nwnbq.cn
http://r7dajwx0.nwnbq.cn
http://SXw7n7Rc.nwnbq.cn
http://uKyqysuX.nwnbq.cn
http://gr7RIXiu.nwnbq.cn
http://CdZEAcqj.nwnbq.cn
http://06Yckc7X.nwnbq.cn
http://Lh5F9RcD.nwnbq.cn
http://HChadOkj.nwnbq.cn
http://YEjsYyfj.nwnbq.cn
http://jopJykf7.nwnbq.cn
http://9YUNNw8T.nwnbq.cn
http://7oWxOPby.nwnbq.cn
http://uUNZ40lx.nwnbq.cn
http://jTAKJx2u.nwnbq.cn
http://N9XbKWWG.nwnbq.cn
http://aMd5hkx7.nwnbq.cn
http://Smmn9uYN.nwnbq.cn
http://UcLycIbn.nwnbq.cn
http://wWjB9hMq.nwnbq.cn
http://WJDty8SJ.nwnbq.cn
http://9EyTbFUx.nwnbq.cn
http://IgUt4LOy.nwnbq.cn
http://5ApYY8AQ.nwnbq.cn
http://ybbOWkEx.nwnbq.cn
http://k3QJIvlJ.nwnbq.cn
http://ZdLoKqtU.nwnbq.cn
http://ixuE01OC.nwnbq.cn
http://www.dtcms.com/wzjs/663367.html

相关文章:

  • 深圳国内设计网站wordpress注册登录界面
  • 鲜花商城网站设计深圳最好的app开发公司
  • 国家重大建设项目库填报网站郑州专业网页模板制作公司
  • 大连宏帝建设网站网站建设金思扬网络
  • 建设银行自贡分行网站wordpress评论样式
  • 专业做包装设计网站怀化市住房与城乡建设厅网站
  • 做网站要了解的事情国外网站查询
  • 做装饰工程的在什么网站投标网络营销策略有哪五种
  • 广西建设科技协会网站互联网项目推广方案
  • 怎样管理一个俄语网站用dw做网站 主题是哪个
  • 买卖平台有哪些网站如何在外管局网站做付汇延期
  • 国外建站工具一个人看的免费直播大全
  • 网站开发的知识网站建设维护是做什么的
  • 个人怎么注册自己的网站安徽做网站电话
  • 太原网站开发浙江建设信息港三类人员成绩查询
  • 网站常用字号设计学分类
  • 网站建设报价单表格wordpress所有页面
  • wordpress isux站长工具seo下载
  • 包工头如何找工程项目seo搜索引擎优化方法
  • 简单的视频网站能不能用dw做有一个专门做演讲的网站
  • 网站建站建设多少钱建设网站能挣钱吗
  • 17做网站骗子首页关键词优化公司
  • 大安市网站慈溪想做网站的公司
  • php网站微信支付怎么做53建筑网官网
  • h5网站怎么做的吗专业网页美工招聘
  • 网站后台 栏目管理dw网页制作成品下载
  • 网站备案时间购买网站做网页游戏
  • 域名申请网站开网站公司
  • 网站建设首页布局新浪云计算 网站开发
  • 自己建立网站怎么做根优酷差不多的网站