读书人

x86平台和Power平台比,哪位高手更稳定

发布时间: 2012-03-07 09:13:51 作者: rapoo

x86平台和Power平台比,谁更稳定?
从测试来看,x86平台和Power平台比谁更稳定?据说7500在稳定型上很不错了,有测试过的进来谈下,是不是值得购买?

[解决办法]
用我自己得经验来看,Intel的cpu跑websphere 7比ibm的power更快。

老大,你说呢?
[解决办法]
推出了至强系列,CPU计算能力越来越高了,在实力上和RISC也在慢慢缩短。
[解决办法]
以我们公司数据中心应用情况,很多小机做的事情,现在正在被PC服务器替代,用集群解决性能问题。

价钱可省多了
[解决办法]
PowerPC是由IBM、Motorola和Apple联合开发的高性能32位和64位RISC微处理器系列,以与垄断PC机市场的Intel微处理器和微软公司的软件相竞争。PowerPC微处理器与X86及X86-64并不兼容.

小型机如今的生存状况早已不能与十几年前同日而语,这其中所遇到的最大挑战就来自x86服务器。这是因为小型机性能再提高,去冲击大型机市场意义并不大,可下面的x86服务器的性能提升则对小型机形成了巨大的压力。

处理器的架构不同,并不是最重要的(想想看三大游戏主机都是采用Power架构的处理器而非主流的x86处理器,你能说它代表了高端应用吗?),它无所谓高端与低端,关键还在于应用性能、成本并辅助以相应的RAS需求,并最终影响到市场规模,进而左右应用开发的规模,这反过来也决定了你的生态环境是健康的循环生长,还是恶性的循环消亡。

7500的定位,已经不再是传统的多路x86服务器市场,而是高调的提出了新的市场目标——RISC Replacement,即RISC替换市场,英特尔的这一提法本身就很有意思,也很巧妙,因为传统的UNIX小型机的三大系统中,有两大系统的处理器是基于RISC(Reduced Instruction Set Computer,精简指令集计算机)架构——IBM的POWER与Sun的SPARC,而HP公司的小型机则是基于英特尔的安腾(Itanium)处理器,它采用的是EPIC(Explicitly Parallel Instruction Code,显性并行指令代码)架构,它即不同于x86处理器的CISC(Complex Instruction Set Computer,复杂指令集计算机)架构,也不同于RISC架构,所以英特尔强调RISC替换市场很明确就是指向了POWER与SPARC系统.

主要是我不喜欢IBM、Motorola和Apple这个团队,所以我倾向7500
[解决办法]
转点资料,希望有用。

