Существуют ли ограничения на объем данных, которые вы можете перенаправить в файл в Windows (XP / 2003)? - PullRequest
2 голосов
/ 21 января 2009

Я веду нагрузочный тест веб-сервисов, используя систему сценариев WSF, VBS и JavaScript. Драйвер загрузки работает на моей рабочей станции, отправляя запросы на удаленный сервер приложений. Я использую WScript.StdOut.Write в скрипте драйвера для записи результатов и просто перенаправляю вывод в текстовый файл при запуске теста:

cscript //nologo driver.wsf > test_results.txt

Когда я использую свой входной файл «Дымовой тест», содержащий всего 100 транзакций, тест выполняется довольно быстро и без проблем. Когда я использую свой входной файл «load test», содержащий 200 000 транзакций, производительность драйвера со временем снижается, и рабочая станция, на которой он работает, перестает отвечать и использует 85% файла подкачки. Размер моего test_results.txt файла был чуть более 43 ГБ.

Я подозреваю, что Windows кэширует вывод StdOut в память, а не записывает его в файл; у кого-нибудь есть альтернативное объяснение или другие идеи? Было бы лучше управлять выводом как объектами файловой системы из моего скрипта, а не использовать StdOut?

UPDATE: Мой драйвер в основном делает это (код 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

1 Ответ

6 голосов
/ 22 января 2009

Я очень серьезно сомневаюсь, что проблема с перенаправленным выводом. Я часто создаю перенаправленные файлы StdOut размером в сотни мегабайт.

Скорее всего, что-то в кодировании записи, создании сообщения SOAP или создании запроса веб-службы приводит к утечке памяти.

Вы можете закомментировать строку, в которой записывается время ответа в StdOut, и перезапустить программу. Если программа все еще начинает замедляться, значит, вы устранили вывод как причину.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...