摄影网站建设开题报告,2010年4月江苏省03340网站建设与管理答案,徐州如何提高网站建设,你好多莉wordpress1. Redis单线程单Reactor网络模型 1.1 redis单线程里不能执行十分耗时的流程#xff0c;不然会客户端响应不及时
解决方法一#xff1a; beforesleep里删除过期键操作若存在大量过期键时#xff0c;会耗费大量时间#xff0c;redis采用的策略之一就是采用timelimit方案超过…1. Redis单线程单Reactor网络模型 1.1 redis单线程里不能执行十分耗时的流程不然会客户端响应不及时
解决方法一 beforesleep里删除过期键操作若存在大量过期键时会耗费大量时间redis采用的策略之一就是采用timelimit方案超过阈值就退出下次循环再来处理
解决方法二 beforesleep里待发给客户端数据太多未发完时不会阻塞在这会创建写文件时间在文件事件流程里发送
解决方法三 开启TCP_NODELAY提高tcp响应速度否则发送小包数据时得等200ms超时才会发送
解决方法四 可开启SO_KEEPALIVE长连接减少不必要的连接建立和销毁过程增加响应速度
1.2 redis单线程里不能执行十分耗时的流程不然会定时任务执行不及时
解决方法 在处理文件事件前会查找最近时间事件作为epoll_wait超时依据来确保下一个循环能在定时事件时间到达时及时执行
2. memcached多reactor多线程网络模型 2.1 工作线程分发策略
主线程接收到新client时会均匀分发到每个线程算法比较简单每次记录上次使用的线程下一次放到此线程下个线程来保证一定的公平性。 我在其他源码也看到过一种分发策略根据每个线程里的的活跃连接数并且给每个线程设定一个上限连接数达到80%时就不在接收新连接优先将连接分给其他活跃连接更少的线程。
2.2 管道–主线程唤醒工作线程的桥梁
主线程接收到新连接后通过策略计算出工作线程号后会向该线程里的管道写段写入’c’工作线程使用的libevent一直在关注管道读端的事件一旦主线程写入后工作线程管道读端的事件就会就绪这时工作线程被唤醒由工作线程去处理读写任务
3. Nginx多进程网络模型
待完善