架构设计旧
架构设计早期文章
beginning1126
这个作者很懒,什么都没留下…
展开
-
web服务器总体架构------分析1
web服务器总体架构互联网发展至今,虽说只有20多年的历史,但是不得不说,其发展速度之快、囊括技术之多简直令人发指,其所涉及的领域,从电子商务、社交、娱乐、搜索,渐渐向传统行业渗透,立志于解决传统领域的痛点,教育、医疗、能源、保险等等传统行业,以后渐渐都会看到互联网的影子。互联网大多是2C业务,其特点如下:高并发:qq最大在线数1.4亿,淘宝双11第一分钟独立访问用户数1000原创 2015-04-12 16:00:05 · 1065 阅读 · 0 评论 -
服务器架构设计5------通过共享内存实现0拷贝
前几篇文章,分别聊了linux的磁盘技术、cpu进程调度,还剩下内存没怎么研究,今天来聊聊服务器的0拷贝。linux服务器,特别类似于流媒体服务器,往往涉及到大数据量的输入、分析、输出,那么一旦实现了多进程,难免会出现多进程对公共内存共享的问题,不用说,共享内存的应用就产生了。本篇文章不会涉及太多code层次的问题,仅从design层次给出大体的方法。把问题抽象一下,就是2个进原创 2013-12-10 18:57:11 · 4849 阅读 · 0 评论 -
linux 磁盘io技术3------libaio使用介绍
前一篇文章介绍了一下libaio与block io性能比较:http://blog.csdn.net/beginning1126/article/details/16989421。今天来仔细聊聊libaio的使用原创 2013-11-29 17:28:57 · 12340 阅读 · 0 评论 -
linux 磁盘io技术1------概述
http://www.ibm.com/developerworks/cn/linux/l-async/http://www.cnblogs.com/aLittleBitCool/archive/2011/10/18/2216646.htmlhttp://www.jiangmiao.org/blog/2290.htmlhttp://blog.sina.com.cn/s/blog_原创 2013-10-30 18:12:00 · 1225 阅读 · 0 评论 -
服务器架构设计4------进程调度
今天让我们来一起了解一下linux cpu的进程调度,对于linux服务器,通常会碰到2个问题1、实时性,有什么办法能确保某一个进程能优先运行、并且不受时间片的限制,只有等待它运行完了,其它进程才能运行?2、多核cpu,有什么办法能够自定义,绑定某些进程在某些cpu上?那么在探讨这俩问题之前,先来了解一下linux进程调度基础知识。多任务系统分为2类。非抢占式多任务:除原创 2013-12-08 18:33:39 · 2124 阅读 · 0 评论 -
linux 磁盘io技术2------libaio与block io性能比较
近来公司需要提升服务器写磁盘的性能,调研了一些资料,抽时间把资料整理一下,同时把自己的调研情况总结一下,拿出来和各位网友分享一下,不免有问题的地方,希望大家不吝赐教,多谢。今天先来谈谈linux下的libaio吧。一、I/O模型这个图,太经典了,白色框,就不多说了,大家估计都明白它指的是啥,今天主要来说说绿色部分AIO。具体参见:http://www.i原创 2013-11-27 18:25:10 · 6354 阅读 · 1 评论 -
服务器架构设计2------线程的周期执行
说到服务器,通常可以想象都是一个while(1)无限循环,当某种条件触发之后,则跳出循环。然而,有些时候,则需要服务器针对某些event,周期性的执行特定操作,如何实现呢。一个简单的方法就是,建立event的node list,节点信息包括(timer,event私有变量,回调函数,执行周期interval),主线程每个周期首先访问node list,如果时间条件满足,执行回调函数原创 2013-11-25 12:07:09 · 1991 阅读 · 0 评论 -
服务器架构设计1------概述
服务器常用架构包括四种: 多线程 多进程 基于 I/O 复用的事件循环架构 SEDA 模式 前两种架构适用于类 web 服务器。这样的服务器只需处理来自客户端的请求,且请求间几乎是相互独立的。后两种架构适用于构造复杂的服务器,比如 Cassandra 系统中的一个节点,再比如 Redis 服务器。 多线程或多进程:多线程服务器对每个客户端来的请求生成一个新的线程来服务它。多原创 2013-10-15 17:19:15 · 1464 阅读 · 0 评论 -
服务器架构设计3------状态机的使用
对于网络服务器,当有多个并发用户连接服务器,那服务器是如何同时处理这些用户请求呢,大体上可以分成3种方式多线程、多进程,分别开启多个进程或线程单独处理每一个ses连接,往往短连接会采用这种方式,并且可以通过线程池/进程池来优化;IO复用的事件循环,如何使用可以参见前一篇文章:http://blog.csdn.net/beginning1126/article/details/16941原创 2013-11-25 17:57:52 · 3259 阅读 · 0 评论 -
libev / libuv / python tornado / nginx 性能比较
libev / libuv / python tornado / nginx 性能比较最近项目要找一款web 框架,性能是一个很大的指标,在选型的同时,做了一些性能比较,现将测试代码和比较结果和大家分享一下。说到web 框架,很多人会想到tomcat、jetty,基于java的最常用的两种web server,其性能无法与nginx相比较,在此略过测试环境:cpu:2.0G HZ原创 2015-10-27 19:06:36 · 9521 阅读 · 0 评论