一般来说,服务器性能主要由三部分决定:

1.服务器的硬件配置

2.服务器操作系统

3.应用程序

服务器硬件配置主要有:

(1).CPU

一般来说CPU的数量越多,主频越高,那么服务器的性能也就会越好。在实际测试过程中,如果在大压力下持续观察CPU的使用率很低,那么CPU的资源基本上是可以满足服务器要求的。这样的情况其实是有点浪费CPU资源的,比较理想的情况是压力不大的时候CPU利用率比较低,压力上来之后CPU利用率保持在60%-70%。大部分的CPU在同一时间内只能运行一个线程,但是超线程的处理器可以在同一个时间运行多个线程,我们可以利用处理前超线程特性提高系统性能。虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每个CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。

(2).RAM

内存的大小也是影响服务器性能的一个重要因素。内存太小,系统进程要被阻塞,应用程序会变得缓慢,甚至是失去响应;如果太大的话,也是造成一种浪费。Linux系统中采用物理内存和虚拟内存两种方式,使用虚拟内存可以缓解物理内存的不足,但是如果占用过多的虚拟内存的话,应用程序的性能会明显的下降。

(3).网络宽带

网络带宽的大小限制了客户端与服务器交互的流量,相对其他硬件资源,网络带宽在价格上更贵。这需要我们合理预估服务器的可服务器能力,需要占用的带宽资源。

(4).硬盘

以前硬盘多是机械方式运作的,主要体现在硬盘读写前寻找磁道的过程。硬盘自带的读写缓存大小,对于硬盘读写速度至关重要。读写速度快的硬盘,通常都带有较大的读写缓存。硬盘的寻道过程是机械方式,决定了其随机读写速度将明显低于顺序读写。在我们做系统设计和实现时,需要考虑到硬盘的这一特性。

操作系统:

(1).操作系统

当前主流的服务器操作系统则主要分为:Windows server、UNIX、Linux、NetWare这四大阵容。不同的系统有不同的特点,要根据情况来判断
Windows server是用户群体*大的服务器系统,不得不多做介绍。旗下又分为:Winnt4.0、Win2000、Win2003、Win2008、Win2012。

Win2000则是Winnt原有完整的内核上进行开发的,对多任务的处理能力有了大幅的提升,管理以及其他功能更加全面,但是系统的稳定性和安全性被削弱了。微软也停止了对win2000的销售和升级服务;win2003在操作的易用性上进行了升级,安全性是目前所有的windows server系统中*高的,线程处理能力、硬件的支持、管理能力都有了大幅的提升,是目前服务器操作系统中主流的操作系统之一。不过由于更多功能的加入,使得win2003的处理能力有所下降。win2008添加了一些特性和策略,以及多了server 2008 r2b版本,运行速度有所加强,但是稳定性有所欠佳。也是主流系统之一。*后就是win2012,目前微服务器操作系统中*高的版本,同时也有r2版本,全面的升级,对应win8内核优化而来,但是,对一些老牌软件应用的兼容性,以及稳定性还是欠佳的。如果说            Windows server是为单用户设计的,那么UNIX则是为多用户而生的。支持大型文件系统和数据库,系统的安全性、稳定性、以及引用软件有着Windows server无法比拟的优势。但是操作界面欠人性化,相关操作管理技未得到推广,使得雇佣维护人员的成本非常高。
Linux是基于UNIX系统开发修补而来,免费、开源、使得其稳定性、安全性、兼容性非常高,对于商业服务器是首选。但是仅凭开发的源代码,使得很多服务器管理人员对其喜爱有加。
NetWare对服务器硬件的要求*低,而且对于网络的组件也有着先天的优势,能够支持无盘工作站,也能支持非常之多游戏软件的开发环境搭建,还能节省很多成本,常用户网络教学、游戏大厅、金融系统等。但是同样是需要手工敲入命令来实现操作指令的。而且系统多年来也没有更深层次的更新,使得部分软件的支持与其他新型应用的兼容性有所欠佳。

(2).操作系统选型原则

一般来说,个人用户或者实验用户,选用windows操作系统比较普遍,人性化的界面设计使得操作简单,而且网上能找到大量的资料来参考。商业或者对服务器性能要求较高场合一般使用Linux或者UNIX.

应用程序本身:
对于应用程序本身的设计来说,只要选用合适的数据结构和内存操作方式,那么至少在性能上差距不是很大,避免对常用内存数据的多次创建和释放。也可增加服务器的性能。