HTML code
本文介绍POWER和Intel x86平台间的字节序差异,以及在程序移植中,如何注意,评估字序问题字节序(Endianness)字节序是一个比较有意思的现象,简单说就是处理器按照什么存储格式处理、存储数据。处理器架构的不同,对字节序的处理相应的存在差异,本文介绍POWER处理器和x86处理器两种不同架构的处理器的字节处理方式。字节序问题,是程序开发人员经常遇到的,如在程序移植中,驱动程序开发中,不同架构处理器平台的数据迁移,等等。字节序有两种,一种是big endian,中文通常译为大印地安序或者大尾,另一种为littleendian,译为小印地安序或者小尾。本文中,统一用其英文名称,不再翻译为中文。Big endian 和 little endian字节序反映了一个数据元素及其组成字节在内存中是如何存储和定位的。在一个多位数中,高位的数字称之为更有效位或更高位(more significant),同样的,在一个多字节的数中,某一字节的值越大,其字位就越有效,或更高,例如数字0x89ABCDEF,有四个字节组成,分别为0x89, 0xAB, 0xCD, 0xEF, 相应的算术值为0x89000000,0xAB0000, 0xCD00和0xEF,很明显,0x89的值最大,称之为数字0x89ABCDEF的最高位,而0xEF为最低位。数字在内存中的存放,从低位起,有两种存放方式,分别为:1) 先存放最低位(little endian)2) 先存放最高位(big endian)下图表明不同的处理器是如何在内存中,按照big endian和little endian存放32位十六进制数的,如0x89ABCDEF:图一. Big endian和little endian存放十六进制数的格式0x89是最高位字节,0xEF为最低位字节,在big endian字序的系统中,最高位字节存放在内存的最低位址,在little endian字序的系统中,最低位字节存放在内存的最低位址。对应用程序而言,写一个字到内存中,然后再从同一个地址读取,字节序并不是太大的问题。但是,如果存储的字在写的同时,某一个应用读取同一地址的字,应用读取到的值可能会不同,取决于处理器采用的字节序是big endian还是little endian。在POWER和Intel x86两种不同的处理器架构中,POWER处理器平台系统使用big endian字节序存储数据,而x86处理器的系统使用little endian存储数据。从x86平台移植到POWER平台的应用,很重要的一件事就是定位于字序相关的代码,并转换位big endian格式。字节序处理这部分内容介绍如何定位字序相关的代码,并介绍采用何种方式转换字序格式。使用的编程语言为C,灵活、强大、高效的数据处理能力是C编程语言的一大特点,在许多系统级的应用软件编写中,C编程语言是最优先的选择,如操作系统和设备驱动程序的开发。这一强大的功能,同样包含构造新的类型,指针的使用、联合、结构和数据位处理等,这正是处理字节序最需要的,举例如下:示例一:使用指针处理数据#include <stdio.h>#include <stdlib.h>int main(void) {int val;unsigned char *ptr;ptr = (char*) &val; /* 指针ptr指向val的内存地址*/val = 0x89ABCDEF; /* 四字节的常量 */printf("%X.%X.%X.%X\n", ptr[0], ptr[1], ptr[2], ptr[3]);exit(0);}示例二:使用联合处理数据#include <stdio.h>#include <stdlib.h>union {int val;unsigned char c[sizeof(int)];}u;int main(void) {u.val = 0x89ABCDEF; /* four bytes constant */printf("%X.%X.%X.%X\n", u.c[0], u.c[1], u.c[2], u.c[3]);exit(0);}分别在x86和POWER平台编译、链接并运行以上程序,得到如下结果:l x86平台EF.CD.AB.89l POWER平台89.AB.CD.EF以上的测试用例,反映了比较典型的自序问题。从系统的层次来看,POWER处理器系统只支持big endian格式的字节序,但也应当知道,在微通道和PCI侧面,却使用持little endian格式的字节序,POWER系统中,在I/O总线和系统总线间I/O控制器起到桥梁的作用,负责格式的转换。I/O控制器将数据流看作是字节流,单子节数据直接传输,对多字节数据则兑换字节的高低位后再传输。IO相关的应用,如TCP/IP协议的处理,同样会有字节序的处理,TCP/IP协议指定其数据格式为big endian,基于x86的应用首先转换TCP/IP的数据为little endian格式。实际上,POSIX提供相应的操作函数,这些函数是htonl(), ntohl(), htons()和ntohs()。如何编写字节序无关的代码如果应用在不同字节序的平台间仍可以保持其功能的一致性,可以认为应用是字节序无关的。换句话说,应用的功能和运行平台的字节序无关,怎样实现这些应用代码呢?给出如下的建议:1) 使用宏和条件编译应用代码的编写中,充分使用宏和条件编译,可以明显提高应用的可以执行。示例一:使用条件编译界定字节序#include <stdio.h>#define BIG_ENDIAN 0#define LITTLE_ENDIAN 1#define BYTE_ORDER BIG_ENDIANunion {int val;unsigned char c[sizeof(int)];}u;int main(void) {u.val = 0x89ABCDEF;#if (BYTE_ORDER == BIG_ENDIAN)printf("%X.%X.%X.%X\n", u.c[0], u.c[1], u.c[2], u.c[3]);#else /*! BYTE_ORDER == BIG_ENDIAN*/printf("%X.%X.%X.%X\n", u.c[3], u.c[2], u.c[1], u.c[0]);#endif /*BYTE_ORDER == BIG_ENDIAN*/exit(0);}示例二:使用宏提取四字节的整形数的16-23位字节#define INTB16TO23(a) ((a>>16) & 0xff)int main(void) {int a=0x11121314;int b;b = INTB16TO23(a); // b 的值为 0x12}2) 使用编译选项使用编译器提供的相应的编译选项,如BYTE_ORDER,可以更方便的解决字节序的问题,而不用修改程序代码,只需要修改makefile即可,已使用big endian字节序为例,增加-DBYTE_ORDER=BIG_ENDIAN,重新在新的平台编译链接应用即可。3) 测试内存的分布假定1为little endian字节序,0为big endian字节序。在以下的示例中,首先测试多字节整型数的第一个字节,如果为1,则按照little endian的格式处理数据,如为0,则按照big endian的格式处理数据。采用这种方式的缺点是每一次的数据操作到需要检测,对应用而言,增加了额外的操作,相应的会造成部分性能的损失。示例:运行中判断字节序的类型#include <stdio.h>#include <stdlib.h>const int endian = 1;#define is_bigendian() ( (*(char*)&endian) == 0 )union {int val;unsigned char c[sizeof(int)];}u;int main(void) {u.val = 0x89ABCDEF;if (is_bigendian()) {printf("%X.%X.%X.%X\n", u.c[0], u.c[1], u.c[2], u.c[3]);}else {printf("%X.%X.%X.%X\n", u.c[3], u.c[2], u.c[1], u.c[0]);}exit(0);} 


