summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md93
-rw-r--r--VERSION2
2 files changed, 46 insertions, 49 deletions
diff --git a/README.md b/README.md
index 3390994..87abdda 100644
--- a/README.md
+++ b/README.md
@@ -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.
diff --git a/VERSION b/VERSION
index 81340c7..bbdeab6 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.0.4
+0.0.5