我有一个运行memcached的专用128GB ram服务器.4个Web服务器连接到那个.它们总共发送大约20k包/秒.
最近我决定改变从web服务器到memcached服务器的连接,从持久的SSH隧道到使用Tinc(为了简化设置和灵活性,只要我需要它们在新端口上进行通信).
这种变化导致网络往返的开销显着增加(见图表).然而,我注意到,使用Tinc支持SSH隧道的网络开销要小得多(甚至比之前的SSH隧道还要快!),当我用它在服务器之间进行通信时(例如我的Postgresql数据库服务器),吞吐量低很多<每秒10k数据包.我试图在更多服务器之间分配memcached负载,突然来自tinc/network的开销显着下降.
现在,我不明白为什么tinc网络开销会随着吞吐量的增加而急剧增加?这就像我打了一个瓶颈(并且它肯定不是CPU,因为Newrelic报告<tinc过程的使用率<0.5%).有什么东西我可以在Tinc设置中调整,还是Tinc只是高吞吐量的坏选择?我应该使用IPsec吗?
我目前正在使用tinc在两个服务器之间创建 VPN。这允许我从服务器 A 通过 IP 地址访问 B10.0.0.2并创建一个接口:
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 10.0.0.1 netmask 255.255.255.0 destination 10.0.0.1
inet6 fe80::babb:cc53:dd5e:23f8 prefixlen 64 scopeid 0x20<link>
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (UNSPEC)
RX packets 42 bytes 11987 (11.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 55 bytes 7297 (7.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Run Code Online (Sandbox Code Playgroud)
我想将此路由传递到服务器 A 上的 docker 容器:
version: '3.2'
services:
traefik:
image: "traefik:v2.2.0"
ports: …Run Code Online (Sandbox Code Playgroud)