浏览模式: 标准 | 列表分类:系统工程师

基于HP-UX的一次测试调整(一)

本次调整不算系统级别的调优,只是让系统处于一个稳定运行的状态,能支持1000在线,1.5S的思考时间的并发,基于RMI,TCP(短连接),WTC协议模拟压力的调整。分五章说明本次调整的方法和原因。

第一章 全局操作系统内核参数的调整

硬件说明

CPU info:

  4 Intel(R) Itanium 2 processors (1.3 GHz, 3 MB)

          400 MT/s bus, CPU version B1

 

Memory: 4027 MB (3.93 GB)应用服务器/ 12219 MB (11.93 GB)数据库服务器

 

Firmware info:

   Firmware revision:  006.044

   FP SWA driver revision: 1.18

   IPMI is supported on this system.

   BMC firmware revision: 8.05

 

Platform info:

   Model:                  "ia64 hp server rx7620"

   Machine ID number:      5981791c-1f2e-11db-b3ef-e251099a55e7

   Machine serial number:  SGH4626D96

 

OS info:

   Nodename:  rx7620

   Release:   HP-UX B.11.31

   Version:   U (unlimited-user license)

   Machine:   ia64

   ID Number: 1501657372

   vmunix _release_version:              

@(#) $Revision: vmunix:    B.11.31_LR FLAVOR=perf

调整说明

基于HP-UX的操作系统调优,*NUX系列调整大同小异。本次调整正对应用服务器和数据库服务器,根据并发数,内存分配,场景要求有相关对应。

需调整的内核参数说明

maxdsizmaxssizmaxtsiz 这些参数是所有HP-UX 用户进程的三个基本的组成部分(数据、堆栈和文本段) 单位:byte

Maxuprc单个用户最大并发进程数

max_thread_proc 单个进程最大并发线程数

本次测试,数据库需要接受weblogic的连接池配置100-350的连接。

我们更改以上的参数

# kctune -h maxdsiz=" 4294967296"

# kctune -h Maxuprc ="1024"

# kctune -h max_thread_proc ="2048"

Tags: hp-ux, 不算调优, rx7620

linux,eos,weblogic,性能测试

自己机器的wiki已经完成了架设的过程,并已经启用了,我会把自己的工作过程和遇到的问题作为tip记录下来,积累和提高。


---------------eos for weblogic的默认安装-----------------

访问console,默认的用户名/密码为  system/eosversion

--------------强制杀进程-------------

kill -9 pid

--------------too many open file 文件句柄超出-------------

在使用linux服务器做web应用服务器时,linux默认的对外file连接数量为1024. 也就是说,如果做压力测试的话(偶就是搞这个的),一定需要修改对外的tcp链接数量。

一般这种错误,对应的是日志中的too money open file.

在Linux下,我们使用ulimit -n 命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。对于一般的应用来说(象Apache、系统进程)1024完全足够使用。但是如何象squid、mysql、java等单进程处理大量请求的应用来说就有点捉襟见肘了。如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到“too many files open”的错误提示。如何知道当前进程打开了多少个文件句柄呢?下面一段小脚本可以帮你查看:

lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more 在系统访问高峰时间以root用户执行上面的脚本,可能出现的结果如下:

# lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more

131 24204   
   57 24244   
   57 24231   
   56 24264

其中第一行是打开的文件句柄数量,第二行是进程号。得到进程号后,我们可以通过ps命令得到进程的详细内容。

ps -aef|grep 24204 即可查看对应的进程。

但是如果系统并发特别大,尤其是squid服务器,很有可能会超过1024。这时候就必须要调整系统参数,以适应应用变化。Linux有硬性限制和软性限制。可以通过ulimit来设定这两个参数。方法如下,以root用户运行以下命令:

ulimit -HSn 4096 以上命令中,H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量。个人觉得最好不要超过4096,毕竟打开的文件句柄数越多响应时间肯定会越慢。设定句柄数量后,系统重启后,又会恢复默认值。如果想永久保存下来,可以修改 /etc/profile 把上面命令加到最后。

当然,也不建议过多,会对资源有所损耗。 由于我是上的300虚拟用户,我直接给当前连接窗口给开到了10240。

----------------------远程连接相关----------------

用 nohup ./startServer.sh启动服务,可以断掉链接,服务存在。

----------------load runner相关设置--------------

巧用参数生成123456000000到123456150000的编号。设定如下:

大小: 44.35 K
尺寸: 400 x 356
浏览: 61 次
点击打开新窗口浏览全图

图中的100对应着我的100 vuser的并发。这样设置的意思,到最后就能100并发,生成123456000000到123456150000并且不重复。

-----------------web service压力测试注意------------------

听GZ说起,一个注意点。

获取连接的时候,应该把获取连接的方法提取到静态方法中,不能每次动态获取连接。

不然压力上去,性能就下来了,做个笔记。

---------------------------------------------------------

破解的8.1,100 vuser,一个controller能管理多个clinent,但是并发用户总数还是不能超过100,还需要手工合并压测数据,真晕。

Tags: linux, eos, weblogic, 性能测试, loadrunner

索引的基本原理,以及数据是如何被访问的

(一)SQLS如何访问没有建立索引的数据表

(二)SQLS如何访问建立了非聚集索引的数据表

(三)SQLS如何访问建立聚集索引的数据表

(四)SQLS如何访问既有聚集索引、又有非聚集索引的数据表

索引的优点和不足

» 阅读全文

Tags: 索引, 数据库, 数据访问

基础不扎实,做人要诚实

昨天输出rss的xml文件。

在jsp中,用java调用biz,得到返回的值。

结果头上引入了太多的包,在头上输出了太多的空格。

我想,这些空格是没法去掉的。经验使然。

做了3年的j2ee,在查看源文件的时候,常发现有这个问题。

于是也没有深究,堂而皇之的说不能去掉。

结果是,下班回宾馆之后,一个写.NET的人,给找到了方法。

并且还不只一种!

记录如下:

out.clear();

<?xml version="1.0" encoding="gb2312" standalone="no"?>

呵,看样子基础不扎实的时候,做人一定要诚实。

不会就是不会,别说不能实现,搞得人品好像很不好的样子。

Tags: jsp, rss, 空格

JAVA调用biz

String xml "<?xml version=\"1.0\" encoding=\"GB2312\" standalone=\"no\"?><root><data><PageCond><length>"

        
rowNum

        
"</length></PageCond><SessionEntity><userID>"

        
userID

        
+"</userID></SessionEntity></data></root>";

    
//构造xml

    
Document inDom XmlUtil.parseString(xml);

    
ProcessCaller pc = new ProcessCaller("tm_aqyh""0""-1","defaultAppID");

    
Document doc pc.implement("bizAlldo.bizAlldoXml",inDom);

最后拿到的doc就是调用biz bizAlldo.bizAlldoXml返回的值。

我们可以直接java中调用写好的biz。

Tags: java, biz, 普元