基于JSP和PHP的动态Web服务器性能分析与仿真建模
摘 要
近年来,随着网络技术的不断发展,互联网用户的数量同时也在显著增加。现如今,Web服务器每天能够处理数百万个用户请求,但在高峰时期可能会崩溃,一旦崩溃,将会成为导致服务器提供的服务不可用的关键因素,这就是为什么Web服务器性能是许多研究人员很感兴趣的研究课题。在本文中,我们通过实验评估了JSP和PHP动态内容技术的影响:JSP和PHP访问Apache Web服务器性能数据的数据库。通过使用“ApacheBench”性能测量工具,比较四种不同配置的Web服务器的性能,例如:Apache Web服务器实现使用JSP技术访问PostgreSQL数据库,Apache使用PostgreSQL作为数据库的PHP技术,Apache Web服务器使用 JSP 技术访问MySQL数据库,最后是带有DBMS MySQL 的 Apache 和 PHP。在本文的最后,我们还展示了一个基于简单 M/M/1 队列的 Web 服务器性能的 Simulink 模型,在建模过程中使用了MATLAB软件。
关键词:分析,队列,JSP,模型,性能评估,PHP,Web服务器,模拟链接
一、介绍
近几十年来,互联网用户的数量并没有停止增加。根据部分研究表示,与全球近 70 亿人口相比,2012 年连接到互联网的用户数量增加了超过23亿,已有三分之一的人口可以运用互联网沟通。 2012 年 11 月,Netcraft的一项调查统计了全球 625,329,303个活跃网站。尽管Web服务器现在每天能够处理数百万个请求,但在高峰期其性能可能会崩溃并变得严重。因此,这种粗糙的位置用户降低了服务器提供的服务质量。因此,许多研究人员对计算机系统的性能进行了研究,即:直接测量、仿真和建模。直接测量是一种精确的方法,但它需要一个真实的系统来收集有关系统性能指标的特定信息。仿真是真实系统的原型,可以提供具有或多或少准确结果的性能测量,但可能难以构建。在建模方面,我们使用了诸如网络队列、马尔可夫模型、Petri Nets和神经网络等技术。建模是最便宜的方法,因为现在个人计算机硬件更加昂贵负担不起。
这三种方法也被各种研究 Web 服务器性能的研究人员使用。在[1]和[2]中(参考文献,以下序列都指参考文献),作者分别考虑了队列M/G/1/K*PS和M/M/1/K来评估Web服务器的性能。在他们的工作中,他们研究了参数的影响,例如:流量到达和服务规则对性能指标的影响,例如平均 Web 响应时间、吞吐量和服务器拒绝率。其他研究人员,如 R. Fontaine 等人 [3]。使用其他方法(即神经网络)对 ApacheWeb 服务器的性能进行了建模。为此,使用三种神经网络模型来预测 Web 服务器的性能指标,例如平均响应时间、拒绝百分比和流量取决于系统内核参数 FreeBSD、Apache 和入站流量的优化,使用传播梯度算法。 2011 年,[4] 做了同样的工作,但他们使用的操作系统是 Debian 和 Ubuntu Linux 9.4。许多研究集中在 Web 服务器的分析和设计上,以确定构成瓶颈的元素。在 [5] 中,Rafamantanantsoa 和 Aussem 使用 Webstone 来分析 Apache Web 服务器的性能。他们研究了影响服务器性能的不同因素,例如:Apache 优化参数(Maxclients、MaxUsers)和 FreeBSD 操作系统(例如 Somaxconn)。在本文的最后,他们提出了一个基于队列的简单模型,该模型使用平均值分析 (MVA) 算法表示饱和 Web 服务器的行为。胡等人。还测量和分析了 Apache 的行为。作者使用基准工具 SpecWeb96 和 Webstone 来评估 Web 服务器在系统单处理器和多处理器(4-CPU SMP(对称多处理器))上的行为。
最近,Xiao 和 Dohi [6] 使用 Apache JMeter 工具定量评估了 Apache 性能。具体而言,他们关注 Apache Web 服务器的错误率与可能影响 Apache 性能的系统参数之间的关系。
我们上面介绍的工作只关注静态工作负载的使用,但互联网的发展导致其他研究人员考虑基于动态网页的工作负载。特伦特等人。 [7] 在他们的工作中,他们专注于在 Lighttpd 和 Apache Web 服务器上使用 SPECWeb2005 比较动态语言 PHP 和 JSP 脚本。他们的结果表明,这两种技术在速度和性能上只有 5%-10% 的差异。
2012 年,Aaqib 和 Sharma [8] 测量了 Apache 实现 PERL、PHP 和 Java Servlet 技术并使用 MySQL 数据库的性能。他们的目标是确定这三种技术中的哪一种能够在 Windows 和 Linux 平台上提供更好的结果。他们的结果表明,使用 PHP 获得的性能比使用 PERL 和 Java Servlets时要好得多。他们开发的多元线性回归模型用于预测 Web 服务器的性能以验证他们的结果。在本文中,我们将结合JSP 和PHP 技术对Apache Web 服务器的性能进行分析和建模。本文分为四个部分。第 1 节介绍 Web 服务器的性能指标。实验配置将在第 2 节中给出。然后第三节将显示各种实验的结果。在最后一节中将提供有关服务器性能的模型。
2. Web 服务器性能
Web 服务器是一个处理多种类型的同时进行的客户端请求的系统。这些查询可以定向到不同大小的静态文件、动态网页、CGI 命令或通过各种 API 访问数据库。服务器对这些请求的处理与其他请求不同。因此,查询的处理时间取决于应用程序的复杂性、文档大小和服务器的速度。后者还取决于构成服务器的硬件(CPU、RAM...)和配置软件。
为了衡量网络服务器的性能,使用已知性能指标或性能指标的衡量单位。这些是描述 Web 服务器定量行为的关键指标。这些索引可能因类型、性质、所研究的 Web 服务器配置而异。在性能指标中,衡量 Web 服务器性能的基本单位是:
响应时间:该值显示了一个应用程序的平均执行时间,即从客户端发出请求到得到服务器响应的时间;
每秒处理的请求数:是网络服务器在一段时间内管理的请求数的度量;
错误数:由于收到大量请求而被服务器拒绝的应用程序。
3. 绩效评估方法
作为我们研究的一部分,我们为每个实验检查了 Web 服务器的四种不同配置。图 1 显示了实验过程中的各种配置。
首先,我们发送对扩展名为 *.jspor *.php 的动态网页的查询。每个 HTTP 请求都会导致 SQL SELECT 命令从数据库 PostgreSQL 或 MySQL 中检索数据。接下来,我们改变了要从数据库中检索的数据大小,以便确定数据大小对服务器性能的影响。对于我们在图 1 中显示的每个配置,我们改变数据大小以获得 20、40、60、80 和 100 字节。 PostgreSQL 和 MySQL 数据库各有一个四列的表。
我们注意到我们在实验期间只使用了 SQL SELECT 命令,没有使用任何其他 SQL命令,例如 INSERT、UPDATE 和 DELETE,因为大多数时候,Web 用户只查阅 Web 服务提供给他们的各种文档。
我们在实验中使用的动态工作负载的特征如表 1 所示。
4. 实验环境
在实验过程中,我们使用了两台机器,一台充当服务器的机器和另一台向服务器生成请求的客户端设备。服务器和客户端机器通过交叉电缆 RJ45 互连。本节的其余部分提供了此实验环境的详细信息的描述。 4.1 节展示了我们实验环境的硬件配置,4.2 节展示了我们使用的软件。
4.1.硬件要求
我们使用的客户端机器是戴尔机器,带有单个 Intel Pentium IV 处理器、256 MB 的 RAM 和 20 GB 的 IDE 硬盘。至于服务器机器,Acer 品牌,配备 Intel Core i5 处理器,8 GB RAM 和 1 TB SATA 硬盘。请注意,服务器机器不是专用的 Web 服务器;这是一个Apache在Windows 7双引导下运行的系统。表2总结了实验过程中使用的服务器和客户端机器的配置。
4.2.软件配置
我们使用 Pear Linux OS8 发行版作为服务器的操作系统,为客户使用 Debian 6。我们使用了 Linux 的默认内核参数。此外,操作系统的配置保留为默认值。
表 3 总结了用于持续实验的各种软件。对于所有使用的软件,设置优化保留为其默认值。
4.3.实验设置
图 2 显示了用于获取用于模拟 Apache Web 服务器性能的数据的实验设置。
E[S] 是 Web 服务器的平均服务时间,即从客户端请求到达服务器到服务器准备好向客户端发送响应之间的时间。 E[S] 可以通过查询的响应时间的输出与请求到达服务器的时间之间的差来计算。
实验过程如下:从安装了Python和Scapy开发工具的机器发出请求。请求来自 IP 地址为 192.168.1.151 的第一个网络接口。 Web 服务器在其第一个网络接口上接收 IP 地址为 192.168.1.150 的信息。
处理完请求后,响应将通过 IP 地址为 192.168.2.150 的第二个服务器网络接口返回给客户端,并且客户端机器在其 IP 地址为 192.168.2.151 的第二个网络接口上接收此响应。
我们使用了与前几节相同的材料。进行了一系列实验来收集支持 JSP 技术和数据库访问的 Apache Web 服务器的性能指标。在本节中,我们没有使用 ApacheBench 工具,而是使用 Python 编程语言和名为 Scapy 的网络数据包操作软件开发了 Web 服务器的性能测量工具。
图 3 显示了已开发工具的用户界面。 这个 GUI 是从 Qt4 Designer 进行的。
工具说明
- 服务器IP:用于表示要测试的Web服务器的IP地址。
- 竞争对手:用于表示同时访问服务器提供的资源的用户数量。
- 请求:它允许指定在每次性能测试期间运行的查询总数。
- URL:允许您在测试期间指示网页的绝对路径以检索客户。
Start 按钮用于启动 Web 服务器性能测试。 而Clear按钮则是用来清除实验结果的显示区域。
我们使用这个工具来运行性能测试。 文档的大小以 20 为步长从 20 到 100 字节不等。对于每个值,该工具都会检索有关 Web 服务器性能的指标。 作为测试的结果,对于测量服务器的 E[S] 时间特别有用。
5. 实验结果
执行了一系列测试以测量并检查 Web 服务器的性能。各种测试由在客户端机器上运行的 ApacheBench 组成,每次测试后的工作负载如表 1 所示,ApacheBench 工具收集各种性能指标的统计数据,例如平均响应时间、错误数量。
Lin
剩余内容已隐藏,支付完成后下载完整资料
英语原文共 15 页,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[596154],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。
您可能感兴趣的文章
- 基于ElasticSearch的面向社交网络的公众舆论监控平台外文翻译资料
- 基于卷积神经网络的智能车牌识别系统研究外文翻译资料
- 基于深度卷积神经网络的ImageNet分类外文翻译资料
- Android 开发的代码推荐:它是如何工作的以及可以改进的地方?外文翻译资料
- 基于传感器网络的城市天然气泄漏在线监测系统外文翻译资料
- 基于深度学习的微博文本情感分析外文翻译资料
- 定义增强现实系统的需求,以克服在协同设计会议中创建和使用设计表示的挑战外文翻译资料
- 为什么人们会玩基于地理位置的增强现实游戏:基于宝可梦Go的研究外文翻译资料
- 基于JSP和PHP的动态Web服务器性能分析与仿真建模外文翻译资料
- GNU libmicrohttpd 库教程外文翻译资料