sun 跑mysql 性能惨不忍睹[2]

[入库:2005年9月19日] [更新:2007年3月24日]

本文简介:

 科学球 回复于:2002-10-19 18:24:32 我举个最简单的例子。SUN的SPARC CPU是RISC的,INTEL CPU是CISC的。比较一下基本工作原理就知道了,因为不论是什么样的CPU,都是利用一个晶振来提供动力源,简单的说,就是CPU每震动一次,就是一个CPU时间。我们知道,比如我们要计算2*2的结果。INTEL CPU是通过对2个寄存器付值,将2个寄存器的值进行二次相加得出最后结果。而SUN的CPU则直接提供乘法,那么,就可以直接对2个寄存器相乘就可以了。这个数值的比较,实际上是INTEL的CPU获胜了,因为毕竟乘法所需要花费的CPU时间比加法要多。但是,如果计算的数值很大呢?必须1000*1000。那么,INTEL的CPU,因为是复杂指令,所以是通过一个总值为1000的计数器对一个寄存器进行1000次的累加。假设对10进制数值进行二进制转换每种CPU的用时都是相等的,那么,INTEL的CPU至少需要1000*n(就是完成1次加法所需的时间)这么多时间来计算。那么SUN的CPU呢,因为本身有乘法的指令,因为乘法指令是动态的,所以,耗时相对会提高。那么SUN的CPU的相对时间,也只是比2*2多增加了很少的时间而已。这样,相对于INTEL的CPU,他就快的多了,因为计算量小,他也稳定的多了。这我想就是CISC比RISC慢的主要原因。也就是说,在越大型的服务上,就越能体现RISC的实力,而在小的服务上,当然还是INTEL的要快些,但是INTEL的计算量大。我们知道,计算量大代表两个不可逾越的问题,就是计算错误和死循环。一旦出现就是死机。这也是INTEL的机器爱死机的主要原因。mysql我不清楚,但我提议你增大2个机器的负荷,看看到最后是谁先承受不住了,就能看出结果了。

 jsn 回复于:2002-10-19 22:08:53 [quote][b]下面引用由[u]科学球[/u]在 [i]2002/10/19 06:24pm[/i] 发表的内容:[/b]
我们知道,比如我们要计算2*2的结果。INTEL CPU是通过对2个寄存器付值,将2个寄存器的值进行二次相加得出最后结果。而SUN的CPU则直接提供乘法,那么,就可以直接对2个寄存器相乘就可以了。这个数值的比较,实际上是INTEL的CPU获胜了,因为毕竟乘法所需要花费的CPU时间比加法要多。但是,如果计算的数值很大呢?必须1000*1000。那么,INTEL的CPU,因为是复杂指令,所以是通过一个总值为1000的计数器对一个寄存器进行1000次的累加。假设对10进制数值进行二进制转换每种CPU的用时都是相等的,那么,INTEL的CPU至少需要1000*n(就是完成1次加法所需的时间)这么多时间来计算。那么SUN的CPU呢,因为本身有乘法的指令,因为乘法指令是动态的,所以,耗时相对会提高。那么SUN的CPU的相对时间,也只是比2*2多增加了很少的时间而已。这样,相对于INTEL的CPU,他就快的多了,因为计算量小,他也稳定的多了。这我想就是CISC比RISC慢的主要原因。也就是说,在越大型的服务上,就越能体现RISC的实力,而在小的服务上,当然还是INTEL的要快些,但是INTEL的计算量大。我们知道,计算量大代表两个不可逾越的问题,就是计算错误和死循环。一旦出现就是死机。这也是INTEL的机器爱死机的主要原因。
[/quote]

不是这样的。RISC与CISC的区别不在此,INTEL的机器爱死机也不是上述原因。

 beggar 回复于:2002-10-19 22:20:04 INTEL机器爱死机????怪Intel还是应该怪外设供应商?

 科学球 回复于:2002-10-19 22:43:15 [quote][b]下面引用由[u]jsn[/u]在 [i]2002/10/19 10:08pm[/i] 发表的内容:[/b]
不是这样的。RISC与CISC的区别不在此,INTEL的机器爱死机也不是上述原因。
[/quote]

我理解有错误吗?望老师指正RISC和CISC的区别。这是我整个计算机个人理论的基础。


 jsn 回复于:2002-10-19 23:16:51 [quote][b]下面引用由[u]科学球[/u]在 [i]2002/10/19 10:43pm[/i] 发表的内容:[/b]
我理解有错误吗?望老师指正RISC和CISC的区别。这是我整个计算机个人理论的基础。
[/quote]
实际上x86有乘除法指令:MUL、IMUL、DIV、IDIV,并且指令周期都很短,以386为例,9个时钟周期就可执行完一次乘法,越往后的CPU,这个时钟周期会越短。在P4上执行一次乘法估计用1、2个时钟周期就可以了。

如果乘除法都通过加减法来代替,那就很可怕了。


而Intel的机器死机,要归功于Bill Gates。
如果拿Intel来跑unix,也是很稳定的,比如FreeBSD。


RISC的技术特点 

