在基于Android和iOS的应用程序上工作,该应用程序需要与在同一设备中运行的服务器进行通信.目前使用TCP环回连接与App和Server通信(用户层编写的应用程序,使用Android NDK用C++编写的服务器)
我想知道是否用Unix Domain socket替换内部通信会改善性能吗?
或者一般来说是否有任何证据/理论证明Unix Domain套接字会提供比TCP环回连接更好的性能?
我在CentOS 7上运行Docker,不时会显示以下消息:
Message from syslogd@dev-master at Mar 29 17:23:03 ...
kernel:unregister_netdevice: waiting for lo to become free. Usage count = 1
Run Code Online (Sandbox Code Playgroud)
我已经google了很多,阅读了很多资源,并尝试了很多方法,如保持我的系统更新,升级内核等,但消息仍然不断出现,它不是经常,但迟早我会看到它.另外我发现在docker github上这个问题的问题仍然是开放的,那么我的问题是:
Docker版本:
Client:
Version: 1.11.1
API version: 1.23
Go version: go1.5.4
Git commit: 5604cbe
Built: Wed Apr 27 00:34:42 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.1
API version: 1.23
Go version: go1.5.4
Git commit: 5604cbe
Built: Wed Apr 27 00:34:42 2016
OS/Arch: linux/amd64
Run Code Online (Sandbox Code Playgroud)
OS信息:
CentOS 7, with kernel version: 4.6.0-1.el7.elrepo.x86_64
Run Code Online (Sandbox Code Playgroud)
非常感谢任何信息/提示或资源,非常感谢.
映像文件有一个分区表,它包含多个分区.
环回设备可能是一种可能性.
相关主题:
我正在尝试使用JMeter建立分布式负载测试环境.我需要使用像Linux Live CD这样的便携式设置远程客户端,但每当我尝试在Linux中启动jmeter-server时,我都会收到以下错误...
Created remote object: UnicastServerRef [liveRef: [endpoint:[127.0.0.1:49018](local),objID:[3b0d3d42:12985b7a49b:-7fff, -8459389540436649718]]]
Server failed to start: java.rmi.RemoteException: Cannot start. testbox01.qa.nwr.lan is a loopback address.
Run Code Online (Sandbox Code Playgroud)
经过大量的谷歌搜索后,我能找到的唯一补救措施是编辑/ etc/hosts文件,使主机名映射到127.0.0.1环回地址以外的其他内容.我已经尝试过使用Ubuntu,Fedora和CentOS,显然他们都默认将主机名设置为127.0.0.l.
我看到它的方式,我有四个选择......
1)为我设置的每个远程测试盒自定义/ etc/hosts文件,其中包含超过20-50个动态DHCP分配的IP地址.
2)找出一种强制Linux本身默认将主机名分配给其DHCP IP地址的方法.这当然是更优雅的解决方案,但我不知道如何做到这一点.谁知道?
3)查找并使用可用作Live CD的Linux发行版,默认情况下不将其主机名映射到127.0.0.1.谁知道一个?
4)深入了解JMeter的代码并开始使用电线,但如果涉及到这一点,我会尽快使用另一个开源工具,具有更细的功能集,但其分布式架构不会遇到此问题.
如果有人有任何建议,我将不胜感激.谢谢!
正如问题所说,什么是微软环回适配器,作为奖励,作为开发人员的场景是什么有用?我注意到在我的机器上安装几个应用程序时需要它,但除了猜测之外,我从来没有对它的功能有一个坚定的理解.
我在线阅读了几篇文章,但没有什么能让我"明白".虽然我不需要一个非常复杂的答案,但是一点解释会非常有用.
谢谢!乔治
我试图在我的PC上捕获主从(服务器 - 客户端)程序之间的localhost(环回127.0.0.1)TCP流量.Wireshark无法做到这一点,但我理解RawCap的确如此.
当我尝试运行程序时,RawCap说 "Unable to enter promiscuous mode (RCVALL_ON), using RCVALL_SOCKETLEVELONLY."
知道是什么导致了这个吗?
非常感谢!
我最近在运行一些比较网络性能和环回性能的性能测试时偶然发现了一个有趣的TCP性能问题.就我而言,网络性能超过了环回性能(1Gig网络,同一子网).在我处理延迟的情况下是至关重要的,因此启用了TCP_NODELAY.我们提出的最好的理论是TCP拥塞控制正在阻止数据包.我们做了一些数据包分析,我们可以肯定地看到数据包被保留,但原因并不明显.现在问题......
1)在什么情况下,为什么,通过环回进行通信比通过网络慢?
2)当尽可能快地发送时,为什么切换TCP_NODELAY对环回的最大吞吐量的影响要大于对网络的影响?
3)我们如何检测和分析TCP拥塞控制作为性能不佳的潜在解释?
4)有没有人对这种现象的原因有任何其他理论?如果是的话,任何证明该理论的方法?
以下是一个简单的点对点c ++应用程序生成的一些示例数据:
Transport Message Size (bytes) TCP NoDelay Send Buffer (bytes) Sender Host Receiver Host Throughput (bytes/sec) Message Rate (msgs/sec) TCP 128 On 16777216 HostA HostB 118085994 922546 TCP 128 Off 16777216 HostA HostB 118072006 922437 TCP 128 On 4096 HostA HostB 11097417 86698 TCP 128 Off 4096 HostA HostB 62441935 487827 TCP 128 On 16777216 HostA HostA 20606417 160987 TCP 128 Off 16777216 HostA HostA 239580949 1871726 TCP 128 On 4096 HostA HostA 18053364 …
我试图在Android设备上使用ADB,因此没有任何主机.这在几天前完美运行,但它突然停止工作.据我所知,从那时起没有任何变化(例如没有安装应用程序(联合国)).我可以adb backup -f /sdcard/backup.ab <package-name>
在终端模拟器中使用它,它将开始备份该包.当我现在尝试时,它会返回adb: unable to connect for backup
.调查使用adb devices
返回一个空列表.我以前从不打扰检查设备,我只是直接进入我的adb命令,因为一切正常.
这是在运行Android 4.4.2,ADB版本1.0.31的HTC Desire上.使用这款手机在我的电脑上使用ADB工作正常,但这不是我想要的.
我试过了什么
adb devices
返回所有这些上面的空列表.我开始想知道为什么这对我的HTC Desire起作用了.adb kill-server
+ adb start-server
约一百次,以及stop adbd
+ start adbd
.adb -a devices
- >清单.adb usb
- > error: device not found
.adb tcpip 5555
回报error: device not found
.getprop
不返回任何已命名的条目,service.adb.tcp.port
并setprop service.adb.tcp.port 5555
默默地失败 (事后检查getprop service.adb.tcp.port …
我试图将在本地计算机上运行在Android模拟器中的Android应用程序中的数据发布到在本地计算机上运行的IIS Express下运行的Web应用程序.不幸的是,当我从模拟器发布到10.0.2.2时,我收到一条Host Not Found
错误消息.
如果我将Web应用程序配置为在ASP.NET Dev Server(Cassini)而不是IIS Express下运行,则Android应用程序可以发布没有问题.IIS Express缺少哪些配置阻止它使用Android模拟器的环回?
我有必须在使用时的警告用户的应用程序localhost
,127.0.0.1
,::1
,或任何环回地址(目标主机被用于数据库到数据库的连接并不一定的应用程序的环境的内部).这很复杂,因为地址如下......
127.1
127.0.01
127.0000.0000.1
127.0.0.254
127.63.31.15
127.255.255.254
0::1
0000::0001
0000:0:0000::01
0000:0000:0000:0000:0000:0000:0000:0001
...将通过消费代码正确解析,并将解析为环回.
什么是正则表达式,它将匹配IPv4和IPv6环回地址的任何排列?
loopback ×10
localhost ×4
linux ×3
networking ×2
tcp ×2
adb ×1
android ×1
cassini ×1
centos ×1
centos7 ×1
distributed ×1
docker ×1
filesystems ×1
iis-express ×1
jmeter ×1
local ×1
mount ×1
raw-ethernet ×1
regex ×1
sockets ×1
unix ×1
unix-socket ×1
windows-xp ×1