只想知道 发表于 2015-2-3 23:53:14

PHP教程之多核编程中的负载均衡困难

大家如果能懂得“熟能生巧”的道理也就明白了这并不是浪费时间,同时这也可以减轻板主的负担,让他们有时间去处理更难的问题。     多核CPU中,要很好地发扬出多个CPU的功能的话,必需包管分派到各个CPU上的义务有一个很好的负载均衡。不然一些CPU在运转,别的一些CPU处于余暇,没法发扬出多核CPU的优势来。

  要完成一个好的负载均衡凡是有两种计划,一种是静态负载均衡,别的一种是静态负载均衡。

  1、静态负载均衡

  静态负载均衡中,需求人工将法式朋分成多个可并行履行的局部,而且要包管朋分成的各个局部可以平衡地散布到各个CPU上运转,也就是说任务量要在多个义务间停止平均的分派,使得到达高的减速系数。

  静态负载均衡成绩从数学下去说是一个NP完整性成绩,Richard M. Karp, Jeffrey D. Ullman, Christos H. Papadimitriou, M. Garey, D. Johnson等人接踵在1972年到1983年间证实了静态负载成绩在几种分歧束缚前提下的NP完整性。

  固然NP完整性成绩在数学上是困难,然而这并非题目中所说的困难,由于NP完整性成绩普通都可以找到很无效的近似算法来处理。

  2、静态负载均衡

  静态负载均衡是在法式的运转过程当中来停止义务的分派到达负载均衡的目标。实践情形中存在很多不克不及由静态负载均衡处理的成绩,好比一个大的轮回中,轮回的次数是由内部输出的,事前其实不晓得轮回的次数,此时采取静态负载均衡划分战略就很难完成负载均衡。

  静态负载均衡中对义务的调剂通常为由体系来完成的,法式员凡是只能选择静态均衡的调剂战略,不克不及修正调剂战略,因为实践义务中存在良多的不肯定要素,调剂算法没法做得很优,因而静态负载均衡有时能够达不到既定的负载均衡请求。

  3、负载均衡的困难在那边?

  负载均衡的困难其实不在于负载均衡的水平要到达几何,由于即便在各个CPU上分派的义务履行工夫存在一些差距,然而跟着CPU核数的增多总能让总的履行工夫下落,从而使减速系数随CPU核数的增添而增添。

  负载均衡的坚苦的地方在于法式中的可并行履行块良多要靠法式员来划分,固然CPU核数较少时,好比双核或4核,这类划分并非很坚苦。但跟着核数的增添,划分的粒度将变得愈来愈细,到了16核以上时,估量法式员要为若何划分义务而抓狂。好比一段按次履行的代码,放到128核的CPU上运转,要手工划分红128个义务,其划分的难度可想而知。

  负载划分的误差会跟着CPU核数的增添而缩小,好比一个需求16个工夫单元的法式分到4个义务上履行,均匀每一个义务上的负载履行工夫为4个工夫单元,划分误差为1个工夫单元的话,那末减速系数酿成 16/(4+1)=3.2,是幻想情形下减速系数 4的80%。然而假如放到一个16核CPU上运转的话,假如某个义务的划分误差假如为0.5个工夫单元的话,那末减速系数酿成16/(1+0.5) = 10.67,只要幻想的减速系数16的66.7%,假如核数再增添的话,因为误差的缩小,减速系数比拟于幻想减速系数的比例还会下落。

  负载划分的困难还表现在CPU和软件的晋级上,好比在4核CPU上的负载划分是平衡的,但到了8核、16核上,负载或许又变得不平衡了。软件晋级也一样,当软件增添功效后,负载均衡又会遭到损坏,又需求从头划分负载使其到达均衡,如许一来软件设计的难度和费事大大增添了。

  假如利用了锁的话,一些看起来是平衡的负载也能够会因为锁竞争变得不屈衡起来。

  4、负载均衡的应对战略

  关于运算量较小的软件,即便放到单核CPU上运转速度也很快,负载均衡做得差一些并没有太大影响,实践中负载均衡要思索的是大运算量和范围很大的软件,这些软件需求在多核长进行负载均衡才干较好天时用多核来进步功能。

  关于大范围的软件,负载均衡方面接纳的应对战略是开展划分并行块的微观划分办法,从全部软件体系层面来停止划分,而不是象传统的针对某些部分的法式和算法来停止并行分化,由于部分的法式凡是都很难分化成几十个以上的义务来运转。

  别的一个应对战略是在东西层面的,也就是编译东西可以协助人工停止并行块的分化,并找出优秀的分化计划来,这方面Intel已作出了一些勉力,然而还需求更多的勉力让东西的功效更壮大一些才干应对核数较多时的情形。

理解网站这一概念之后不难看出,任何网站都是由网页组成的,也就是说想完成网站,必须先学会做网页,因此必须要掌握了HTML,才能为今后制作网站打下基础。

老尸 发表于 2015-2-4 06:50:58

Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81

飘飘悠悠 发表于 2015-2-6 10:54:09

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

谁可相欹 发表于 2015-2-6 17:50:04

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

若相依 发表于 2015-2-9 11:50:19

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

精灵巫婆 发表于 2015-2-16 12:38:58

当然这种网站的会员费就几十块钱。

admin 发表于 2015-2-23 09:27:30

做为1门年轻的语言,php一直很努力。

变相怪杰 发表于 2015-3-4 11:32:58

首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。

金色的骷髅 发表于 2015-3-11 19:15:15

首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。

山那边是海 发表于 2015-3-11 19:29:56

真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,

简单生活 发表于 2015-3-19 09:40:23

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

蒙在股里 发表于 2015-3-20 07:31:31

小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。

再现理想 发表于 2015-3-26 14:19:41

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

活着的死人 发表于 2015-4-6 15:03:47

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

因胸联盟 发表于 2015-4-9 17:32:56

刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。

再见西城 发表于 2015-4-11 02:11:36

使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。

分手快乐 发表于 2015-4-14 00:58:16

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

透明 发表于 2015-4-24 02:47:36

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

小女巫 发表于 2015-4-27 22:10:59

微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。

不帅 发表于 2015-5-8 03:43:38

实践是检验自己会不会的真理。
页: [1]
查看完整版本: PHP教程之多核编程中的负载均衡困难