На *nix можно провернуть такой финт: ftp> put "| dd if=/dev/zero bs=32k count=100000" /dev/null
В итоге нагружается сеть по максимуму.
На z/OS не получилось: 200 Port request OK. 550 Command STOR fails: /dev/null is a character special file. dd: write error: Broken pipe 4+0 records in 1+0 records out
Собственно вопрос: как нагрузить сеть на z/OS по максимуму, не трогая диски, чтобы проверить ее максимальную пропускную способность.
Артем, извините, мучаюсь вопросом. Обсудили Ваше сообщение с коллегами, и не поняли - что именно вы хотите померять? Насколько хорошо маршрутизаторы, которые между ПЭВМ и мейнфреймом, умеют комплексировать и сжимать трафик? Или насколько сетевой адаптер осуществляет оффлоад трафика? В общем - какая решается задача? И какие полезные знания при этом будут получены?
Задача - узнать, не является ли сетевое оборудование узким местом. Между z/OS и другими Unix системами, с которыми идет обмен данными по сети - куча сетевого оборудования, конверторов, мультиплексоров, арендованной оптики и т.д., о котором мало что известно. Этакий черный ящик. Необходимо узнать, на какой максимальной скорости может идти обмен данными по сети между z/OS и другой Unix системой. В теории все сетевое оборудование гигабитное, но насчет реальной пропускной способности есть сомнения. Собственно, нужен способ сгенерировать максимально возможный сетевой трафик (до гигабита). Если бы на обоих концах был Unix - это можно сделать с помощью приведенного способа: on hostA: ftp hostB ftp> put "| dd if=/dev/zero bs=32k count=100000" /dev/null
И смотрим на hostA или hostB нагрузку на сетевом интерфейсе.
К сожалению, "на другом конце" только z/OS системы - и с z/OS USS такой способ не заработал.
Gregory, а можно по подробнее? К сожалению, с z/OS знаком довольно слабо.
named pipe aka fifo-файл вообще-то понятие *nix а не z/OS. z/OS FTP поддерживает named pipe в get/put. Выглядеть это все по идее может как-то так: mkfifo /tmp/mypipe dd if=/dev/zero of=/tmp/mypipe ... & ftp -n <<EOF user pass locsite unixfiletype=fifo put /tmp/mkfifo ... ... EOF
пишу "может", "по идее" и пр. потому что сейчас нет времени проверить это все. Детали про ftp в SC31-8780-09 z/OS Communications Server IP User's Guide and Commands v1.11, прежде всего 4.13 Using z/OS UNIX System Services named pipes
Gregory, спасибо за ответ. Теперь понял, что Вы имели ввиду.
Получилось сделать вот в таком виде on zos host: mkfifo /tmp/mypipe dd if=/tmp/mypipe of=/dev/null
on unix host: # ftp hostzos Connected to hostzos. 220-FTPD1 IBM FTP CS 220 Connection will close if idle for more than 5 minutes. Name (172.16.6.27:root): 331 Send password please. Password: 230 user is logged on. Working directory is ftp> site unixfiletype=fifo 200 SITE command was accepted ftp> put "| dd if=/dev/zero bs=32k count=100000" /tmp/mypipe 200 Port request OK. 125 Appending to named pipe /tmp/mypipe