基于Java的Web服务器性能测试工具分析
【摘要】本文是对基于Java的Web服务器性能测试工具展开的研究对Java进行了粗浅的概述后结合Web服务器的性能特点及测试工具进行了真实用户行为的模拟以期通过测试结果对Web服务器的性能加以优化和调整。
【关键词】 Java; Web服务器;性能测试工具
1.引言
近些年来, 由于互联网技术的迅猛发展, 网络的使用规模得到了不断增加,对网络需求的极增,使得服务器面临着巨大的压力。而服务器在长时间的高负荷状态下其自身的性能急剧下降,直接导致对用户发出的请求反应变慢,甚至可能导致服务器的崩溃给广大用户带来不便。因此,如何有效地解决服务器过载情况下系统性能急剧下降的问题, 已成为当前急需解决的一个问题。
2.Java的概述及特点
2. 1 Java的概述
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言它是美国SunMicrosystems公司于1995年5月推出的程序设计语言。通常我们说的Java平台包括JavaSE、JavaEE、 JavaME. Java平台由Java虚拟机Java Virtual Machine简称JVM和Java应用编程接口 Application Programming Interface简称API构成。
2.2 Java的特点
Java由Java编程语言、 Java类文件格式、 Java虚拟机和Java应用程序接口四部分组成。相较于其他的计算机语言 Java具有以下几点特点。
2.2. 1语言简单。虽然J a va语言的语法与C语言和C++语言很接近但它丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性。 Java语言不使用指针并提供了自动的废料收集使得程序员不必为内存管理而担忧。
2.2.2语言面向对象。 Java语言是一个面向对象程序设计语言全面支持动态绑定而C++语言只对虚函数使用动态绑定并支持类与接口之间的实现机制。
2.2.3体系结构中立。 Java程序在Java平台上被编译为体系结构中立的字节码格式可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
2.2.4语言是动态。 Java语言的设计目标就是为适应动态变化的环境。 Java程序需要的能够动态地被载入到运行环境也可以通过网络来载入所需要的类。这也有利于软件的升级。另外 Java中的类有一个运行时刻的表示能进行运行时刻的类型检查。
2.2.5语言可移植。可移植性来源于体系结构中立性另外 Java还严格规定了各个基本数据类型的长度。 Java系统本身也具有很强的可移植性 Java编译器是用Java实现的Java的运行环境是用ANSIC实现的。
2.2.6语言多线程。在Java语言中线程是一种特殊的对象它必须由Thread类或其子类来创建。通常有两种方法来创建线程其一使用型构为Thread的构造将一个实现了接口的对象包装成一个线程其二从Thread类派生出子类并重写run方法使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了接口 因此任何一个线程均有它的run方法而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行并提供多线程之间的同步机制。
Java语言的优良特性使得Java应用具有无比的安全性和可靠性这也极大地减少了应用系统的维护费用。 Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。 Java的编译一次到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口 JavaEnterprise APIs为企业计算及电子商务应用系统提供了有关技术和丰富的类库。
3. Web服务器性能测试工具
Web服务器的系统性能主要由处理器、 内存、存储、网络等部分来决定 以下将对这几部分进行阐述。
3. 1存储系统的性能测试
存储系统的IO能力、存储系统的吞吐量及CPU的使用率、系统错误信息是存储系统性能测试的主要测试目标为掌握这些数据测试人员可以通过设置测试参数、存储类型如sequential ,random 、模块读写大小(如64K、 256K) 、队列深度等手段来模拟真实应用环境下的读写状况。 Iometer是Windows系统下用于对存储系统的读写性能进行测试的软件其凭借操作简单、录制测试脚本便利、准确有效的反映存储系统的读写性能等优势成为各大服务器和存储厂商的测试首选。
3.2基准评测
基准评测主要是测试系统所有硬件的数据信息并且通过对部分硬件如CPU、 内存、硬盘等的测评打分实现与其它型号硬件的性能对比。 SiSoft发行的Sandra系列测试软件正是Windows系统下用于基准评测的软件该软件除了能实现以上这些功能外还拥有系统稳定性综合测试、性能调整向导等附加功能。
3.3 I/O性能测试
I/O性能测试是对不同操作系统中文件系统的读写性能。 目前许多服务器系统和厂商都在使用l inux平台下使用iozone测试I/O性能。 iozone是一个文件系统的评分工具可以对Read, write, re-read, re-write, read backwards, read strided, fread, fwrite,random read, pread ,mmap, aio_read, aio_write等不同形式下的硬盘性能进行打分并生成excel文件此外 iozone还附带有gnuplot画图的脚本。该软件用于机群系统测试NFS性能时更具可靠性和便捷性。
3.4网络性能测试
网络性能测试是对TCP或UDP的传输性能进行测试以反映出一个系统能够以多快的速度向另外一个系统发送数据并且另外一个系统能够以多块的速度接收数据。 Netperf是常用于测试服务器网络性能的应用软件。 Netperf能够根据不同的使用状况进行不同模式的网络性能测试即批量数据传输模式和请求、应答模式。其工作方式是 netserver用于接收来自 client端的连接信息 netperf用于向netserver发起网络测试,将netper和netserver中间构建起一个控制连接 由此传递测试信息 以获取测试结果。
3.5 WEB性能压力测试
Web性能压力测试是通过模拟真实用户的操作从而生成压力负载来测试web的性能。webload是RadView公司研发的一个性能测试和分析工具它可以让web应用程序自动进行性能压力测试。使测试用户基于javascript下创建的脚本来模拟客户的行为通过执行该脚本来衡量web应用程序在真实环境下的性能。最新版本的webload提供巡航控制器cruisecontrol的功能,利用cruise control,可以预定义web应用程序应该满足的性能指标,再测试系统是否满足这些需求指标;cruise control能够自动把负载加到web应用程序,并将在此负荷下能够访问程序的客户数量生成报告。
4.结束语
随着网络技术的发展和计算机应用的普及服务器过载问题已成为当前被广泛研究的一
项课题, 因此开发过载服务器性能测试工具对于该项工作的开展具有重要的意义。【参考文献】
1潘清.一种网络协议的自适应控制方法J .计算机学报,2007(12) : 1612-1616 .2蔡立志杨根兴.软件系统性能测试方法初探J .软件工程与标准化 2005,7:44-50.3宋波,董晓梅. Java应用设计M .北京:人民邮电出版社, 2002
有一段时间没有分享Gcore(gcorelabs)的信息了,这是一家成立于2011年的国外主机商,总部位于卢森堡,主要提供VPS主机和独立服务器租用等,数据中心包括俄罗斯、美国、日本、韩国、新加坡、荷兰、中国(香港)等多个国家和地区的十几个机房,商家针对不同系列的产品分为不同管理系统,比如VPS(Hosting)、Cloud等都是独立的用户中心体系,部落分享的主要是商家的Hosting(Virtu...
今年1月的时候Hosteons开始提供1Gbps端口KVM架构VPS,目前商家在LET发布消息,到本月30日之前,用户下单洛杉矶/纽约/达拉斯三个地区机房KVM主机可以从1Gbps免费升级到10Gbps端口,最低年付仅21美元起。Hosteons是一家成立于2018年的国外VPS主机商,主要提供VPS、Hybrid Dedicated Servers及独立服务器租用等,提供IPv4+IPv6,支持...
tmhhost怎么样?tmhhost正在搞暑假大促销活动,全部是高端线路VPS,现在直接季付8折优惠,活动截止时间是8月31日。可选机房及线路有美国洛杉矶cn2 gia+200G高防、洛杉矶三网CN2 GIA、洛杉矶CERA机房CN2 GIA,日本软银(100M带宽)、香港BGP直连200M带宽、香港三网CN2 GIA、韩国双向CN2。点击进入:tmhhost官方网站地址tmhhost优惠码:Tm...