diff options
author | Ryo Nakamura <upa@haeena.net> | 2022-12-11 14:20:13 +0900 |
---|---|---|
committer | Ryo Nakamura <upa@haeena.net> | 2022-12-11 14:20:13 +0900 |
commit | a8db569fbdcd417f82ae2bc564a79b7576cdeb7e (patch) | |
tree | f7c1bb7c3c158605308024d46f394573573ceb4b | |
parent | 3d98451bba75ed8454ab60cd5cb22757f2cb341d (diff) |
bump version to 0.0.5 and update README
-rw-r--r-- | README.md | 93 | ||||
-rw-r--r-- | VERSION | 2 |
2 files changed, 46 insertions, 49 deletions
@@ -48,18 +48,18 @@ async](https://archive.libssh.org/libssh/2020-06/0000004.html)). Currently macOS and Linux (Ubuntu, CentOS, Rocky) are supported. ```console -# 1. clone this repository +# clone this repository git clone https://github.com/upa/mscp.git cd mscp -# 2. prepare patched libssh +# prepare patched libssh git submodule update --init patch -d libssh -p1 < patch/libssh-0.10.4.patch -# 3. install build dependency +# install build dependency bash ./scripts/install-build-deps.sh -# 4. configure mscp +# configure mscp mkdir build && mv build cmake .. @@ -79,12 +79,12 @@ make install ```console $ mscp -mscp v0.0.4: copy files over multiple ssh connections +mscp v0.0.5: copy files over multiple ssh connections -Usage: mscp [vqDCHdh] [-n nr_conns] [-m coremask] - [-s min_chunk_sz] [-S max_chunk_sz] [-a nr_ahead] +Usage: mscp [vqDCHdNh] [-n nr_conns] [-m coremask] + [-s min_chunk_sz] [-S max_chunk_sz] [-a nr_ahead] [-b buf_sz] [-l login_name] [-p port] [-i identity_file] - [-c cipher_spec] source ... target + [-c cipher_spec] [-M hmac_spec] source ... target ``` - Example: copy a 15GB file on memory over a 100Gbps link @@ -93,66 +93,63 @@ Usage: mscp [vqDCHdh] [-n nr_conns] [-m coremask] ```console $ mscp /var/ram/test.img 10.0.0.1:/var/ram/ -[=====================================================] 100% 15GB/15GB 1.9GB/s +[======================================] 100% 15GB/15GB 1.7GB/s 00:00 ETA +``` -# with some optimizations. top speed reaches 2.9GB/s. -$ mscp -n 8 -m 0xff -a 32 -c aes128-gcm@openssh.com /var/ram/test.img 10.0.0.1:/var/ram/ -[=====================================================] 100% 15GB/15GB 2.2GB/s +```console +# with some optimizations. top speed reaches 3.0GB/s. +$ mscp -n 5 -m 0x1f -c aes128-gcm@openssh.com /var/ram/test.img 10.0.0.1:/var/ram/ +[======================================] 100% 15GB/15GB 2.4GB/s 00:00 ETA ``` - `-v` option increments verbose output level. ```console $ mscp test 10.0.0.1: -[=====================================================] 100% 13B/13B 2.41KB/s - -$ mscp -v test 10.0.0.1: -file test/test.txt (local) -> ./test/test.txt (remote) 9B -file test/test2/2.txt (local) -> ./test/test2/2.txt (remote) 2B -file test/1.txt (local) -> ./test/1.txt (remote) 2B -copy start: test/test.txt -copy start: test/1.txt -copy start: test/test2/2.txt -copy done: test/1.txt -copy done: test/test2/2.txt -copy done: test/test.txt -[=====================================================] 100% 13B/13B 2.51KB/s - -$ mscp -vv -n 4 test 10.0.0.1: +[======================================] 100% 26B /26B 6.3KB/s 00:00 ETA +``` + +```console +$ mscp -vv test 10.0.0.1: +number of connections: 7 connecting to 10.0.0.1 for checking destinations... -file test/test.txt (local) -> ./test/test.txt (remote) 9B -file test/test2/2.txt (local) -> ./test/test2/2.txt (remote) 2B -file test/1.txt (local) -> ./test/1.txt (remote) 2B -connecting to 10.0.0.1 for a copy thread... +file test/testdir/asdf (local) -> ./test/testdir/asdf (remote) 9B +file test/testdir/qwer (local) -> ./test/testdir/qwer (remote) 5B +file test/test1 (local) -> ./test/test1 (remote) 6B +file test/test2 (local) -> ./test/test2 (remote) 6B +we have only 4 chunk(s). set number of connections to 4 connecting to 10.0.0.1 for a copy thread... connecting to 10.0.0.1 for a copy thread... connecting to 10.0.0.1 for a copy thread... -copy start: test/test.txt -copy start: test/1.txt -copy start: test/test2/2.txt -copy done: test/test.txt -copy done: test/test2/2.txt -copy done: test/1.txt -[=====================================================] 100% 13B/13B 3.27KB/s +copy start: test/test1 +copy start: test/test2 +copy done: test/test1 +copy start: test/testdir/asdf +copy done: test/test2 +copy start: test/testdir/qwer +copy done: test/testdir/qwer +copy done: test/testdir/asdf +[======================================] 100% 26B /26B 5.2KB/s 00:00 ETA ``` - Full usage ```console $ mscp -h -mscp v0.0.4: copy files over multiple ssh connections +mscp v0.0.5: copy files over multiple ssh connections -Usage: mscp [vqDCHdh] [-n nr_conns] [-m coremask] - [-s min_chunk_sz] [-S max_chunk_sz] [-a nr_ahead] +Usage: mscp [vqDCHdNh] [-n nr_conns] [-m coremask] + [-s min_chunk_sz] [-S max_chunk_sz] [-a nr_ahead] [-b buf_sz] [-l login_name] [-p port] [-i identity_file] - [-c cipher_spec] source ... target + [-c cipher_spec] [-M hmac_spec] source ... target - -n NR_CONNECTIONS number of connections (default: half of # of cpu cores) + -n NR_CONNECTIONS number of connections (default: floor(log(cores)*2)+1) -m COREMASK hex value to specify cores where threads pinned -s MIN_CHUNK_SIZE min chunk size (default: 64MB) - -S MAX_CHUNK_SIZE max chunk size (default: filesize / nr_conn) + -S MAX_CHUNK_SIZE max chunk size (default: filesize/nr_conn) - -a NR_AHEAD number of inflight SFTP commands (default: 16) + -a NR_AHEAD number of inflight SFTP commands (default: 32) + -b BUF_SZ buffer size for i/o and transfer -v increment verbose output level -q disable output @@ -161,15 +158,15 @@ Usage: mscp [vqDCHdh] [-n nr_conns] [-m coremask] -l LOGIN_NAME login name -p PORT port number -i IDENTITY identity file for public key authentication - -c CIPHER cipher spec, see `ssh -Q cipher` + -c CIPHER cipher spec + -M HMAC hmac spec -C enable compression on libssh -H disable hostkey check -d increment ssh debug output level + -N disable tcp nodelay (default on) -h print this help ``` - - Note: mscp is still under development, and the author is not responsible for any accidents due to mscp. @@ -1 +1 @@ -0.0.4 +0.0.5 |