linux对web后端重要吗,基于Linux的Web服务器性能测试

摘要:Linux作为一种免费的开源操作系统,正越来越受到人们的重视。随着稳定的Linux2.4内核发布日期的临近和IntelIA-64构架的推出,Linux在服务器操作系统市场所占的份额会继续扩大,那么基于Linux的应用也就会日益丰富。而在Internet时代,操作系统最广阔的市场空间就是Web服务器,正是遍布全球的千千万万的Web服务器才构成了因特网信息资源的基础,而Web服务器性能的优劣直接关系到人们对信息资源的利用效率,因此对Web服务器性能的测试就显得非常必要

一、基于Linux的Web服务器性能测试的重要性

Linux作为一种免费的开源操作系统,正越来越受到人们的重视。随着稳定的Linux2.4内核发布日期的临近和IntelIA-64构架的推出,Linux在服务器操作系统市场所占的份额会继续扩大,那么基于Linux的应用也就会日益丰富。而在Internet时代,操作系统最广阔的市场空间就是Web服务器,正是遍布全球的千千万万的Web服务器才构成了因特网信息资源的基础,而Web服务器性能的优劣直接关系到人们对信息资源的利用效率,因此对Web服务器性能的测试就显得非常必要。

二、以运行在Linux平台的Apache服务器为例,谈Web服务器的性能测试

Web服务器的性能不仅仅和Web服务器软件本身有关,它还和服务器硬件设计水平和服务器操作系统有很大的关系,因此Web服务器性能测试是一项综合性能的测试。目前在全球Web服务器软件市场上Apache服务器占到了60%以上的市场份额。下面就以运行在Linux平台上的Apache服务器为例,谈谈如何进行Web服务器性能的测试。

1.Web服务器性能测试的工具

Web服务器的性能测试工具很多,比较著名的有WebStone和WebBench,这两个工具虽然实现的方法有所不同,但是测试指标是相同的,即都是测试每秒最大请求响应数和数据吞吐量。

2.Apache服务器支持SSL协议的配置

随着电子商务的发展,webBench2.0还增加了电子商务测试集,这就需要Apache服务器支持SSL(SecuritySocketLayer)。但是Apache服务器在缺省情况下并没有提供对SSL的有效支持,因此要想利用WebBench测试Apache服务器的电子商务性能,就需要重新配置Apache服务器使之支持SSL。下面就以RedhatLinux6.1,Apache1.3.9为平台讲一下具体的配置方法:

1)下载

Apache1.3.9(http://www.apache.org)

Openssl-0.9.5(http://www.openssl.org)

Mode-ssl-2.6.0(http://www.modssl.org)

2)解压缩:

#tarzxvfapache*.tgz

#tarzxvfopenssl*.tgz

#tarzxvfmodssl*.tgz

3)更改perl可执行文件的目录

#cd/openssl*/util

把perlpath.pl文件开始的#!/usr/local/bin/perl改成现在操作系统中perl的目录,在RedHatLinux中是#!/usr/bin/perl。然后运行./perlpath.pl/usr/bin即可。

4)编译配置

#cdopenssl-0.9.x

#shconfig

-fPIC

#make

#maketest

#cdmod-ssl*

#./configure

--with-apache=/apache_1.3.12--with-ssl=/openssl-0.9.5

--prefix=/apache_1.3.12

#cdapache_1.3.12

#make

#makecertificate

#makeinstall

在makecertificate时会有很多的选项,主要的是选择加密算法,包括RSA(它是由R.Rivest、A.Shamir和L.Adleman三位教授于1977年提出的公开密钥密码系统,它的取名就是来自于这三位发明者的姓的第一个字母)和DSA(DigitalSignatureAlgorithm),这时选择RSA即可,接下来会有包括国家名,单位名,认证有效期等等需要输入的信息。这些步骤完成之后,会产生一个server.crt和server.key文件,注意server.key文件一定要保密,接下来就是输入连接用户名和口令。

以上工作全部结束后,会生成三个服务器认证文件,他们分别是:

/apache*/conf/ssl.key/server.key

/apache*/conf/ssl.crt/server.crt

/apache*/conf/ssl.csr/server.csr

#cd/mod-ssl*

#./configure

--with-apache=/apache_1.3.12

--with-crt=/apache_1.3.12/conf/ssl.crt/server.crt

--with-key=/apache_1.3.12/conf/ssl.key/server.key

#cd/apache*

#SSL-BASE=/openssl*

./configure

--enable-module=ssl

--prefix=/apache_1.3.12

#make

#makecertificate

#makeinstall

3.测试Web服务器的吞吐量和每秒最大请求响应数