[解决办法]
先说说不同os平台上的问题。

去年5月份公司命令各个局点必须将jdk升级到6,于是拉着客户将生产系统几十个机器从was 6.0.2.11 32bit for ppc升级到was 7.0.0.3 64bit(当时比较新的pack,没有bug就不打新的pack了,千万不能没事升个级玩,估计三年之内不会再升级was了。),在两种平台上同时跑,一个是p595,8c/30G左右,aix5.3.0.8,一个是intel的至强pc刀片,双核2C/16G,suse 10sp2,几个月内出了n多问题,现在总算稳定了,不再折腾了。

[解决办法]
Power平台,我家里有一个应用——XBOX360,速度很快啊,比我的x86电脑玩游戏爽的不是一点两点啊
[解决办法]

探讨

Power平台,我家里有一个应用——XBOX360,速度很快啊,比我的x86电脑玩游戏爽的不是一点两点啊

[解决办法]
性能上大家也看到这几年x86确实很抢眼,性能从核心上都有很大的提高,工业标准兼容性好,并且价格便宜,可管理性、技术先进性这个目前还是RISC占先。说到稳定性上,这里面还有人为因素和管理因素,至于采购最终的决定权,还有上司的行政因素
[解决办法]
服务器讲究的是RAS!
pc server 主要是在性能上得到突破,现在很接近小机,但其它方面还有不少距离;
反之, 预算有限就买pc server, 其tpcc看起来很漂亮;
[解决办法]
RAS全称是Reliability, Availability and Serviceability,是电脑硬体工程上的术语,最初来自IBM公司为其大型主机所做的宣传广告,强调大型主机系统的坚韧强固:稳定性(或称:坚稳性)、可用性(或称:可靠性)、可服务性,如今这个概念已广为人知,并被缩写、简称为RAS。
[解决办法]
个人觉得影响这个的原因很多,最起码管理员水平如何、运行环境、用途等等都会影响的。这就好比拿一匹黑色的千里马和一匹白色的千里马来做比较。放在庸夫手里他只是一匹马,放在伯乐手里它就能重复能发挥它千里马的作用
[解决办法]
稳定性不仅仅取决于处理器,一个计算机系统(比如一台服务器)由众多的硬件组成,上面还运行着复杂的软件,每个部件都影响稳定性。而且稳定性与性能无关,不是说性能好稳定性就好,很多军用设备,在满足需要的前提下,优先使用低频的处理器。

