A. loadrunner jmeter哪个更适合做性能测试
JMeter更胜任。
作为性能测试工具,首先看功能性:
Critical Features:
1、支持HTTP/HTTPS协议,能够发送HTTP/HTTPS request;
2、支持用户场景(借用了LR中的词汇),能够以某种比例在不同的业务上分布用户数量;
3、支持事务;
4、支持嫌颂颤参数化和关联(还是借用LR中的词汇);
5、能够获得和汇总请求响应时间等数据,能够提供响应时间汇总、事务/请求处理成功率等数据报表;
Non-Critical Features:
1、能够以漂亮的图表展示出结果数据;
2、能够提供漂亮的用户界面(樱型GUI);
3、能够提供良好的录制功能和调试环境;
如上可以看到,大体上两者都能满足测试需要。但是在使用便利上,JMeter有如下优势:
1、能够灵活的扩展,例如,我的应用的后端(bakcend)和前端的通讯使用的是RPC方式,则我希望工具能够通过我已有的API直接对后端产生负载,进行负载测试;
2、可以使用芹败命令行方式,采用批处理模式运行(不需要GUI),运行后的结果能够通过Email等发送给我,或是直接integration到一个可发布的web页面上;
3、收集得到的数据能够很容易的进行再处理(例如,以XML格式存储raw data);
4、工具本身具有很好的可信度,可以通过查看代码等方式,了解当意外发生时是工具本身的问题或是应用的问题。
B. 我的电脑是联想Z460笔记本,学软件测试要装LoadRunner,可是我怎么装就装不上!
现在网上下一个破解版的lR8的软件和注册码,然后把防火墙杀毒软件暂时关闭,然后安装,安装后把其中的破解文件到相应的目雹隐录后,从程序中选ld-configrationd的注册码写进去就可以了。如果第一次安装不成功,卸载重新源银厅装的时候要特别注意把注册码搏野的相关内容删除。
C. 如何巧用软件测试工具LoadRunner中的随机函数
1. Intweb_reg_save_param("参数名","LB=左边界","RB=右边界",LAST);/注册函数,在参数值出现的前面使用,注册成功时返回值为0,注册失败时返回值为1。左右边界需根据TreeView里相关步骤的SeverResponse代码来确定。用以磨销上函数能获取第一个符合条件的数值。
2. web_reg_save_param("参数名”,"LB=左边界”,"RB=右边界","Ord=All",LAST);/当参数瞎雹游有多个值时,加上"Ord=All”后可获取所有的数值。注册成功后,{参数名_count}表示取得的数值个数,{参数名_1}为第一个数值,{参数名_2}为第二个数值。
3. lr_save_string(“字符串变量”,"参数名")/将字符变量里的值传递给指定参数。通过该函数来改变DataFile类型参数的数值。
4. lr_eval_string("{参数名}")/取得参数的数值。可取得已注册参数或DataFile类型参数的数值。eval就是evaluation(估价,评价,赋值)的缩写。
5. int sprintf(char * string , const char*format_string[,args]);/字符串赋值函数
Action()
{
int index=56;
charfilename[64],*suffix="txt";
sprintf(filename,"log_%d.%s",index,suffix);
lr_output_message("Thenewfilenameis%s",filename);
return 0;
}
Output:Thenewfilenameislog_56.txt
6. char*strcat(char*to,constchar*from);/将一字符串追加到另一字符串后面
7. web_find("find_time","What=2006-03-0118:21:16.882",LAST);/增加检查点,检查“2006-03-0118:21:16.882”这个字符串是否出现在当前页面上。find_time为自己任意输入的检查点名称。
8. 事务函数
lr_end_sub_transaction/标记子事务的结束以便进行性肆并能分析
lr_end_transaction/标记LoadRunner事务的结束
lr_end_transaction_instance/标记事务实例的结束以便进行性能分析
lr_fail_trans_with_error/将打开事务的状态设置为LR_FAIL并发送错误消息
lr_get_trans_instance_ration/获取事务实例的持续时间(由它的句柄指定)
lr_get_trans_instance_wasted_time/获取事务实例浪费的时间(由它的句柄指定)
lr_get_transaction_ration/获取事务的持续时间(按事务的名称)
lr_get_transaction_think_time/获取事务的思考时间(按事务的名称)
lr_get_transaction_wasted_time/获取事务浪费的时间(按事务的名称)
lr_resume_transaction/继续收集事务数据以便进行性能分析
lr_resume_transaction_instance/继续收集事务实例数据以便进行性能分析
lr_set_transaction_instance_status/设置事务实例的状态
lr_set_transaction_status/设置打开事务的状态
lr_set_transaction_status_by_name/设置事务的状态
lr_start_sub_transaction/标记子事务的开始
lr_start_transaction/标记事务的开始
lr_start_transaction_instance/启动嵌套事务(由它的父事务的句柄指定)
lr_stop_transaction/停止事务数据的收集
lr_stop_transaction_instance/停止事务(由它的句柄指定)数据的收集
lr_wasted_time/消除所有打开事务浪费的时间
lr_end_sub_transaction/标记子事务的结束以便进行性能分析
r_end_transaction/标记LoadRunner事务的结束
lr_end_transaction_instance/标记事务实例的结束以便进行性能分析
lr_fail_trans_with_error/将打开事务的状态设置为LR_FAIL并
9. 命令行分析函数
lr_get_attrib_double/检索脚本命令行中使用的double类型变量
lr_get_attrib_long/检索脚本命令行中使用的long类型变量
lr_get_attrib_string/检索脚本命令行中使用的字符串
10. 信息性函数
lr_user_data_point/记录用户定义的数据示例
lr_whoami/将有关Vuser脚本的信息返回给Vuser脚本
lr_get_host_name/返回执行Vuser脚本的主机名
lr_get_master_host_name/返回运行LoadRunnerController的计算机名
11. 字符串函数
lr_eval_string/用参数的当前值替换参数
lr_save_string/将以NULL结尾的字符串保存到参数中
lr_save_var/将变长字符串保存到参数中
lr_save_datetime/将当前日期和时间保存到参数中
lr_advance_param/前进到下一个可用参数
lr_decrypt/解密已编码的字符串
lr_eval_string_ext/检索指向包含参数数据的缓冲区的指针
lr_eval_string_ext_free/释放由lr_eval_string_ext分配的指针
lr_save_searched_string/在缓冲区中搜索字符串实例,并相对于该字符串实例,该缓冲区的一部分保存到参数中
12. 消息函数
lr_debug_message/将调试消息发送到输出窗口
lr_error_message/将错误消息发送到输出窗口
lr_get_debug_message/检索当前的消息类
lr_log_message/将输出消息直接发送到output.txt文件,此文件位于Vuser脚本目录中。该函数有助于防止输出消息干扰TCP/IP通信。
lr_output_message/将消息发送到输出窗口
lr_set_debug_message/为输出消息设置消息类
lr_vuser_status_message/生成格式化输出并将其打印到ControllerVuser状态区域。
lr_message/将消息发送到Vuser日志和输出窗口
13. 操作函数
web_custom_request允许您使用HTTP支持的任何方法来创建自定义HTTP请求
web_image在定义的图像上模拟鼠标单击
web_link在定义的文本链接上模拟鼠标单击
web_submit_data执行“无条件”或“无上下文”的表单
web_submit_form模拟表单的提交
web_url加载由“URL”属性指定的URL
14. 身份验证函数
身份验证函数web_set_certificate使Vuser使用在InternetExplorer注册表中列出的特定证书
身份验证函数web_set_certificate_ex指定证书和密钥文件的位置和格式信息
身份验证函数web_set_user指定Web服务器的登录字符串和密码,用于Web服务器上已验证用户身份的区域
15. 缓存函数
缓存函数web_cache_cleanup清除缓存模拟程序的内容
16. 检查函数
检查函数web_find在HTML页内搜索指定的文本字符串
检查函数web_global_verification在所有后面的HTTP请求中搜索文本字符串
检查函数web_image_check验证指定的图像是否存在于HTML页内
检查函数web_reg_find在后面的HTTP请求中注册对HTML源或原始缓冲区中文本字符串的搜索
17. 连接定义函数
连接定义函数web_disable_keep_alive禁用Keep-AliveHTTP连接
连接定义函数web_enable_keep_alive启用Keep-AliveHTTP连接
连接定义函数web_set_connections_limit设置Vuser在运行脚本时可以同时打开连接的最大数目
18. 并发组
web_concurrent_end标记并发组的结束
web_concurrent_start标记并发组的开始
19. cook函数
web_add_cookie添加新的Cookie或修改现有的Cookie
web_cleanup_cookies删除当前由Vuser存储的所有Cookie
web_remove_cookie删除指定的Cookie
20. 关联函数
web_create_html_param将HTML页上的动态信息保存到参数中。(LR6.5及更低版本)
web_create_html_param_ex基于包含在HTML页内的动态信息创建参数(使用嵌入边界)(LR6.5及更低版本)。
这是一些常用函数。希望采纳谢谢
D. 如何使用LoadRunner监控linux与Windows
一、监控windows系统:
1、监视连接前的准备工作
1)进入被监视windows系统,开启以下二个服务Remote Procere Call(RPC) 和Remote Registry Service (开始—)运行 中输入services.msc,开启对应服务即可)。
2)在被监视的WINDOWS机器上:右击我的电脑,选择管理->共享文件夹->共享 在这里面要有C$这个共享文件夹 (要是没有自己手动加上)。
3)在安装LR的机器上,开始—》运丛带行,输入 \\被监视机器IP\C$ 然后输入管理员帐号和密码,如果能看到被监视机器的C盘了,就说明你得到了那台机器的管理员权限,可以使用LR去连接了。(LR要连接WINDOWS机器进行监视要有管理员帐号和密码才行。)
问题:在执行步骤3)时,输入 \\被监视机器IP\C$,出现不能以administrator身份访问被监控系统(若采用这种方式用LR对其监控的话,会提示:“找不到网络路径”)的情况,现象就是用户名输入框是灰色的,并且默认用户是guest。
解决办法:这是安全策略的设置问题(管理工具 -> 本地安全策略 -> 安全选项 ->“网络访问:本地帐户的共享和安全模式”)。默认情况下,XP的访问方式是“仅来宾”的方式,如果你访问它,当然就固定为Guest来访问,而guest账户没有监控的权限,所以要把访问方式改为“经典”模式,这样就可以以administrator的身份登陆了。修改后,再次执行步骤3),输入管理员用户名和密码,就可以访问被监控机器C盘了。
若这样都不行的话(可能是其它问题引起的),那只好采取别的方法了。在服务器的机子上,通过windows自带的“性能日志和警报”下的“计数器日志”中新增加一个监控日志(管理工具—)性能—)性能日志和警报),配置好日志,也能监控服务器的cpu、memory、disk等计数器。当然,这种方法就不是用LR来监控了。
2、用LR监视windows的步骤
乎郑启在controller 中,Windows Resources窗口中右击鼠标选择Add Measurements,添加被监控windows的IP地址,选择所属系统,然后选择需要监控的指标就可以开始监控了。
二、监控linux
1 准备工作
可以通过两种方法验证服务器上是否配置了rstatd守护程序:
①使用rup命令,它用于报告计算机的各种统计信息,其中就包括rstatd的配置信息。使用命令rup 10.130.61.203,此处10.130.61.203是要监视的linux/Unix服务器的Ip,如果该命令返回相关的统计信息。则表示已经配置并且激活了rstatd守护进程;若未返回有意义的统计信息,或者出现一条错误报告,则表示rstatd守护进程尚未被配置或有问题。
②使用find命令
#find / -name rpc.rstatd,该命令用于查找系统中是否存在rpc.rstatd文件,如果没有,说明系统没有安装岁如rstatd守护程序。
如果服务器上没有安装rstatd程序(一般来说LINUX都没有安装),需要下载一个包才有这个服务,包名字是rpc.rstatd-4.0.1.tar.gz. 这是一个源码,需要编译,下载并安装rstatd(可以在[url]http://sourceforge.net/projects/[/url]rstatd<wbr>这个地址下载)
下载后,开始安装,安装步骤如下:
tar -xzvf rpc.rstatd-4.0.1.tar.gz
cd rpc.rstatd-4.0.1/
./configure —配置操作
make —进行编译
make install —开始安装
rpc.rstatd —启动rstatd进程
2)安装完成后配置rstatd 目标守护进程xinetd,它的主配置文件是/etc/xinetd.conf,它里面内容是一些如下的基本信息:
#
# xinetd.conf
#
# Copyright (c) 1998-2001 SuSE GmbH Nuernberg, Germany.
# Copyright (c) 2002 SuSE Linux AG, Nuernberg, Germany.
#
defaults
{
log_type = FILE /var/log/xinetd.log
log_on_success = HOST EXIT DURATION
log_on_failure = HOST ATTEMPT
#only_from = localhost
instances = 30
cps = 50 10
#
# The specification of an interface is interesting, if we are on a firewall.
# For example, if you only want to provide services from an internal
# network interface, you may specify your internal interfaces IP-Address.
#
# interface = 127.0.0.1
}
includedir /etc/xinetd.d
我们这里需要修改的是/etc/xinetd.d/下的三个conf文件 rlogin,rsh,rexec这三个配置文件,打这三个文件里的disable = yes都改成 disable = no ( disabled 用在默认的 {} 中 禁止服务)或是把# default: off都设置成 on 这个的意思就是在xinetd启动的时候默认都启动上面的三个服务!
说明:我自己在配置时,没有disable = yes这项,我就将# default: off改为:default: on,重启后(cd /etc/init.d/ ./xinetd restart)通过netstat -an |grep 514查看,没有返回。然后,我就手动在三个文件中最后一行加入disable = no,再重启xinetd,再使用netstat -an |grep 514查看,得到tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN结果,表明rsh服务器已经启动。
只要保证Linux机器上的进程里有rstatd和xinetd这二个服务就可以用LR去监视了。
两点小的技巧:
①检查是否启动: rsh server 监听的TCP 是514。
[root@mg04 root]# netstat -an |grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN
如果能看到514在监听说明rsh服务器已经启动。
②检查是否启动: rstatd
输入命令: rpcinfo -p
如果能看到类似如下信息:
程序 版本 协议 端口
100001 5 udp 937 rstatd
100001 4 udp 937 rstatd
100001 3 udp 937 rstatd
100001 2 udp 937 rstatd
100001 1 udp 937 rstatd
那就说明rstatd服务启动了,(当然这里也可以用ps ax代替)
③重起xinetd方法:
在suse linux如下操作:
cd /etc/init.d/
./xinetd restart
看到网上有的地方说使用如下命令:
# service xinetd reload
# /sbin/service xinetd rstart
不知道是在什么系统用的。
④安装rsh,和rsh-server两个服务包方法
a. 卸载rsh
# rpm –q rsh----------查看版本号
# rpm -e 版本号---------卸载该版本。
b.安装
# rpm –ivh rsh-0.17-14.i386.rpm rsh-server-0.17-14.i386.rpm
⑤在启动rpc.rstatd时,会报错“Cannot register service: RPC: Unable to receive;errno = Ction refused”。
解决方法如下:
# /etc/init.d ./portmap start
# /etc/init.d ./nfs start
然后再次启动rpc.rstatd就好了。
最后,在controller中,将UNIX resources拖放到右边窗口里面,右击鼠标选择Add Measurements,添加被监控linux的IP地址,然后选择需要监控的指标就可以了。
三、监控UNIX
lr监控UNIX,UNIX先启动一rstatd服务
以下是在IBM AIX系统中启动rstatd服务的方法:
1、 使用telnet以root用户的身份登录入AIX系统
2、 在命令行提示符下输入:vi/etc/inetd.conf
3、 查找rstatd,找到
#rstatd sunrpc_udp udp wait root /usr/sbin/rpc.rstatd rstatd 100001 1-3
4、将#去掉
5、:wq保存修改结果
6、命令提示符下输入:refresh –s inetd 重新启动服务。
这样使用loadrunner就可以监视AIX系统的性能情况了。
注:在HP UNIX系统上编辑完inetd.conf后,重启inetd服务需要输入inetd -c
UNIX上也可以用rup命令查看rstatd程序是否被配置并激活
若rstatd程序已经运行,重启时,先查看进程ps -ef |grep inet,然后杀掉进程,再refresh –s inetd进行重启。
望采纳
E. 如何监视Linux系统资源的使用情况
虚拟终端 命令 free
命令
可以用网络搜索
你值得拥有:25 个 Linux 性能监控工具
里面有一些其它的好工具。
命令、uptime、free
参看::wenku../link?url=-_YXSztvNvIykFJ_C
Linux操作系统也会有闹脾气的时候。在某些情况下,其系统的资源使用率(包括CPU或者内存),也会达到90%以上甚至更多。为此系统管理员在必要的时候,仍然需要监视系统资源的使
虽然说Linux操作系统要比Windows操作系统稳定的多。但是这个稳定是相对而言的。也就是说,Linux操作系统也会有闹脾气的时候。在某些情况下,其系统的资源使用率(包括CPU或者内存),也会达到90%以上甚至更多。为此系统管理员在必要的时候,仍然需要监视系统资源的使用情况。笔者今天就给大家介绍一下,裤弯带在Linux操作系统下如何监视这个系统资源,做到心中有数。
在Windows操作系统中,可以通过任务管理器来查询各个进程所占用的CPU与内存的比率。在Linux操作系统中没有这种图形化的管理。在命令行模式下,键入命令,即可以看到各个进程所占用的系统资源。
ppp作为一个合格的系统管理员,出于系统性能优化或者其他方面的考虑,往往需要掌握系统中最消耗CPU或者内存资源的程序。为了达到这个目的,系统管理员就需要借助系统提供的命令。这个命令可以帮助管理员监控系统资源的使用情况,包括内存、CPU、交换文件分区的使用率等等。就是这个命令的执行结果。系统管理员想要提升操作系统的性能,第一步就是需要读懂上面这张表格。如果这种图中的内容系统管理员无法看懂,那么他就想提升系统的性能根本无法入手。
Top命令的运行结果大致可以分为两个部分。上半部是使一些统计的信息,包括内存和交换分区的使用情况、CPU的运行情况、进程的总数等等。在这些统计信息中,系统管理员除了要关注这些重要资源的使用滤外,还需要注意进程运行的状态。可见在Linux系统中进程的状态主要有四种,分别为running、sleeping、sped和zombie。如果从系统维护与性能优化考虑,则系统管理员需要关注那些状态为zombie的进程。若进程处于这个状态,在Linux操作系统中叫做僵尸进程。什么叫做僵尸进程呢?就是那些父进程还没死、但闹滑是子进程却死了的进程。在Linux操作系统中,进程一般分为父进程和子进程。某个进程A可能会调用另外一个进程B。此时这个进程A就叫做父进程,而进程B就叫做子进程。由于一些意外的情况,子进程运行已经停止,但是父进程却还不知道子进程早已停止运行,还在那边傻傻的等待着子进程返回运行结果。由于子进程没有返回结果,则父进程可能一直会在那边等待。从而导致系统性能的下降。如果系统管理员发现有僵尸进程的话,首先要做的就是结束父进程(有时候还需要查看这个父进程打开的其他子进程运行情况),以释放其占用的系统资源。其次如果这种情况发生的比较频繁时,则系统管理员就需要分析到底是什么原因导致这种情况发生的。找到原因后要采取积极的措施。通常情况下,如果子进程的状态为僵尸时,父进程就不会自动结束,从而其占用的系统资源就不会自动释放,从而降低操作系统的性能。
二、Top命令的使用技巧。
1、 选择合适的排序顺序。
在Windows操作系统的任务管理器中,管理员可以根据需要选择合适的排序顺序,如按CPU排序或者按内存的使用率进行排序。而在命令的显示结果中,默认情况下是按照CPU的使用率来进行排序的。如果现在系统管理员想按照内存使用率来排序,该如何处理呢?如果要想改变命令结果的排序顺序,则可以按m键来按内存进行排序。注意这里的m是小写,而不是大写的。在Linux操作系统中大部分命令与参数大小胡芦写都是敏感的。这跟微软操作系统中的DOS命令不同。Dos命令是不区分大小写的。虽然这个排序没有像微软操作系统中的任务管理器那么方便,只需要点点鼠标就可以完成排序。但是只要熟悉相关的命令,在命令行中对其排序没有大家想想的那么困难。
2、 监视特定用户使用的资源情况。
在Windows操作系统中,如果想要查看特定帐户所打开的进程以及所耗用的系统资源,操作非常简单。只需要打开系统任务管理器,然后按照用户来进行排序。就可以知道某个用户开启了哪些进程以及所占用的比例。而在命令中,没有按帐户进行排序的功能。即在上面这个显示结果中,只可以按照内存使用率或者CPU负载来进行排序,而无法按照用户来进行排序。在同一个结果中夹杂着系统特权用户root与普通用户所打开的进程。这对于系统管理员查找问题原因非常的不方便。有时候系统管理员往往需要只查看特定用户的进程,如只需要查看oracle帐户所打开的进程以及所占用的系统资源。而忽略掉系统帐户。因为特权帐户其他用户无权进行登陆操作,而其运行的往往是一些系统级别的进程,为此一般不会出现问题。而普通用户可以运行一些应用程序。有时候他们糊里糊涂可能会打开一些非法程序,占用大量的系统资源,从而降低系统性能。废话少说,如何才能够查看特定帐户所启动的进程呢?其实很简单。现运行 命令,让系统统计所有帐户的进程。然后在需要查看特定帐户的进程使,只需要按u键(注意小写),然后输入用户名即可。此时系统会自动把其他帐户的进程过滤掉,方便系统管理员查看。按用户过滤后,仍然可以按m键来对现实的结果进行过滤。如果在一开始就需要查看某个特定用户的进程,那么只需要直接在 命令后面加入-u可选项然后带上具体的用户名即可。但是,此时如果再想查看全部用户的话,那么只有先推出命令,然后再利用命令不带任何选项,来查看所有用户的进程。或者说,再在这个窗口中输入字符u,然后直接按回车键,也可以显示所用用户的进程信息。
3、动态统计信息。
使用命令来统计进程的运行信息,跟微软操作系统的任务管理器一样,都是动态调整的。也就是说,系统会每隔一段时间去统计这个信息,然后动态的显示在窗口中。不需要用户手工去更新相关的信息。而且从上面的图形中可以看出,命令统计的信息要比微软任务管理器统计的信息要多的多。所以对系统管理员来说,具有更大的参考价值。笔者以前也很喜欢采用微软操作系统的任务管理器。而了解了命令后,就对其钟爱有加了。因为其不仅可以完成任务管理器中的所有功能。而且命令中有的信息在微软任务管理器中却无法显示。而这些信息往往对我们维护系统、提升性能具有很大的参考价值。
4、删除有异常的进程。
如果这个窗口中,发现某些进程有异常或者用户执行了规定以外的应用程序,如占用了太多的系统资源或者有僵尸进程的存在,则可以直接在这个窗口中讲其删除。操作的方法很简单,只需要在这个窗口内输入字符p,然后系统会提示系统管理员输入要关闭进程的PID。管理员只需要键入这个值,然后按回车键就可以杀掉不需要的进程。不过在关闭进程的时候,有权限的限制。系统特权帐户root可以关闭所有用户的进程。而普通帐户则只能够删除自己打开的程序,而无法关闭其他用户的进程。如现在系统管理员先以oracle用户登录,发现root帐户下某个进程异常,想要关闭时,系统会提示无法关闭的错误信息。此时管理员必须先终止这个进程,然后利用su命令更改登陆的帐户。然后再关闭这个异常的进程。系统管理员可以同时关闭多个进程。方法很简单,就是同时输入多个需要关闭的进程号。在各个进程号之间需要利用逗号隔开。
在系统维护中是一个很有用的命令。除了可以实现如上的功能外,还可以设置其动态更新的时间间隔等等。不过需要注意的是,在不同版本的 Linux系统中其功能稍有差异,而且其显示的布局与内容也有所不同。为此当系统管理员维护其不怎么熟悉的版本时,有时候需要查看系统的帮助说明。此时只需要在命令后面加上?号就可以获得相关的帮助。这个联机帮助文档根命令一样,都是系统管理员的好帮手。不过可惜的是,现在这些在线帮助文档都是英文的。所以这对系统管理员的英文说明要求比较高。
但是这个稳定是相对而言的。也就是说,Linux操作系统也会有闹脾气的时候。在某些情况下,其系统的资源使用率(包括CPU或者内存),也会达到90%以上甚至更多。为此系统管理员在必要的时候,仍然需要监视系统资源的使
虽然说Linux操作系统要比Windows操作系统稳定的多。但是这个稳定是相对而言的。也就是说,Linux操作系统也会有闹脾气的时候。在某些情况下,其系统的资源使用率(包括CPU或者内存),也会达到90%以上甚至更多。为此系统管理员在必要的时候,仍然需要监视系统资源的使用情况。笔者今天就给大家介绍一下,在Linux操作系统下如何监视这个系统资源,做到心中有数。
在Windows操作系统中,可以通过任务管理器来查询各个进程所占用的CPU与内存的比率。在Linux操作系统中没有这种图形化的管理。在命令行模式下,键入命令,即可以看到各个进程所占用的系统资源。
ppp作为一个合格的系统管理员,出于系统性能优化或者其他方面的考虑,往往需要掌握系统中最消耗CPU或者内存资源的程序。为了达到这个目的,系统管理员就需要借助系统提供的命令。这个命令可以帮助管理员监控系统资源的使用情况,包括内存、CPU、交换文件分区的使用率等等。就是这个命令的执行结果。系统管理员想要提升操作系统的性能,第一步就是需要读懂上面这张表格。如果这种图中的内容系统管理员无法看懂,那么他就想提升系统的性能根本无法入手。
Top命令的运行结果大致可以分为两个部分。上半部是使一些统计的信息,包括内存和交换分区的使用情况、CPU的运行情况、进程的总数等等。在这些统计信息中,系统管理员除了要关注这些重要资源的使用滤外,还需要注意进程运行的状态。可见在Linux系统中进程的状态主要有四种,分别为running、sleeping、sped和zombie。如果从系统维护与性能优化考虑,则系统管理员需要关注那些状态为zombie的进程。若进程处于这个状态,在Linux操作系统中叫做僵尸进程。什么叫做僵尸进程呢?就是那些父进程还没死、但是子进程却死了的进程。在Linux操作系统中,进程一般分为父进程和子进程。某个进程A可能会调用另外一个进程B。此时这个进程A就叫做父进程,而进程B就叫做子进程。由于一些意外的情况,子进程运行已经停止,但是父进程却还不知道子进程早已停止运行,还在那边傻傻的等待着子进程返回运行结果。由于子进程没有返回结果,则父进程可能一直会在那边等待。从而导致系统性能的下降。如果系统管理员发现有僵尸进程的话,首先要做的就是结束父进程(有时候还需要查看这个父进程打开的其他子进程运行情况),以释放其占用的系统资源。其次如果这种情况发生的比较频繁时,则系统管理员就需要分析到底是什么原因导致这种情况发生的。找到原因后要采取积极的措施。通常情况下,如果子进程的状态为僵尸时,父进程就不会自动结束,从而其占用的系统资源就不会自动释放,从而降低操作系统的性能。
二、Top命令的使用技巧。
1、 选择合适的排序顺序。
在Windows操作系统的任务管理器中,管理员可以根据需要选择合适的排序顺序,如按CPU排序或者按内存的使用率进行排序。而在命令的显示结果中,默认情况下是按照CPU的使用率来进行排序的。如果现在系统管理员想按照内存使用率来排序,该如何处理呢?如果要想改变命令结果的排序顺序,则可以按m键来按内存进行排序。注意这里的m是小写,而不是大写的。在Linux操作系统中大部分命令与参数大小写都是敏感的。这跟微软操作系统中的DOS命令不同。Dos命令是不区分大小写的。虽然这个排序没有像微软操作系统中的任务管理器那么方便,只需要点点鼠标就可以完成排序。但是只要熟悉相关的命令,在命令行中对其排序没有大家想想的那么困难。
2、 监视特定用户使用的资源情况。
在Windows操作系统中,如果想要查看特定帐户所打开的进程以及所耗用的系统资源,操作非常简单。只需要打开系统任务管理器,然后按照用户来进行排序。就可以知道某个用户开启了哪些进程以及所占用的比例。而在命令中,没有按帐户进行排序的功能。即在上面这个显示结果中,只可以按照内存使用率或者CPU负载来进行排序,而无法按照用户来进行排序。在同一个结果中夹杂着系统特权用户root与普通用户所打开的进程。这对于系统管理员查找问题原因非常的不方便。有时候系统管理员往往需要只查看特定用户的进程,如只需要查看oracle帐户所打开的进程以及所占用的系统资源。而忽略掉系统帐户。因为特权帐户其他用户无权进行登陆操作,而其运行的往往是一些系统级别的进程,为此一般不会出现问题。而普通用户可以运行一些应用程序。有时候他们糊里糊涂可能会打开一些非法程序,占用大量的系统资源,从而降低系统性能。废话少说,如何才能够查看特定帐户所启动的进程呢?其实很简单。现运行 命令,让系统统计所有帐户的进程。然后在需要查看特定帐户的进程使,只需要按u键(注意小写),然后输入用户名即可。此时系统会自动把其他帐户的进程过滤掉,方便系统管理员查看。按用户过滤后,仍然可以按m键来对现实的结果进行过滤。如果在一开始就需要查看某个特定用户的进程,那么只需要直接在 命令后面加入-u可选项然后带上具体的用户名即可。但是,此时如果再想查看全部用户的话,那么只有先推出命令,然后再利用命令不带任何选项,来查看所有用户的进程。或者说,再在这个窗口中输入字符u,然后直接按回车键,也可以显示所用用户的进程信息。
3、动态统计信息。
使用命令来统计进程的运行信息,跟微软操作系统的任务管理器一样,都是动态调整的。也就是说,系统会每隔一段时间去统计这个信息,然后动态的显示在窗口中。不需要用户手工去更新相关的信息。而且从上面的图形中可以看出,命令统计的信息要比微软任务管理器统计的信息要多的多。所以对系统管理员来说,具有更大的参考价值。笔者以前也很喜欢采用微软操作系统的任务管理器。而了解了命令后,就对其钟爱有加了。因为其不仅可以完成任务管理器中的所有功能。而且命令中有的信息在微软任务管理器中却无法显示。而这些信息往往对我们维护系统、提升性能具有很大的参考价值。
4、删除有异常的进程。
如果这个窗口中,发现某些进程有异常或者用户执行了规定以外的应用程序,如占用了太多的系统资源或者有僵尸进程的存在,则可以直接在这个窗口中讲其删除。操作的方法很简单,只需要在这个窗口内输入字符p,然后系统会提示系统管理员输入要关闭进程的PID。管理员只需要键入这个值,然后按回车键就可以杀掉不需要的进程。不过在关闭进程的时候,有权限的限制。系统特权帐户root可以关闭所有用户的进程。而普通帐户则只能够删除自己打开的程序,而无法关闭其他用户的进程。如现在系统管理员先以oracle用户登录,发现root帐户下某个进程异常,想要关闭时,系统会提示无法关闭的错误信息。此时管理员必须先终止这个进程,然后利用su命令更改登陆的帐户。然后再关闭这个异常的进程。系统管理员可以同时关闭多个进程。方法很简单,就是同时输入多个需要关闭的进程号。在各个进程号之间需要利用逗号隔开。
在系统维护中是一个很有用的命令。除了可以实现如上的功能外,还可以设置其动态更新的时间间隔等等。不过需要注意的是,在不同版本的 Linux系统中其功能稍有差异,而且其显示的布局与内容也有所不同。为此当系统管理员维护其不怎么熟悉的版本时,有时候需要查看系统的帮助说明。此时只需要在命令后面加上?号就可以获得相关的帮助。这个联机帮助文档根命令一样,都是系统管理员的好帮手。不过可惜的是,现在这些在线帮助文档都是英文的。所以这对系统管理员的英文说明要求比较高。
[root@iZ259r7h4pfZ ~]#
- 16:48:24 up 226 days, 8:34, 1 user, load average: 0.00, 0.00, 0.01
Tasks: 204 total, 1 running, 164 sleeping, 0 sped, 39 zombie
Cpu(s): 0.9%us, 0.9%sy, 0.0%ni, 98.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1920740k total, 1123552k used, 797188k free, 24216k buffers
Swap: 0k total, 0k used, 0k free, 87436k cached
[root@iZ259r7h4pfZ ~]# free -m
total used free shared buffers cached
Mem: 1875 1097 778 0 23 85
-/+ buffers/cache: 988 887
Swap: 0 0 0
也可以用watch监控
[root@iZ259r7h4pfZ ~]# watch -n 1 "free -m"
Every 1.0s: free -m Tue Oct 31 16:48:44 2017
total used free shared buffers cached
Mem: 1875 1098 777 0 23 85
-/+ buffers/cache: 989 886
Swap: 0 0 0
这个需要配置吧
:blogs./yangxia-test/archive/2012/11/27/2790771.
LR只是模拟客户端和服务器进行交互,并不能直观的收集服务器是内部的信息,如果要监控服务器性能情况,linux系统可以用nmon(或者用命令不过,只能监控内存之类的情况,写一个shell脚本定时输出日志到本地就可以了),oracle可以用awr。
Linux查看系统资源占用
在系统维护的过程中,随时可能有需要查看 CPU和内存的使用率,并根据相应信息分析系统状况的需求。本文介绍一下几种常见的Linux系统资源查看命令。
1、总体内存占用的查看
命令:free
图1 free命令查看内存占用
(1) free命令默认是以kb为单位显示的,可以用free -m 用Mb单位来显示。
(2) Mem行 : total = used + free 其中buffers和cached虽然计算在used内, 但其实为可用内存。
(3) Mem下一行:used为真实已占内存,free为真实可用内存。
(4)Swap:内存交换区的使用情况。
2、查看内存占用前五的进程
命令:ps auxw | head -1;ps auxw|sort -rn -k4|head -5
图 2.1查看内存占用前5的进程
如图2.1所示, 内存的单位是kb,VSZ是虚拟内存的占用,RSS是真实的内存的占用。
命令分解:
ps auxw显示系统资源占用情况;
head -1表示显示第一列,即标题列;
sort -r 表示反向排序,-n表示按数字排序,-k4表示列的第4个字符。
3、查看CPU占用前三的进程
命令:ps auxw|head -1;ps auxw|sort -rn -k3|head -3
图3.1 查看cpu占用前三的进程
该命令与图2.1相仿,只是选择的资源占用情况的第3列(即cpu),用“-k3”表示。
4、查看系统整体的负载
命令:
图4.1 显示系统整体负载
(1)第一行: 系统时间 + 系统运行时间 + 几个用户 + 1/5/15分钟系统平均负载
(2)第二行:进程总数(total) + 正在运行进程数(running) + 睡眠进程数(sleeping) + 停止的进程数(sped)+ 僵尸进程数(zombie)
(3)第三行:用户空间CPU占比(us) + 内核空间CPU占比(sy)+ CPU空置率(id)
图4.2 各个任务占用资源情况
注解:
PID :进程ID
USER :用户名
PR :优先级
NI :负值表示高优先级,正值表示低优先级。
VIRT :虚拟内存
RES : 真实内存
SHR :共享内存
S :进程状态 D=不可中断的睡眠状态; R=运行; S=睡眠 ;T=跟踪/停止; Z=僵尸进程
参数:
-d 2 :每隔2秒显式所有进程的资源占用情况
-c :每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
-p 12345 -p 6789:每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
-d 2 -c -p 123456 :每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数
假设一个线程被调度运行,它将一直运行直到它的时间片用完、直到被抢先或直到它自己主动放弃 CPU 控制权。
当另一个线程被赋予 CPU 控制权时,必须保存前一个线程的上下文或工作环境,并载入当前线程的上下文。操作系统有一个很有效的上下文切换过程,所以每次切换并不耗费资源。
任何上下文切换的显着增加,如当 cs 比磁盘 I/O 和网络包速率高的多,都应进行进一步调查。
F. 如何用命令行执行loadrunner的脚本
D:\ceshi10\ScenarioNo1.lrs是脚本目录
DontClose
脚本运行完不关闭控制器,蠢培租乎
以上是批处理
把批处理加到
windows的任务计划里,带型唯设置好运行时间,就可以了
This
means
the
Controller
can
be
started
from
a
DOS
batch
(.bat)
file
(preferrably
with
a
short
name
on
a
root
drive):
REM
Start
Controller:
SET
M_ROOT=C:\Program
Files\Mercury
Interactive\LoadRunner\bin
cd
%M_ROOT%
G. loadrunner 怎么录制dat文件(类似命令行输入框),需要选择什么协议和录制设置如何,急求,谢谢!
lr截取的是与服务器交互的信息蠢含判,而不是前台操作,如果你看老答重前台操作的话带改,可以试试web(click and script)协议
H. loadrunner安装
二. 安装
1.启动安装程序
运行setup.exe,点击“LoadRunner完整安装程序”
2.安装组件
安装LoadRunner11时,安装程序会自动检测系统所安装的组件情况,LoadRunner运行支持的组件,一般比较重要的是Visual C++ 2005 SP1和.Net Framework 3.5。因之前安装了一组件在计算机中,下图中只显示了2个必要的组件(lr安装包中含有这些组件),如果是全新的系统一般会是5个,直接点击“下一步”,如下图:
3.LoadRunner 安装欢迎界面
组件安装完成后进入LoadRunner主程序的安装界面,直接“下一步”:
4.许可协议
选择“我同意”,然后点击“下一步”:
5.个人信息
输入个人相关信息,选择“下一步”:
6.安装路径
选择LoadRunner安装路径,注意安装路径不要有中文,选择“下一步”:
7.安装及完成
8.安装后
安装完成后,系统会自动打开“LoadRunner License Information”窗口:
并提示你的License只有十天的使用期。
此时,可以启动LoadRunner了。
三. 破解
1. 把loadrunner相关程序全部退出;
2. 解压文件: lr破解.zip
2. 用LR8.0中的mlr5lprg.dll、lm70.dll覆盖LR9.5安装目录下“bin”文件夹中的对应文件;一般是C:\Program Files\Mercury\LoadRunner\bin.
3. 清理注册表(不清理的话,在添加licence时,会提示“License security violation……”)
可以下载注册表清理器lr_Del_license(LR破解包内有)
或者手动修改注册表,删除下面内容:
[HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive\LoadRunner\License2]
[HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive\LoadRunner\License2\History]
"AIBGEBFW-JVED-ZKEKEKEKEKEBDNQAF-KBRDN"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive\LoadRunner\License2\PermanentLicense]@="AIBGEBFW-JVED-ZKEKEKEKEKEBDNQAF-KBRDN""last"="AIBGEBFW-JVED-ZKEKEKEKEKEBDNQAF-KBRDN"
[HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive\LoadRunner\License2\TemporaryLicense]@="AEBGEBFS-AKEKEKEKE-KAUCA"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{87B3ADD4-21EB-11d5-93EF-00105AA0FD2D}]@="IControl"
4. 添加下面的licence,即可使用:
global-100: AEAMAUIK-YAFEKEKJJKEEA-BCJGI
web-10000: AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB
golba-1000:AEACFSJI-YASEKJJKEAHJD-BCLBR
提供一个超级license 最高支持6.5w个并发:AEACFSJI-YJKJKJJKEJIJD-BCLBR
(备注:破解同8.1、9.5一样)
四. 安装过程中遇到的问题
1. 安装过程中,提示:少了Microsoft Visual c++2005 sp1运行时组件,安装时会提示命令行选项语法错误,键入“命令/?”可获取帮肋信息,无法正常安装;
解决方法:
u 进入loadrunner-11\Additional Components\IDE Add-Ins\MS Visual Studio .NET
u 安装:LRVS2005IDEAddInSetup.exe
u 再安装loadrunner
2.注意开启 ,在开始菜单下面的HP LoadRunner\Advanced Settings\LoadRunner Agent Process.如果不打开此服务会影响GUI Vusers、ASPGUI脚本回放。
3.安装时提示"the link file .... may be corrupted or has illegated link string"的错误信息或者提示Command Line Option Syntax error.Type Command/?时:
原因:LoadRunner的安装文件夹包含中文,LoadRunner的安装脚本无法识别路径,最终导致不断有这样的错误提示。
解决方法:把安装文件的目录名改为不要有中文,安装目录最好使用默认。
4.管理员权限安装
5.LoadRunner录制脚本经常遇到不能打开浏览器的情况,(当一台主机上安装多个浏览器时,)可以用下面的方法来解决。
解决办法:启动浏览器,打开Internet选项对话框,切换到高级标签,去掉“启用第三方浏览器扩展(需要重启动)”的勾选,然后再次运行VuGen即可;
提示:通常安装Firefox等浏览器后,都会勾选上面得选项,导致不能正常录制。因此建议运行LoadRunner得主机上保持一个干净的测试环境
6.录制时关闭防火墙,关闭360相关东西。
7.loadrunner在打开场景时,提示“试图执行系统不支持的操作”
解决方法:卸载LoadRunner,然后手动删除安装文件和注册表里面的信息,重启后安装,杀毒软件的防御提示全部设为允许,就OK了
原因:在安装时,360杀毒软件的防御提示全部设为阻止了。
8.重装系统后安装LR,提示setup has determined that a previous installation has not completed,重启无效 ;
解决办法:a.进入注册表:运行/regedit;
b.进入路径:KEY_LOCAL_MACHINE/SYSTEM/Contrl/SessionManager;
c.在Session Manager右侧的主试图中,双击PendingRenameOperations,在弹出的窗口中,将临时文件删除。
d.重新运行LR安装文件即可。
9.当安装提示"此计算机缺少 vc2005_sp1_with_atl_fix_redist",怎么办?
解决方法:运行安装程序自带的vcredist_x86.exe(默认在 "安装包\lrunner\Chs\prerequisites\vc2005_sp1_redist"目录下),让电脑先装基础环境后装LoadRunner 11即可。
I. 破解loadrunner9.5时,找不到loadrunner的注册表是哪一个,输入破解密码时还是提示报错
我来帮你解决:(你的问题在于注册表扮早兆没弄好)
1.把破解文件夹中的两个dll文件拷入 X:\Program Files\HP\LoadRunner\bin下
2.修改注册表:
命令行敲regedit打开注册表编厅租辑器,找到 HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive\LoadRunner\License2,其下有三个目录History,PermanentLicense,TemporaryLicense。
1>把以上三个目录下的注册值全部删掉。
2>在PermanentLicense下添加:
默认:AEACFSJI-YJKJKJJKEJIJD-BCLBR。
重新打开loadrunner,你就会发现你已经注册了,再也没有烦睁轮人的license的提示框了。
J. LoadRunner学习知多少
一、为什么要设置IP 欺骗
1、 当某个IP的访问过于频繁,或者访问量过大时,服务器会拒绝访问请求,这时候通过IP欺骗可以增加访问频率和访问量,以达到压力测试的效果。
2、 某些服务器配置了负载均衡,使用同一个IP不能测出系统的实际性能。LR中的IP欺骗通过调用不同的IP,可很大程度上的模拟实际使用中多IP访问和测试服务器均衡处理的能力。
3 、有一些网站会限制同一个用户同一个 IP 的登陆。为了更加真实的模拟实际情况, LoadRunner 允许运行的虚拟用户使用不 同的 IP 访问同一网站。
二、IP 欺骗绝兄谨设置方法
在配置前首先要确定本地IP是固定的,不能是自动获取的
所添加的IP只能是局域网内的网段,即只能添加192段,127段,10段的IP地址
IP Spoofer 在连接 Load Generators 之前启用
打开开始菜单中的LoadRunner文件夹下的Tools文件夹,点击IP Wizard:
第一次运行IP Wizard需要选择第一项“Create new settings”,如果以前运行过,可以选择第二项,选择保存好的文件;第三项用于使用IP欺骗进行测试完成后,释并基放IP的。(因为该操作会占用大量的IP资源,可能会导致其他机器没有IP可用的尴尬局面,使用该项,可以恢复到原来的状况)。
这里选择第一项,“下一步”,出现IP Wizard的第二个窗口:
这里输入Web Server的IP地址(这里输入应用程序所在的服务器的IP地址,IP Wizard将会检查服务器路由表是否需要更新,如果需要更新的话,将会产生相应的脚本帮助你来更新服务器路由表,如果服务器和客户端在同一网段,这个IP可以不填)。然后“下一步”,出现向导的第三个窗口:
从“From IP”文本框中输入要使用IP范围的第一个IP值,然后在“Numbers to Add”输入一个数字,表示IP范围的值;“Submask”使用默认情况,取决于使用的那种类型的网络IP,一般局域网内采用Class C即可。
建议此处选择Save as 保存IP。保存IP列表后,下次使用时,可以直接导入IP列表;也可以直接修改保存的IP列表文件,再导入。
设置完成后,重新启动计算机。
重启后,在命令行输入ipconfig查看IP:
三.在场景中使用IP 欺骗
1.勾选“Scenario”--“Enable IP spoofer”;
2.勾选“Tools”—“Export Mode”;
3.“Tools”—“Options”—“General”
Multiple IP address mode选择“IP address allocation per process”
这个选项一定要与尘和当前场景的模式相匹配,也就是说使用本地虚拟IP测试时需要选中线程方式,使用负载生成器使用虚拟IP测试时需要选中进程方式。
4.“Diagnositics”—“Configuration”
“Web Page Diagnostics”设置为Disable.