Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
TEAM(1)			    General Commands Manual		       TEAM(1)

NAME
       team - parallel "pipe", allows asynchronous io

SYNOPSIS
       team  [-r]  [-v]	 [-i  volsize [b|k|m]] [-o volsize [b|k|m]] [blocksize
       (R).RB [	b | k |	m ] [processes]]

DESCRIPTION
       Team just copies	its standard input to its standard output. It does  so
       however	forking	 a  team  of  independent  processes  (default	is 4),
       arranged	in a ring, with	reads overlapped with writes.

       Each process will wait for the  end  of	the  read  phase  of  previous
       process,	will then read blocksize bytes (or 512 byte blocks if suffixed
       with  b	or kilobytes if	suffixed with k, or megabytes if suffixed with
       m; the default is 20k) from  its	 standard  input,  activate  the  next
       process read phase, wait	for the	previous process write phase end, then
       write  to  its  standard	 output,  and  activate	the next process write
       phase.

       If the input or output volume ends or an	IO  error  is  detected,  team
       will  ask  wehtether  the  user wants to	continue (but only if the con-
       cerned volume is	a block	or character device and	the program's standard
       error channel is	a tty device). Possible	answers	are

       c      This means that the  user	 wishes	 to  continue,	but  the  file
	      pointer  shall be	reset to the beginning of the volume, as a new
	      volume has been started anew. This is the	the answer to give  on
	      end of volume when writing to multiple floppies, etc...

       y      The user simply wishes to	continue, without any change.

       n      The  user	 wishes	 to  stop;  the	 program will be terminated or
	      aborted.

       There are just three options, as	follows:

       -i     The value	that follows the option	is the assumed volume size  of
	      the  input,  and it is expressed in the same units as the	buffer
	      size.

       -o     The value	that follows the option	is the assumed volume size  of
	      the  output, and it is expressed in the same units as the	buffer
	      size.

       -v     If specified as each buffer is read or written the total	number
	      of kilobytes read	or written that	far is printed.

       -r     If specified the number of kilobytes processed and the number of
	      seconds taken is not printed at the end of the run.

       Team  consumes  system  time  to	 synchronize and task switch among its
       processes; also,	in order to avoid slowing it, it is best run on	a qui-
       escent system.

       This program is most useful for output to a device, especially where  a
       streaming  tape	is  involved. It may be	used to	advantage with disc to
       disc and	disc to	tape copies.

EXAMPLES
       find dir	-print | cpio -oBc | team 20k 8	>/dev/rmt0
       team 20k	4 </dev/rmt0 | cpio -iBcdmu
       pax -w -b 4k * |	team -o	1200k 15k 2 >/dev/rdsk/f0t

ADVICE
       You are advised to experiment with different combinations of block size
       and number of processes;	each program used with team  works  best  with
       certain	parameters,  and performance depends even more strongly	on the
       output device, so experiment with parameters also for  this  (it	 seems
       that the	blocking factor	of the process that feeds team ought to	be in-
       ferior  to  that	given to it, and possibly inferior to the limit	on the
       size of a pipe for your version of the system).	Team ought to be adap-
       tive, and adjust	dynamically both parameters, in	order to reach a state
       where there is no pause between each stage of the  ring.	 This  is  too
       difficult to achieve under UNIX.

       Notice  also  that  this	 program will read and write blocks all	of the
       same size as prescribed,	except the last, even when reading from	pipes;
       if a read from its input	supplies less bytes than the prescribed	 block
       size,  this  program will read again until its buffer is	filled to norm
       or the input finishes.

       A final note: it	is usually advantageous	to give	to team	a  block  size
       that  is	a multiple of the block	size produced by the program before it
       in a pipeline. Notice that in many cases, such  as  the	tape  archival
       programs,  the  output  will  not  be directly recognizable to the tape
       archiver	in input, but will have	to be reblocked	back to	the  blocksize
       expected	 by  the tape archiver either by way of	dd or reapplication of
       team, that is much faster of course.

BUGS
       Team will emit a	number of messages comprehensible only to  the	author
       in case of errors. Plase	note them and report them to the author.

       This  is	 not  strictly a bug in	this program, but rather a limitation;
       some device drivers will	have problems when you change volume when this
       program asks you	whether	to continue operation. They require  that  the
       device  be closed and opened again whenever a volume is changed.	Unfor-
       tunately	this cannot be done, given the structure of  team;  with  such
       device  drivers	you effectively	cannot use team	to write multiple vol-
       umes.

       Some device drivers, on physical	end of file or volume while writing do
       not do the decent thing,	and write a legible truncated block and	return
       its length; some	drivers, e.g. some tape	drivers, handle	 physical  eof
       on  write quite badly. With these drivers you had better	use the	-o op-
       tion to set a logical EOF if you	want to	use multiple  volumes.	As  an
       hint, give the volume size as about five	percent	less than the nominal.
       Whatever	 value you use for output, take	not of it, as you will have to
       use exactly the same value for input!

SEE ALSO
       volcopy(8)
       cpio(1)
       tar(1)
       dump(8)

AUTHOR
       Piercarlo Grandi, Milano.

				     (pg)			       TEAM(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=team&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help