你们做的应用服务器经得起轰击测试吗(100分)

  • 主题发起人 主题发起人 hnxsc
  • 开始时间 开始时间
H

hnxsc

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Delphi做了一个应用服务器:
客户端用SocketConnection连接,基本上用一个Sql语句接口和存储过程接口与应用服务器交互.
客户端数量在30个左右,数据访问量比较大。
现在问题是,连接时间长了后内存急剧上升,一天不到服务器就出现内存不足现象。
 
查找一下,有否不明显的内存泄漏?
 
我今天做了个测试程序:
应用服务器:加一个客户验证接口和一个业务处理的接口,但其实是直接返回结果。
客户端:反复的进行连接、验证、处理业务、关闭连接。
运行20个客户端一个小时以后:
应用服务器内存无明显增加
RpcSS.exe 内存增幅达10多M
ScktSrvr.exe 内存增幅也不少。
请问这算不算系统问题(我觉得并不存在程序内存没释放的问题)。
 
内存漏洞?
 
非常关注。
 
我想你一定是内存有泄漏的地方。
我也写过类似的程序,为了隔离数据库作的通讯机,我测试的时候连接过30的终端,进行了2000多次连接测试,
每次都是每个连接(共30个)接上、断开,
开始程序增长到10M,然后就基本不动了。
结束之后程序没有什么变化,变成大约6M。
你应该检查你有所的动态创建的东西,是否释放了。
比如,socketserver的线程你结束后释放了吗?
是否用到了动态内存、动态创建了tquery嘛?异常退出是否释放了这些东西。
 
高深!
不懂!
 
我的应用服务器一般挂 28-33 个连接,连续运行1个星期都没问题(不过有时应用服务器也
会出错[非法错误],我至今还未找到原因,不知该如何捕捉?),应用程序内存占用约
15M,ScktSrvr约4M。(主机 Win NT 4.0 ,256M内存)
 
一般来说,作多层开发的时候,建议是取完数据以后,立刻断开连接,释放资源
如果都占这不放,何必用多层开发呢,用C/S就可以了。/
 
内存漏洞!!!
查看程序对动态分配的内存有无正确的是放
 
我也遇到了这样的问题。
大鱼儿:你所指的断开连接指的是断开哪个之间的连接?(应用程序服务器与数据库服务器,
还是应用程序服务器和客户端的连接)
我也觉得是动态内存释放的问题,现在正在测试中。
 
您肯定是把三层的做成两层的了
呵呵
 
如果是40个客户不到,到还不如使用2层;
三层中最好要把事务分开,不要打开过多的记录集;使用Midas时要注意调用顺序;
 
不会把,你可以连接这么多,我在公司专门做了一个测试,连接20个客户就有3个客户连不上了
其他17个客户进行简单操作就可以了,但是最后一项下载所有记录17个同时下载3万多条记录
就发现客户连接超时了,如果是大的客户量建议采用Dcom连接,或者用Com+机制,我同时
用了40个客户端,都可以正确运行的(用Dcomconnction)配置起来麻烦一点,但性能要高的
多我这都是有数据的
 
你是不是用了timer控件,一直在轮询数据库啊。还有尽量不要查询大数据集的表,如果有
,就有想想办法了,另外,还可以在应用服务器建同样的表,并与数据库服务器同步,这样
客户端也可以对应用服务器查询
 
楼上的简直是乱讲,
是DM没有释放哪,
所以每链接一个Client就会创建一份DM的线程
如此释放就好了,
CoDisConnect(DM,0);
 
我也遇到了
我的系统是这样的
客户端 + Midas服务器+oracle数据库服务器
midas服务器通过Ado访问数据库,现在midas服务器的内存占用比较大
20多个客户端 内存峰值29M,虚拟内存的数量只增不减,也是29M左右。
内存还好会有回落。并且我的midas服务器没有使用动态内存。
我很担心时间长了会使内存崩溃。
我的客户端和midas服务器采用的是socket连接。基本上维持在20个客户端,并且操作很频繁。
 
有没有大富翁有这方面的成功经验,介绍介绍吧。
 
后退
顶部