Comments (8)
I'm not familiar with CIFS, but from what you've described I think maybe it's due to the fact that the flow control window size for each connection takes a while to converge. If that's the case I can work around it by adding an argument for customizing initial flow control window size.
Does CIFS have some kind of connection multiplexing or reuse mechanism? Or it always creates a new connection for every file transfer
from hysteria.
As far as I know, CIFS reuses the connection.
Note: I am not stuck on CIFS, that's just how things are done and I was looking to see if I could proxy CIFS through Hysteria - and it worked pretty smoothly.
Do you have experience with transferring small files over other protocols with Hysteria acceleration - like HTTP? Are small files benefiting from the acceleration?
from hysteria.
Also, maybe a bit off topic but do you think it could be workable to create a file transfer mechanism over QUIC relatively easily? Would small files benefit? Maybe a web server and client using QUIC would be a good approach?
You seem to have good experience on the subject since you produced a workable and good software around it, hence my questions... if you don't mind.
from hysteria.
By speed degradation do you mean that it becomes slower with Hysteria, or it's just not as fast as transferring large files? Would you mind providing some details?
from hysteria.
It was slower to transfer small files when I ran CIFS over Hysteria, compared to straight CIFS. For large files, it was faster CIFS-over-Hysteria than not.
I unfortunately didn't keep good notes of the metrics. But for larger files, I got a factor of at least 3X the speed when using CIFS over Hysteria (files of about 100MB). This is over the 500-600ms latency link.
But when transferring small files, like a Word document, or a photo (<4MB) then it was slower when I ran CIFS over Hysteria.
I have a need for both large and small files.
from hysteria.
From my experience a problem with many protocols (not just SMB, also FTP/SFTP, etc.) that cause transferring large numbers of tiny files to be slow is that they often spend multiple RTTs to negotiate information back and forth before a transfer actually begins, introducing noticeable delays between each file transfer and reduce the overall speed. Not sure if that's the case here or why it's even slower with Hysteria, but a temporary solution could be packing and sending the small files as one large archive.
I'll look into this when I have time, and perhaps build a tool that's optimized for transferring/syncing folders with large numbers of tiny files in the future.
from hysteria.
have you ever tried rsync btw?
from hysteria.
Yes. rsync tends to stall over high latency. Also, in my case, it's not "a lot of small files". It's a small file, then later, another small file, etc. So the initial connection time of rsync is killing the speed, much like this CIFS problem but maybe even worst. I was hoping to circumvent that since Hysteria sort of keeps a live connection between the client and server.
I need to try HTTP. Maybe it's going to be better.
Thanks for checking and exchanging ideas.
And I realized I could rerun my tests easily so here is some data on the transfer speed I got over this satellite link:
Small 42KB
benchcopy.exe c:\temp\sample.docx \local-hysteria-relay\test$
Took 5.3064539 seconds
0.06Mbps
benchcopy.exe c:\temp\sample.docx \remote-direct\test$
Took 7.7516866 seconds
0.04Mbps
Medium: 18.4KB
benchcopy.exe c:\temp\sample.pdf \local-hysteria-relay\test$
Took 19.5618926 seconds
7.36Mbps
benchcopy.exe c:\temp\sample.pdf \remote-direct\test$
Took 116.5437549 seconds
1.23Mbps
So far, Hysteria is the best WAN acceleration product I found that does not cost $100,000 and even those... aren't particularly all that good for CIFS when transferring binary files that are already compressed - they mostly "accelerate" by compressing and caching which isn't useful in my case.
from hysteria.
Related Issues (20)
- 权限问题导致systemctl start启动失败 HOT 1
- [FR] Hysteria API to sync users HOT 1
- failed to initialize client sendmsg: invalid argument HOT 1
- 服务器hy1和hy2如何同时warp代理 HOT 4
- tun mode does not seem work HOT 3
- 运行客户端出现 While parsing config: yaml: invalid trailing UTF-8 octet HOT 2
- 搭建好服务器以后,速度奇慢,然后查看服务端,一堆错误,是怎么回事呢?求指教,谢谢 HOT 4
- mac m1 hysteria2 无法与 adguard 共用 HOT 1
- tls 路径问题 HOT 4
- tun模式能否增加geoip和geosite匹配并代理dns HOT 2
- 搭了好几个服务器,centos和ubuntu都是一样的
- Centos7 6.8.7 kernel, install the latest version hysteria2, prompt: chcon invalid mode:/etc/systemd/system, how to solve it? HOT 2
- 服务端重新启动,使用clash客户端测延迟 会有几秒的时间无法通信 HOT 2
- 在config.yaml 指定其它路径的证书,如果整条路径上有某个目录权限只有rw,则客户端无法连接,必须全路径目录都rwx才能连接 HOT 2
- hy2客户端配置ACL问题 HOT 1
- 用官方代码搭建成功需要改dns为国外dns才能正常上国外网站,用sing-box搭建不需要 HOT 1
- Command authentication has no action HOT 1
- 已经不能使用过了,timeout: no recent network activity
- too many open streams HOT 1
- Traffic Stats API GET /online
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hysteria.