CPU和内存:CPU的类型、主频和数量在相当程度上决定着服务器的性能服务器应采用专用的ECC校验内存,并且应当与不同的CPU搭配使用。
芯片组与主板:即使采用相同的芯片组,不同的主板设计也会对服务器性能产生重要影响。
网卡:服务器应当连接在传输速率最快的端口上,并最少配置一块千兆网卡。对于某些有特殊应用的服务器(如FTP、文件服务器或视频点播服务器),还应当配置两块千兆网卡。
硬盘和RAID卡:硬盘的读取/写入速率决定着服务器的处理速度和响应速率。除了在入门级服务器上可采用IDE硬盘外,通常都应采用传输速率更高、扩展性更好的SCSI硬盘。对于一些不能轻易中止运行的服务器而言,还应当采用热插拔硬盘,以保证服务器的不停机维护和扩容。
冗余:磁盘冗余采用两块或多块硬盘来实现磁盘阵列网卡、电源、风扇等部件冗余可以保证部分硬件损坏之后,服务器仍然能够正常运行。
热插拔:是指带电进行硬盘或板卡的插拔操作,实现故障恢复和系统扩容。 同时,在选择IA服务器时通常需要考虑可管理性、可用性、可扩展性、安全性以及可靠性等几方面的性能指标。
问题二:64位服务器覆盖的应用范围?
从应用类型来看,大致可分为主域服务器、数据库服务器、Web服务器、FTP服务器和邮件服务器、高性能计算集群系统几类。 而目前,主流的服务器处理器有:英特尔安腾处理器、英特尔至强处理器和AMD公司的Opteron处理器,这些处理器是近几年推出的新型64位服务器。笔者就以上的几种应用,讨论一下服务器在不同的应用当中,对服务器子系统的不同要求进行简单概述:
主域控制器 网络、用户、计算机的管理中心,提供安全的网络工作环境。主域控制器的系统瓶颈是内存、网络、CPU、内存配置。
文件服务器 文件服务器作为网络的数据存储仓库,其性能要求是在网络上的用户和服务器磁盘子系统之间快速传递数据。
数据库服务器 数据库引擎包括DB2、SQL Server、Oracle、Sybase等。数据库服务器一般需要使用多处理器的系统,以SQL Server为例,SQL Server能够充分利用SMP技术来执行多线程任务,通过使用多个CPU,对数据库进行并行操作来提高吞吐量。另外,SQL Server对L2缓存的点击率达到90%,所以L2缓存越大越好。内存和磁盘子系统对于数据库服务器来说也是至关重要的部分。
Web服务器 Web服务器用来响应Web请求,其性能是由网站内容来决定的。如果Web站点是静态的,系统瓶颈依次是:网络、内存、CPU如果Web服务器主要进行密集计算(例如动态产生Web页),系统瓶颈依次是:内存、CPU、磁盘、网络,因为这些网站使用连接数据库的动态内容产生交易和查询,这都需要额外的CPU资源,更要有足够的内存来缓存和处理动态页面。
高性能计算用的集群系统 一般在4节点以上,节点机使用基于安腾、AMD 64技术的Opteron系统,这种集群系统的性能主要取决于厂商的技术实力、集群系统的设计、针对应用的调优等方面。
问题三:多核时代,处理器内核越多越好吗?
二大芯片巨头英特尔、AMD公司于2005年底推出多核处理器,目前,不管是双核、还是即将成为2007年主流四核处理器或是将来的八核、十六核处理器,英特尔、AMD之间激烈的竞争,促使处理器市场新品越来越多。在性能上、在功耗节能方面还是其它服务器配件方面,都极大地促进了产业的发展。
而对于大部分用户来讲,服务器在应用层次方面,仍旧是不变的。唯一需要考虑的就是用户自身的发展对于服务器的性能是否能够满足。现今,对于一款四核高性能服务器,其采购成本远远高于现今主流的双核服务器,如果双核服务器就能够满足您的需求,同时也能够为将来的3~5年发展预留足够的空间,那么就没必要选择价格昂贵的四核服务器。
综合以上:对于单核/双核/多核综合交叉时代,选购服务器应该把目光放在自身需求上面,以本身应用需求、资金投入为因素,选购最合适的服务器产品。
1.1 top
1.2 vmstat
r 表示可运行进程数目,数据大致相符;而b表示的是 uninterruptible 睡眠的进程数目;swpd 表示使用到的虚拟内存数量,跟 top-Swap-used 的数值是一个含义,而如手册所说,通常情况下 buffers 数目要比 cached Mem 小的多,buffers 一般20M这么个数量级;io 域的 bi、bo 表明每秒钟向磁盘接收和发送的块数目(blocks/s);system 域的 in 表明每秒钟的系统中断数(包括时钟中断),cs表明因为进程切换导致上下文切换的数目。
说到这里,想到以前很多人纠结编译 linux kernel 的时候 -j 参数究竟是 CPU Core 还是 CPU Core+1?通过上面修改 -j 参数值编译 boost 和 linux kernel 的同时开启 vmstat 监控,发现两种情况下 context switch 基本没有变化,且也只有显著增加 -j 值后 context switch 才会有显著的增加,看来不必过于纠结这个参数了,虽然具体编译时间长度我还没有测试。资料说如果不是在系统启动或者 benchmark 的状态,参数 context switch>100000 程序肯定有问题。
1.3 pidstat
如果想对某个进程进行全面具体的追踪,没有什么比 pidstat 更合适的了——栈空间、缺页情况、主被动切换等信息尽收眼底。这个命令最有用的参数是-t,可以将进程中各个线程的详细信息罗列出来。
-r: 显示缺页错误和内存使用状况,缺页错误是程序需要访问映射在虚拟内存空间中但是还尚未被加载到物理内存中的一个分页,缺页错误两个主要类型是
-s:栈使用状况,包括 StkSize 为线程保留的栈空间,以及 StkRef 实际使用的栈空间。使用ulimit -s发现CentOS 6.x上面默认栈空间是10240K,而 CentOS 7.x、Ubuntu系列默认栈空间大小为8196K
1.4 其他
while :do ps -eo user,pid,ni,pri,pcpu,psr,comm | grep 'ailawd'sleep 1done
2.1 iostat
3.1 netstat
➜ ~ netstat -antp #列出所有TCP的连接
➜ ~ netstat -nltp #列出本地所有TCP侦听套接字,不要加-a参数
3.2 sar
3.3 tcpdump
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)