verbose: int,
curl_verbose: int,
download_parallel: int = 0,
+ upload_parallel: int = 0,
server_addr: Optional[str] = None,
with_flame: bool = False,
socks_args: Optional[List[str]] = None,
self.server_port = server_port
self._silent_curl = not curl_verbose
self._download_parallel = download_parallel
+ self._upload_parallel = upload_parallel
self._with_flame = with_flame
self._socks_args = socks_args
self._limit_rate = limit_rate
def uploads(self, count: int, fsizes: List[int], meta: Dict[str, Any]) -> Dict[str, Any]:
nsamples = meta['samples']
- max_parallel = self._download_parallel if self._download_parallel > 0 else count
- url = f'https://{self.env.domain2}:{self.server_port}/curltest/put'
- cols = ['size', 'single']
+ max_parallel = self._upload_parallel if self._upload_parallel > 0 else count
+ cols = ['size']
+ if not self._upload_parallel:
+ cols.append('single')
+ if count > 1:
+ cols.append(f'serial({count})')
if count > 1:
- cols.append(f'serial({count})')
cols.append(f'parallel({count}x{max_parallel})')
rows = []
for fsize in fsizes:
'val': fsize,
'sval': Card.fmt_size(fsize)
}]
+ self.info(f'{row[0]["sval"]} uploads...')
+ url = f'https://{self.env.domain2}:{self.server_port}/curltest/put'
fname = f'upload{row[0]["sval"]}.data'
fpath = self._make_docs_file(docs_dir=self.env.gen_dir,
fname=fname, fsize=fsize)
-
- self.info(f'{row[0]["sval"]} uploads...')
- row.append(self.ul_single(url=url, fpath=fpath, nsamples=nsamples))
+ if 'single' in cols:
+ row.append(self.ul_single(url=url, fpath=fpath, nsamples=nsamples))
if count > 1:
- row.append(self.ul_serial(url=url, fpath=fpath, count=count, nsamples=nsamples))
+ if 'single' in cols:
+ row.append(self.ul_serial(url=url, fpath=fpath, count=count, nsamples=nsamples))
row.append(self.ul_parallel(url=url, fpath=fpath, count=count, nsamples=nsamples))
rows.append(row)
self.info('done.\n')
verbose=args.verbose,
curl_verbose=args.curl_verbose,
download_parallel=args.download_parallel,
+ upload_parallel=args.upload_parallel,
with_flame=args.flame,
socks_args=socks_args,
limit_rate=args.limit_rate)
server_port=server_port,
verbose=args.verbose, curl_verbose=args.curl_verbose,
download_parallel=args.download_parallel,
+ upload_parallel=args.upload_parallel,
with_flame=args.flame,
socks_args=socks_args,
limit_rate=args.limit_rate)
server_port=server_port,
verbose=args.verbose, curl_verbose=args.curl_verbose,
download_parallel=args.download_parallel,
+ upload_parallel=args.upload_parallel,
with_flame=args.flame,
socks_args=socks_args,
limit_rate=args.limit_rate)
parser.add_argument("--upload-count", action='store', type=int,
metavar='number', default=50,
help="perform that many uploads")
+ parser.add_argument("--upload-parallel", action='store', type=int,
+ metavar='number', default=0,
+ help="perform that many uploads in parallel (default all)")
parser.add_argument("-r", "--requests", action='store_true',
default=False, help="evaluate requests")