我正在使用WSF、VBS和JavaScript脚本系统来驱动web服务负载测试。加载驱动程序在我的工作站上运行,向远程应用程序服务器发送请求。我在驱动程序脚本中使用WScript.StdOut.Write编写结果,并在运行测试时将输出重定向到文本文件:
cscript //nologo driver.wsf > test_results.txt当我使用只有100个事务的“冒烟测试”输入文件时,测试运行得相当快,并且没有任何问题。当我使用200,000个事务的“负载测试”输入文件时,驱动程序的性能随着时间的推移而下降,直到运行它的工作站变得没有响应,并且使用了85%的页面文件。我的test_results.txt文件的大小刚刚超过43 of。
我怀疑Windows正在将StdOut输出缓存到内存中,而不是将其写入文件;有人有替代的解释或其他想法吗?从我的脚本中将输出作为文件系统对象来管理是否比使用StdOut更好?
更新:我的驱动程序基本上做到了这一点(psuedo代码):
Open input file
Read a record
While not EOF
Encode record
Create SOAP message containing record
Make web service request
Write time to get response to StdOut
Read another record
End While
Close input file发布于 2009-01-22 02:31:14
我非常怀疑问题出在重定向的输出上。我经常创建重定向的几百兆字节大小的StdOut文件。
更有可能的是,对记录进行编码、创建SOAP消息或发出Web服务请求会导致内存泄漏。
您可以考虑注释掉将响应时间写入StdOut的代码行,然后重新运行该程序。如果程序仍然开始变慢,那么您已经排除了导致输出的原因。
https://stackoverflow.com/questions/465767
复制相似问题