由于对Linux的向往,对PHP的渐渐喜爱,对Windows频繁重启的厌恶,我开始越来越想把服务器的平台更换成Linux了。我也曾在 Windows 2003上尝试用Apache代替IIS,但是结果是相当的失败。稳定性、性能比较,Apache for Windows和IIS6绝对不在一个档次上,前者与后者的差距不是几倍的问题,而是几十倍。如果,你使用Windows系统,Windows Server+IIS(6/7)+ASP.NET绝对是最佳组合,特别是IIS7配合ASP.NET,性能又上了一个台阶。
ASP.NET(C#)绝对是一个好东西,论性能,绝对不比PHP慢,甚至还要快。那为什么我要放弃ASP.NET而转向PHP呢?最主要是 Linux下,PHP是主流,并且PHP是一套开放的、成熟的体系,各种扩展,各种性能优化的方法很多很多;而ASP.NET是一个封闭的体系,并且在 Linux下实现起来并不是很完美,稳定性、性能等还都有待考验,我是万万不敢用在生产环境下的,呵呵。
啰嗦了半天,就是想表达一下我对两套体系:Linux+Nginx+MySQL+PHP(LEMP)和Windows+IIS+SQLServer+ASP.NET(WISN)的大概看法。好了,下面切入正题,说说我这几天来对着三个Web服务器的粗略测试。
首先是环境:
1、IIS环境:
2、Apache环境:
3、Nginx环境:
4、测试PHP的代码:
IIS环境中,执行时间是2.6秒;Apache环境中,执行时间是2.8秒;Nginx环境,执行时间是2.4秒。再次强调,这只是一个简单的测试,并不能代表真实应用环境中的差别。比如,运行Discuz 7.0论坛显示首页,IIS环境最快是0.038秒,而Nginx环境最快是0.016秒。
ASP.NET(C#)绝对是一个好东西,论性能,绝对不比PHP慢,甚至还要快。那为什么我要放弃ASP.NET而转向PHP呢?最主要是 Linux下,PHP是主流,并且PHP是一套开放的、成熟的体系,各种扩展,各种性能优化的方法很多很多;而ASP.NET是一个封闭的体系,并且在 Linux下实现起来并不是很完美,稳定性、性能等还都有待考验,我是万万不敢用在生产环境下的,呵呵。
啰嗦了半天,就是想表达一下我对两套体系:Linux+Nginx+MySQL+PHP(LEMP)和Windows+IIS+SQLServer+ASP.NET(WISN)的大概看法。好了,下面切入正题,说说我这几天来对着三个Web服务器的粗略测试。
首先是环境:
1、IIS环境:
引用
CPU:Core2 Duo T5500 1.66GHz
内存:DDR2-667 2GB
硬盘:富士通 5400转/分 120GB
操作系统:Windows 2003 企业版 X64
PHP:5.2.6 ISAPI
MySQL:5.1.31 X64
内存:DDR2-667 2GB
硬盘:富士通 5400转/分 120GB
操作系统:Windows 2003 企业版 X64
PHP:5.2.6 ISAPI
MySQL:5.1.31 X64
2、Apache环境:
引用
CPU:Core2 Duo T5500 1.66GHz
内存:DDR2-667 2GB
硬盘:富士通 5400转/分 120GB
操作系统:Windows 2008 标准版 X86
PHP:5.2.9-1 Fast-CGI
MySQL:5.1.31
内存:DDR2-667 2GB
硬盘:富士通 5400转/分 120GB
操作系统:Windows 2008 标准版 X86
PHP:5.2.9-1 Fast-CGI
MySQL:5.1.31
3、Nginx环境:
引用
CPU:Core2 Duo T5500 1.66GHz
内存:DDR2-667 2GB
硬盘:富士通 5400转/分 120GB
操作系统:CentOS 5.2 X64
PHP:5.2.9 Fast-CGI
MySQL:5.1.32 源码编译
内存:DDR2-667 2GB
硬盘:富士通 5400转/分 120GB
操作系统:CentOS 5.2 X64
PHP:5.2.9 Fast-CGI
MySQL:5.1.32 源码编译
4、测试PHP的代码:
引用
<?php
function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
$count=0;
$start = getmicrotime();
for ($i = 0; $i < 10000000; $i++){
$count++;
}
$end = getmicrotime();
echo $end - $start;
echo "<br />";
echo getmicrotime();
?>
function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
$count=0;
$start = getmicrotime();
for ($i = 0; $i < 10000000; $i++){
$count++;
}
$end = getmicrotime();
echo $end - $start;
echo "<br />";
echo getmicrotime();
?>
IIS环境中,执行时间是2.6秒;Apache环境中,执行时间是2.8秒;Nginx环境,执行时间是2.4秒。再次强调,这只是一个简单的测试,并不能代表真实应用环境中的差别。比如,运行Discuz 7.0论坛显示首页,IIS环境最快是0.038秒,而Nginx环境最快是0.016秒。
今天为IIS6装上了FastCGI支持


2009/03/18 21:07 | by
