本文简单说一下一个几乎没有人考虑过的问题,那就是为什么Open×××被设计成单线程单进程的。我曾经苦苦等待Open×××新版本的推出,第一件事就是看其ChangeLog,然而没有发现multiXXX,我一直都不理解多核时代为何还有单进程单线程的Open×××,这个答案在我通读了Open×××的maillist之后终于有了答案。
多线程在多核系统中的大好处就是可以大限度的利用多个处理器核心,然而一个好的算法在多核环境中最最关注的就是如何将欲求解的问题分割成可以并行处理的多个问题,然后将其分派给不同的处理器核心去处理。在典型的C/S模型中,一般根据客户来分派线程或者进程。比如Apache就是这么做的,其实IIS也差不到哪去,而且经典的UNIX网络编程规范也建议如此做,因此人们很容易将Apache的做法看做是理所当然的,虽然有了event机制来替代单纯的per-客户-per-thread,然而其底层实现都差不到哪去,只是用户态的api改变大。
现在看看Open×××为何仅仅使用了单个处理器核心?原因很简单,那就是在IP层无法很好分割问题,如果按照用户来分割,那么很有可能一个用户连上之后并不传输数据,从而造成线程闲置,若若按照实际访问的目标来分割,那么将会造成一个笛卡尔积的复杂局面。因此最佳的方式就是让×××的搭建着自己来完成问题的分割,然后通过注入负载均衡以及虚拟网卡bonding之类的技术来提高效率。然而可悲的是,事实上这样做的人很少,大多数人都十分满足于Open×××单线程的现有表现,我在网上google相关的Open×××提速方案,令人几乎掉泪的是搜索到的文章几乎都是我自己写的…咱也是普通一朵程序员,也有任务在身,也不是什么研究所的专职资料整理者,因此也希望能互动一把,总不能光奉献不索取吧。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
成都创新互联公司专注于企业
成都全网营销推广、网站重做改版、左云网站定制设计、自适应品牌网站建设、
H5建站、
商城网站开发、集团公司官网建设、
成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为左云等各大城市提供网站开发制作服务。
名称栏目:Open×××单线程原因-创新互联
标题网址:
http://cdweb.net/article/dosipi.html