文档章节

Windows 7 上 IIS 和 Apache 性能测试对比

eechen
 eechen
发布于 2015/04/15 15:09
字数 551
阅读 7.8K
收藏 6
环境(64位Win7): IIS7+PHP5.4(NTS非线程安全版本) vs Apache2.4(32位)+PHP5.4
静态文件处理:
ab -k -c100 -n10000 http://127.0.0.1/info.htm      # IIS RPS 1709
ab -k -c100 -n10000 http://127.0.0.1:8080/info.htm # Apache RPS 1847
结论:基于APR运行时和WinNT多线程的Apache在静态资源处理方面并不比IIS差.




PHP文件处理:
ab -k -c100 -n10000 http://127.0.0.1/bs.php      # IIS RPS 1180
ab -k -c100 -n10000 http://127.0.0.1:8080/bs.php # Apache RPS 1071
结论:Apache使用了线程化的MPM,所以需要使用线程安全版本的PHP,而线程安全检查有一定开销,所以性能要比IIS+PHP-CGI低一些.




info.htm是IIS下phpinfo()输出HTML内容.
bs.php是一个执行100次冒泡排序的PHP脚本,内容如下:
<?php
header('Content-Type: text/plain; charset=utf-8');
function bubble_sort($array) {
    $size = count($array);
    for ($i=0;$i<$size;$i++) {
        for ($j=0;$j<$size-1-$i;$j++) {
            if ($array[$j] < $array[$j+1]) {
                $temp = $array[$j];
                $array[$j] = $array[$j+1];
                $array[$j+1] = $temp;
            }
        }
    }
    return $array;
}
for ($c=0;$c<100;$c++) {
    $array = array(0,1,2,3,4,5,6,7,8,9);
    $array = bubble_sort($array);
}
print_r($array);
?>

在一次IIS7+PHP的phpinfo()测试中,100并发,10000个请求, 居然有8978个请求失败了!


附: Windows 7 上安装 IIS 和 PHP
安装IIS:
控制面板-程序和功能-打开或关闭Windows功能:
Internet信息服务 - Web管理工具 - IIS管理控制台 打勾
Internet信息服务 - 万维网服务 - 常见 HTTP 功能 - HTTP 错误 打勾
Internet信息服务 - 万维网服务 - 常见 HTTP 功能 - 静态内容 打勾
Internet信息服务 - 万维网服务 - 应用程序开发功能 - CGI 打勾


点击确定等待安装完成,重启操作系统.

默认网站根目录:
C:\inetpub\wwwroot

控制面板-管理工具-Internet信息服务(IIS)管理器: 可以看到"FastCGI设置".

PHP Manager 1.2 for IIS 7
http://phpmanager.codeplex.com/
控制面板-管理工具-Internet信息服务(IIS)管理器: 可以看到"PHP Manager".

PHP NTS:
http://windows.php.net/
控制面板-管理工具-Internet信息服务(IIS)管理器-"PHP Manager"-"Register new PHP version"填入:
D:\png\php\5.4.39NTS\php-cgi.exe
点击"check phpinfo()",选择一个用于检查PHP环境的站点,检查PHP是否安装成功.
如果注册了多个PHP版本,可以点击"Change PHP version"切换.

© 著作权归作者所有

eechen

eechen

粉丝 1038
博文 107
码字总数 56154
作品 1
深圳
私信 提问
加载中

评论(4)

首席养猪CEO-丁三石
首席养猪CEO-丁三石
好文
eechen
eechen 博主

引用来自“钛元素”的评论

收藏!
Linux上的Apache从2.4开始模式采用event MPM,这是一个多工作进程,每个工作进程包含多个线程的MPM,而且使用epoll事件驱动,比Windows上的win32 MPM更高效稳定,生产环境建议还是在Linux上部署Apache。Nginx从1.7.11加入了AIO线程池,能够使用多线程读取和发送文件,以免工人进程被阻塞,所以Nginx也可以看作是一个多进程多线程epoll事件驱动的架构了。
钛元素
钛元素
收藏!
apache nginx 性能简单对比测试

VPC 32 cpus,8G ram,SSD linux 环境是centos 7 apache 2.4 yum安装base库 php 5.4 yum安装base库 php-fpm 5.4 yum安装base库 nginx 1.10 yum安装epel库 windows 环境是 windows server 201......

titandeng
2017/03/07
0
0
IIS VS Nginx实测对比-第一回合,静态文件-虚拟机下的对决

由于机器难找,所以暂时在虚拟机下进行对比,好处是系统的切换比较快,省了不少时间,其二是由于硬件差异趋近于无,所以相对结果还是比较客观的,除此之外还可以看看在有限的硬件条件下系统的...

亚历山大同志
2010/06/18
0
0
IIS VS Nginx 如何合理对比以及看待IIS和Nginx的性能

此乃战帖,必火!之前某次讨论中老赵坚称IIS的性能不比nginx来得差,但是很多linuxer坚信强悍的Nginx乃IIS杀手,所以今天我想和大家共同探讨的是如何公平公正的对比web服务器的性能。希望对正...

亚历山大同志
2010/06/14
0
0
替代 Apache 和 IIS 的轻量级网络服务器盘点

说起当今的网络服务器,我想大家对Apache和IIS不会陌生,一般对于Windows的操作系统来说用的IIS比较多,而对于Linux来说,Apache 会占有比较大的优势。但是,出色的网络服务器可并不只有Apa...

Midnight
2011/10/11
3K
9
FastCGI 不完全高级指南(转载)

作者:zealy 一、FastCGI是什么? FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解释 器的反复加载是CGI性能...

mac_zhao
2011/05/06
283
0

没有更多内容

加载失败,请刷新页面

加载更多

Paragon NTFS for Mac(Mac读写ntfs磁盘工具) v15.5.106

Paragon NTFS for Mac(Mac读写ntfs磁盘工具)。它专门开发用来弥补Windows和Mac OS X之间的不兼容性,通过在Mac OS X系统下提供对任何版本的NTFS文件系统完全的读写访问服务来弥合这种不兼容性...

麦克W
22分钟前
19
0
DeepFaceLab上云之滴滴云使用全攻略!

以下内容为转载,转载出处请注意文末。 几天前写了一遍关于云服务器文章,简单的说了下目前国内有些云GPU,大概做了一个价格比较,不少人想要尝试下,但是不知道如何操作。今天就来说说具体操...

滴滴云
26分钟前
17
0
面试官问:cookie是什么?session是什么?,以及它们之间的区别

JavaWeb这个时间有点久了,不能学了前面忘后面,是时候总结一下了 Cookie cookie由服务器生成,发送给浏览器,保存在浏览器上。 cookie生命周期 会话级别: 本次浏览器关闭 保存在 浏览器内存...

庭前云落
32分钟前
24
0
NIO

行者终成事
34分钟前
28
0
多线程 ReentrantLock 中 Lock,tryLock,lockInterruptibly

链接:https://www.zhihu.com/question/36771163/answer/68974735 ReentrantLock 锁有好几种,除了常用的lock ,tryLock ,其中有个lockInterruptibly 。 先把API粘贴上来 lockpublic voi...

moon888
38分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部