![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
高并发服务器
文章平均质量分 52
梦忆2
pytorch 计算机视觉,行人重识别小白一枚
展开
-
高并发设计
数据库:一.池化技术原因:1.连接的耗时比较长2.相反执行一次sql可能时间很快二.池化连接最小连接(10左右),最大连接(20-30左右),预热(初始化)三.池化线程1.CPU密集型(一定不要让线程数超过cpu核心数)2.IO密集型(线程池可以适当放宽)3.尽量不使用无界队列四.主从读写分离(冗余)1.读多写少,突发流量2.主从拷贝:一个数据拷贝给多个从库查询在从库来3.异步更新:延迟效应(毫秒级),不同步五 分库分表(分片)问题:数据量增大,查询性能下降数据量占用磁盘原创 2021-08-11 21:32:34 · 44 阅读 · 0 评论 -
服务器相关知识
服务器:一种专门提供服务的机器硬件软件:我们关注,CS架构Sever:高并发 2响应能力-效率C10K-C100K问题P2P架构:更关注对等事件怎么对等高并发:操作系统的并发和并行多进程实现方式:多进程-阻塞?进程创建成本高切换的成本(高速缓存(弥补CPU和内存之间速差),内存上)太高高速缓存:1空间局部性,2时间局部性多线程内核支持线程线程级别:内核线程,用户线程线程模式:1个连接对应一个线程事件驱动(流水线)互斥与同步1死锁 data race 临界区原创 2021-08-10 21:16:50 · 67 阅读 · 0 评论 -
并发模型问题
前置知识:系统调用:只是用户态进入内核态的一种方式,还有中断,异常,就是系统提供给用户做特权指令的接口1.内核态 .2用户态与之对应的进程的陷入和下沉特权指令 非特权指令如何切换,切换有成本嘛?复制拷贝的成本高级IO:1.IO多路复用(本质上是异步IO)避免NIO的多次轮询select :去内核里面统计(返回多少个就绪事件,从头到尾找)涉及好几次内核拷贝】,容易被信号中断->pselect引入了系统信号集int select(int nfds,fd_setreadfds,原创 2021-08-10 19:05:00 · 139 阅读 · 0 评论 -
高并发设计
高并发设计的基本方法:1.横向扩展:买更多的服务器,更多的CPU(32C)2.异步处理:把同步等待的时间转为并发执行3.使用缓存:本质上会缓解磁盘和CPU之间的速差,提高效率4.高并发系统的演进应该是循序渐进,以解决系统中存在的问题为目的和驱动力分层设计:MVC框架:M是模型 V是用户界面 C:业务逻辑与表现层,逻辑层和数据访问层相对应分层的好处:简化系统设计:不同人的关注某一层分层可以有更高的复用性更容易做横向扩展‘不足:增加了代码的复杂度每个层次独立部署,层次间通过网络来原创 2021-08-09 23:28:43 · 399 阅读 · 0 评论 -
高并发服务器
echo高并发服务器:连接:epoll使用mmap做内存映射,实现更高效的拷贝:时间复杂度为0(1);主要对fdset的拷贝,select中从1024-2048 OPEN_MAX FDSETSIZEulimit-a ->65535cat /proc/sys/fs/file-max 782584cd /etc vi sysctl.conf 可以对内核参数的设置netstat -alnt |grep 9001查找端口是否打开单线程/单进程:可以利用非阻塞的IO(NIO)或者原创 2021-08-03 23:39:29 · 88 阅读 · 0 评论