我已经安装了proxmox 2.1的10GBit服务器。 有一个运行Ubuntu 10.04 64位的OpenVZ容器。 我可以通过数据中心内部服务器(-O / dev / null)的wget获得200-300MB /秒的速度。 但是,如果有多个连接,总共不可能达到800MBit / sec以上。
我有一个运行的apache2 webserver作为代理,并从其他几个(不仅是数据中心内部的服务器)访问数据。 它的唯一代理通过,所以硬盘不访问(当然在日志文件旁边)。 由于这台服务器有两个固态硬盘,这是不太可能的原因。 一旦达到800MBit,即使在主机系统本身,而不是在OpenVZ容器内,我也只能从具有“wget -O / dev / null”的数据中心内部服务器获得300kb / sec。
我注意到进程ksoftirqd / 0需要大量的CPU负载(高达100%):
4 root 20 0 0 0 0 R 78 0.0 67:38.99 ksoftirqd/0 # (78% in this case)
有时候,进程事件/ 0需要很多的CPU能力,而且它似乎与CPU的能力相比ksoftirqd / 0:
35 root 20 0 0 0 0 R 50 0.0 18:04.63 events/0 4 root 20 0 0 0 0 R 50 0.0 24:37.64 ksoftirqd/0
顶部关于CPU功率的输出如下所示:
Cpu(s): 13.9%us, 7.3%sy, 0.0%ni, 64.0%id, 0.2%wa, 0.0%hi, 14.6%si, 0.0%st
正如你所看到的,si是非常高的,通常应该保持在0.另外硬盘不是瓶颈。 (0.2%wating)。
我也有其他1千兆服务器具有相同的configuration。 他们甚至可以达到900MBit / sec,这对1GBit服务器来说是可以的。 但是也有一个很高的ksoftirqd / 0(60-70%)。
目前大约有300MBit通过10GBit服务器,而ksoftirqd / 0进程保持在0%CPU。
不过晚上晚些时候stream量增加的时候,它会上升到100,并以800MBit的速度减less带宽。
也许OpenVZ有问题? 我也可以在没有proxmox的情况下直接在服务器上安装ubuntu来进行testing,但是如果我可以继续使用proxmox / OpenVZ,那将会更好。
然而,一旦我需要这个服务器,至less可以使用至less几GBit就很重要。 当然也有多个连接。
据我可以读取lspci -vv的输出 ,我的卡支持MSI-X。
该系统具有Intel® Xeon® Processor E5606 (8M Cache, 2.13 GHz, 4.80 GT/s Intel® QPI)处理器
这是我的网卡:
root@ns231828:~# lspci | grep -i network 02:00.0 Ethernet controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Network Connection (rev 01) 02:00.1 Ethernet controller: Intel Corporation 82599EB 10-Gigabit SFI/SFP+ Network Connection (rev 01) 05:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01) 05:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
我也在这里上传了lshw的清理输出: http : //jsfiddle.net/R8QgL/
这也是lspci -vv的内容: http : //pastebin.com/7PqqbzHM
我有一个“testing环境”,有一个小批量脚本,从很多服务器下载大量的速度testing文件(实际上我只是拿到了ubuntu的iso镜像列表)。 在那个环境中我能够达到2Gbit。
在我尝试ethtool -C eth2 rx-usecs 1022我能够达到3.5千兆。
然而,优化的rx-usecs设置(我尝试了值1和1000以及1022成为最好的)在真实客户端的实际环境中,这只能获得大约100兆比特。
我在这里上传了ethtool -k和ethtool -c的其他输出: http : //pastebin.com/rEtmuV6i
有没有人遇到类似的问题,或有一个提示如何解决这个问题?