全部编译完成之后的apache就可以支持ssl,但是要想进行WebBench的测试,还需要配置/apache/conf/http.conf文件,最关键的是要打开ssl的监听端口443,并且把documentroot和Webbench3.0所在的目录对应起来。然后在/apache*/bin/下运行apachectlstartssl执行电子商务子集测试,运行apachectlstart执行普通的测试,通过控制台和客户端WebBench软件的配合就可以测试出当前系统配置下Web服务器的吞吐量和每秒最大请求响应数。

三、WEB服务器测试结果分析

1.SMP技术与服务器集群技术

SMP(SymmetricMultiProcessing),即:对称多处理。指在一个计算机上汇集了一组处理器(多CPU)。它们共享内存及总线结构,系统将处理任务队列对称地分布于多个CPU上,从而极大地提高了系统的数据处理能力。Windows2000采用了SMP,一般情况下,双CPU的服务器比单CPU服务器性能提高70%左右。而Linux系统对于SMP技术并不敏感,根据测试结果显示,使用双PentiumIII800CPU比单CPU的Web服务器性能没有显著的提高。与SMP相比,集群技术更易于实现,它开发周期短,而且造价低。虽然节点之间数据传输的速度比SMP总线低,但是它的可扩展性远远超过了SMP,在一个集群中可以很轻松地支持256个CPU。同时,由于各节点之间使用了松散耦合的方式连接,可以在系统正在运行的情况下方便地更换或添加节点,因此它的可靠性与可扩展性也优于目前的SMP技术,但是同时我们应该注意到的是集群技术的主要局限在网络的瓶颈上,对于关键的节点甚至使用千兆网,这是一般用户无法承受的。因此在选择上应该考虑到这个问题。

2.系统内存的影响

在Linux系统下,有一点需要注意:对于某些BIOS来说,如果超过64MB内存就需要在LILO.CONF中加入扩展内存的命令,否则服务器内存显示只有64MB。我们对64MB内存和128MB内存的服务器进行测试,结果表明:内存对Web性能的影响是巨大的,尤其是在大负载下的性能提高得很快。笔者认为,对于部门级服务器而言,由于CPU速度、网络带宽、磁盘性能的限制,512MB-1G内存是比较适宜的。

3.64位操作系统与64位服务器

对于Linux界来说Tru64Linux系统的推出是一件大事。我们分别在天兆阳光的Alpha、杜文的SparcII的服务器上作了RedHat6.2的Web性能测试。但是测试结果并非像想象中的那样令人满意。笔者分析有以下几个原因:首先,不合时宜的测试集。我们所使用的测试工具WebBench还没有64位Linux的测试集,没有充分考虑到64位的高带宽、海量存储等优势。第二,Tru64Linux系统与64位硬件系统的配合还存在一定的问题,它毕竟不象Solaris是SUN定制开发的支持64位运算的操作系统。

4.Apache服务器的优化

Apache服务器系统的优势之一就是可以对其进行优化。笔者认为主要分为应用级和代码级两种优化方式。应用级优化比较简单,主要是对HTTPD.conf、ACCESS.conf、SRM.conf三个配置文件中的参数进行配置。本次测试中没有对系统作优化,只是针对64位服务器系统性能好的特点,将最大进程数从默认的150提高到了1000,减少了CPU杀掉进程的时间,测试后发现Web性能提高了10%。而对于代码级的优化相对复杂得多,并且可以参考的实例不多,希望在以后的测试中进一步体会。总之,Linux操作系统应用于Web服务器有许多优势,如:服务器大负载稳定性好等,相信许多Web用户都有很深的体会。

WebBench介绍

WebBench是一个主要用来考查Web服务器性能的测试工具。它的测试结构与ServerBench相同,同样采用服务器、客户端和控制台三种方式。WebBench在Web服务器端安装测试文件,这些文件主要由HTML、GIF和可执行文件组成,利用客户端计算机来模拟Web浏览器向Web服务器发送请求。但是,在客户端并不使用真正的浏览器,也不真正显示服务器发送的响应文件,而是在收到Web服务器的响应后立即纪录该响应的相关信息,并立即发送另外一个请求。通过这种方法来测试Web服务器每秒处理的请求数和数据吞吐量。WebBench测试可以分为普通测试和电子商务测试:普通的测试集由静态和动态请求组成;而电子商务测试集由8%的安全请求和92%的非安全请求组成。在电子商务测试中,Web服务器需要支持SSL(SecureSocketLayer)协议,它是Web服务器上使用广泛的基本安全措施,可向基于TCP/IP协议的Client/Server应用程序提供Client/Server端的鉴别、数据完整性和信息机密性等安全措施。

ServerBench介绍

ServerBench是一个著名应用服务器性能测试工具,它主要在Client/Server环境下测试应用服务器的处理器性能、网络性能和系统性能。其中,应用服务器系统的综合性能测试(sys)是ServerBench最基准的测试。这次测试我们也主要测试了综合性能(sys)和处理器性能(proc)两项。

ServerBench的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值