link:https://github.com/FishOrBear/mTCP2
mTCP 将多个 tcp 连接聚合成一个 tcp 连接,从而提高单 tcp 的速度.(在某些网络环境下有用,例如单 tcp 连接被 qos,而远端的服务端没有 qos,则可以使用).
.---- 桥 1 ----.
/ \
服务器 A --- mpclient -------桥 2 ------ mpserver --- 服务器 B
\ /
`---- 桥 3 ----`
ref:https://github.com/greensea/mptunnel/blob/master/README.zh_CN.md
你必须要有一个服务器,然后你到那个服务器的速度单 tcp 有限制,但是那个服务器的单 tcp 没有限制.
现有的要么不能满足我的需求,要么部署太麻烦了.
npm i
node remote.js
node client.js
apt-get install -y libjemalloc-dev
RUN echo "/usr/lib/x86_64-linux-gnu/libjemalloc.so.2" >> /etc/ld.so.preload
//mtcp.config.js
module.exports = {
/**
* Application configuration section
* http://pm2.keymetrics.io/docs/usage/application-declaration/
*/
apps: [
{
name: 'mtcp',
script: './remote.js',
args: "",
autorestart: true,
cron_restart: '0 6 * * *',//每天 6 点重启
watch: ["./"],
// max_memory_restart: "300M",
error_file: "./logs/mtcp_err.log",
out_file: "./logs/mtp_out.log",
time: true,
log_date_format: "YYYY-MM-DD HH:mm Z",
env: {
"NODE_ENV": "production"
}
// node_args: ["--max_old_space_size=128", "--max_semi_space_size=4"],
},
]
};
没有 mTCP 单线程 tcp 20m/s
有 mTCP 情况下
连接数:5
20Mb/s ,164Mbps
93Mb/s ,745Mbps
36Mb/s ,293Mbps
44Mb/s ,358Mbps
54Mb/s ,435Mbps
62Mb/s ,499Mbps
68Mb/s ,546Mbps
66Mb/s ,531Mbps
61Mb/s ,489Mbps
86Mb/s ,689Mbps
106Mb/s ,853Mbps
38Mb/s ,305Mbps
13Mb/s ,106Mbps
28Mb/s ,226Mbps
连接数:4
15Mb/s ,121Mbps
67Mb/s ,537Mbps
72Mb/s ,583Mbps
75Mb/s ,602Mbps
61Mb/s ,495Mbps
60Mb/s ,480Mbps
79Mb/s ,635Mbps
76Mb/s ,614Mbps
62Mb/s ,500Mbps
49Mb/s ,396Mbps
62Mb/s ,499Mbps
26Mb/s ,211Mbps
连接数:3
14Mb/s ,114Mbps
54Mb/s ,432Mbps
56Mb/s ,450Mbps
56Mb/s ,448Mbps
59Mb/s ,472Mbps
56Mb/s ,453Mbps
56Mb/s ,451Mbps
56Mb/s ,452Mbps
59Mb/s ,479Mbps
55Mb/s ,440Mbps
62Mb/s ,497Mbps
32Mb/s ,262Mbps
58Mb/s ,468Mbps
56Mb/s ,450Mbps
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.