RISC概念是IBM在70年代提出的。RISC技术大幅度减少指令的数量,用简单指令组合代替过去的复杂指令,通过优化指令系统来提高运行速度。RISC技术采用了更加简单和统一的指令格式、固定的指令长度以及优化的寻址方式,使整个计算机体系更加合理。指令系统的简化使得系统指令译码器的设计复杂程度也大大简化了,并使完全由硬件逻辑实现指令译码成为可能,而尽量减少使用内嵌微代码来完成译码操作,大大提高了指令的执行速度。RISC处理器比同等的CISC处理器性能提高50%~75%。


CISC的技术特点 

CISC技术从1964年IBM360系统开始,包括后来的X86系列处理器都属于这种结构。其特点是指令系统复杂,通常具有100条以上的指令(有的达到500条)和多种寻址方式,多数指令是多周期指令。CISC系统追求的目标是机器指令设计尽力接近高级语言的语句使编译过程简单。复杂的指令结构和大量的寻址方式使得编译程序每运行一步都面临大量需要选择的指令和寻址方式,编译过程非常复杂。同时大量的指令使指令控制器的设计复杂化,占用芯片的面积增大,不利于大规模集成电路的设计,系统的性能提高受到限制。


 shen 回复于:2002-10-20 13:05:11 RISC推出的原因是当时硬件条件不好。
(RISC的创始人一个搞了MIPS,另一个搞了SPARC。
他们出的书成了设计MIPS CPU的BIBLE,国内2本共定价150元不到 :)

现在买3万元左右的FPGA,代理商就可以送RISC的内核和编译软件
任何人可以把后续功夫作了拿去投片出CPU。
所以SUN的以前的技术优势在这点被大幅降低。

还有就是尽管SUN现在推出了1G CPU,还没机会去拆来看,估计又是外置的CACHE。
本来RISC的晶体管就少,明显看出这和AMD INTEL 之类内置CACHE在技术上和速度上不是一个档次的。



 fh008 回复于:2002-10-20 23:13:39 精简指令系统对常用的指令可获得更小的指令周期,所以它在普通应用上效率很高。
但是对于一些比较特殊的指令,复杂指令系统只要一条指令就能搞定,而RISC必须
用几条组合指令来完成相等功能,相对机器时间又会延长,效率高不高完全取决于指
令的使用概率。因此,在特殊应用领域,如科学计算、商业应用等等,CISC会表现得
更好。

 wangrujun 回复于:2002-10-21 09:38:02 risc和cisc的技术特点是上世纪6、70年提出的,现在的cpu已经不太注重所谓纯risc和纯cisc的区别。按道理说,risc实现简单,它的主频应该远远高于cisc才是,这也是上世纪计算机界一直认为risc的cpu优于cisc的cpu的原因。从理论上说,risc应该通过主频高的优势,在性能上超越cisc的cpu。但是事实是目前cisc的cpu的主频远高于risc的cpu。另外,intel在设计奔腾时,就借鉴了risc的思路,使之成为兼有cisc和risc特征的新型cpu。时至今日,从性能上说,intel的x86路线,远比ibm和sun之类的risc类的cpu的主频高,选择intelcpu已经可以得到更好的性能。从单颗cpu的性能上说,risc比cisc强的说法已经被现实击破。但是老牌的risc的cpu,在多cpu运行时,有更悠久的历史,各家发行的unix操作系统,也对其有更好的优化,基本上都可以支持到64颗以上。x86上的windows,在支持多cpu方面,逊于各类老牌unix。
所以对于大陆目前发布的某款cpu,有业界人说,没有操作系统厂家的支持,不可能成功。
ibm、sun之类的服务器,较之pc的优势主要在于稳定性、磁盘io,及多cpu的支持。多cpu可以使服务器批量处理大型任务而不受中断的干扰。众所周之,intel在cpu性能方面,最头疼的就是中断的处理。一个中断将会造成整个流水线作废,cpu性能急剧下降。freebsd4.7中,就专门为此做出优化,以避免因中断服务过多造成假死机现象。通常的数据库处理,对于浮点的运算要求不高。其IO速度成为瓶颈。而稳定性方面,对于关键业务特别重要,所以银行里常有停机1秒钟,损失多少万元的说法。


 科学球 回复于:2002-10-21 09:39:41 既然RISC在CACHE技术之类上和CISC不是一个档次的,或者RISC的开发是在硬件技术不成熟的基础上的。为什么在高端的服务器上用的CPU,都是RISC的呢?而且,很明显,RISC更稳定,速度也更快。在多CPU技术上,也比CISC表现的更好呢?

比如SUN的SPARC,就是RISC的CPU,而且已经支持到128个CPU,而INTEL,也只支持到8个CPU而已,而且也不是非常的稳定。

如果说INTEL的CPU容易死机或者有其他什么问题主要归功于MS,那么为什么其他的高端服务器厂商,不肯选用INTEL的CPU呢?甚至motorola的CPU在高端的工作站和服务器上都有应用,INTEL的却不行?

事实可以说话,据我所知,IA架构的系统,不管他的速度如何,都停留在部门级服务器这个档次上,在大的电信级应用中,全省的计算中心,都没有应用INTEL的CPU啊

 老农a 回复于:2002-10-21 12:43:50 呵呵,很难得全面。

本文关键:sun 跑mysql 性能惨不忍睹
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top