如果仅仅比较处理器的话,肯定PowerPC要比x86稳定,毕竟运行在众多军用设备中(而且已经登陆火星,就我所知,x86处理器还没有到达过地球大气层之外)。

[解决办法]
还在说Intel/AMD 2000年以后发布得CPU型号是CISC,那太太OUT!!
Intel从P6开始,AMD 从K7开始已经在x86 CPU 内做了x86 指令集到内部u-op的翻译。u-op是RISC类的。
从2002年半导体工艺遇到工作频率物理瓶颈后,AMD发明,Intel,IBM仿照,都改为在一个CPU核里做多个ALU 执行单元。同时在一个CPU 内制作更多的处理器核。
因此Intel/AMD/IBM 等CPU在现在是没有本质技术区别的。性能差异来自工艺和L2/L3 缓存。IBM 在Power CPU上经常放入巨大的L2/L3 缓存,同时利用特殊生产工艺,不惜成品率低。导致的结果是性能好一点,但是成本比其他CPU高很多,Power现在是有钱的小众用户,宰了没商量。
关于硬件稳定性,请参考Google 基础设施总架构师最近发表的文章ppt,当前硬件最不稳定的是硬盘,旋转机械本质限制,然后是电源,因为高压问题,他们的故障率比其他高几个数量级。因此,那个厂商的CPU,可靠性影响是不用考虑了。

各位好好参考参考Google 基础设施总架构师最近发表的文章ppt,去搞清楚现代计算机性能的主要瓶颈和可靠性统计数据。

[解决办法]
Power和Power PC两种CPU,请搞搞清楚区别。当年Power PC发展的时候有个主要伙伴是Motolora,它可是美国军方和政府CPU的首要供应商。Power PC本来就有嵌入式的变种,因此,在航空航天上应用是基于Motolora的市场关系。
军方及航空航天应用的CPU类型很多,几乎已知的CPU类型都有,如MIPS,PowerPC,Intel 960,SPARC,例如Intel 960 CPU就用于F22 主计算机上。同时,注意Intel 960 是Intel 90年代研发的唯一一个RISC 类CPU,完全不同于x86 CPU。
[解决办法]
楼上有说:稳定性是个系统工程。
因此,最新的研究是把全系统稳定性,分为硬件、软件两方面来统计分析的。

硬件方面,基于Google的论文,已经得出结论。稳定性最差的是硬盘和电源,比其他部件差1-2个数量级。
软件方面,基于源代码分析,有过几篇文章,总的来说,每千行代码缺陷率,开源软件要好些。


[解决办法]
小型机相对X86,不管是硬件还是软件上都比较封闭,其使用的处理器和操作系统一般是产商独有的,而X86是开放的处理器开放服务器,其硬件基本上是通用而统一的,操作系统也是通用的。
但勿忧置疑,短时间内,小型机不管是在性能上还是稳定上是X86平台无法替代的,但我们也看到了以Intel为代表的至强X86处理器平台在逐步缩小与小型机的距离。
随着云计算向众深方向发展,云计算需求的不断加大,建设企业级数据中心的急切需求,对虚拟化技术、多核多线程、并行处理等技术提高了更高的要求。
谁能在云计算企业级应用中获得较大份的蛋糕,谁就是胜者。
但短期来看,以IBM为代表的Power7似乎不管在虚拟化技术、多线程、并行技术这块占有较大优势。
综上:两者在短期时间内,还是会分而治之,各自在自己的领域发挥作用。但从长远上来看,小型机被X86平台服务器所替代似乎是大势所趋。

读书人网 >UNIXLINUX

热点推荐