我目前正在检查不同 Docker 覆盖网络的性能(尤其是 UDP 吞吐量)。为此,我在与 Docker 覆盖网络连接的两台主机之间创建点对点连接,然后iperf
在 Docker 容器内运行以检查吞吐量。我注意到每次我iperf
作为客户端运行向iperf
作为服务器运行的另一个容器发送数据时,客户端主机的CPU使用率达到100%。我通过运行在此处找到的以下命令获得了该结果:
top -bn1 | grep "Cpu(s)" | \
sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | \
awk '{print 100 - $1"%"}'
Run Code Online (Sandbox Code Playgroud)
因此,对我而言,吞吐量测试的限制因素似乎是主机的 CPU 容量,因为它以 100% 的速度运行并且无法产生更多流量来使网络连接饱和。我想知道这是否是一个iperf
特定问题,所以我想使用不同的工具运行相同的测试,但不确定哪种替代方案最好。主机正在运行 Ubuntu。例如,我发现qperf
,uperf
和netpipe
。
此外,更一般地说,我开始想知道吞吐量性能的瓶颈通常是什么。它不总是与CPU容量或链路带宽有关吗?哪些因素与覆盖网络没有直接关系。
这是否意味着应用程序(或覆盖网络)的吞吐量仅取决于它需要多少 CPU 周期来传输一定数量的数据以及它如何压缩它以适应它通过网络(如果这将是瓶颈)。
我正在尝试设置一个简单的 Kerberos 环境,该环境由 Kerberos 服务器 (KDC)、客户端计算机和运行 OpenSSH 守护程序的服务器计算机组成。客户端应该在与服务器计算机建立 SSH 连接时通过 Kerberos 进行身份验证。
我尝试验证的 Kerberos 用户的名称是krbuser
. 此用户存在于服务机器上,其 uid 为1001
。奇怪的是我用SSH登录的时候需要输入Kerberos用户的密码。每次登录。不仅是我的第一次连接。这看起来很奇怪,因为 Kerberos 的全部意义在于无需密码即可进行身份验证。
我在身份验证过程中进行了 tcpdump,并注意到客户端正在使用 cname 对 KDC 执行 AS-REQ root
。这个 Kerberos 用户名没有,我不知道为什么客户端使用这个名字。正如预期的那样,KDC 会以一条eRR-C-PRINCIPAL-UNKNOWN
消息作为响应,因为root
数据库中没有用户。
对我来说,主要问题似乎是客户端尝试验证 asroot
而不是krbuser
.
我将在下面发布有关我当前配置的一些信息。如果您需要任何其他信息,请告诉我。
在 KDC 上:
/etc/krb5.conf
[logging]
default = FILE:/usr/local/krb5/var/log/krb5lib.log
kdc = FILE:/usr/local/krb5/var/log/krb5kdc.log
admin_server = FILE:/usr/local/krb5/var/log/kadmin.log
[libdefaults]
default_realm = metz.prac.os3.nl
rdns = false
# The following krb5.conf variables are only for MIT Kerberos. …
Run Code Online (Sandbox Code Playgroud)