我在CentOS上运行我自己的vps软件,运行一些我自己的软件,使用非常快的algorithm将特殊构build的RAW TCP数据包发送到运行我的软件的许多系统。 我已经注意到在执行ifconfig的时候TX列中有太多的数据包丢失。 另外我知道在70%的情况下,并不是所有通过外部venet0接口的数据包都是由更高级别的系统(比如主机操作系统,networking驱动程序等等)发送的。 如何调查真正的问题在哪里? 对于第一个:send()或sendto()返回成功时如何解释简单的TX数据包丢弃? 二:传入ICMP desination不可达/无路由增加TX的包丢弃?
我的问题ifconfig:
venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:127.0.0.1 PtP:127.0.0.1 Bcast:0.0.0.0 Mask:255.255.255.255 UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 RX packets:14512501 errors:0 dropped:0 overruns:0 frame:0 TX packets:151202339 errors:0 dropped:10321888 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1043659479 (995.3 MiB) TX bytes:6306749886 (5.8 GiB)
对不起,如果有太多的材料在networking上这个,但他们是新手,我是程序员,需要所有的细节来修复我的系统。 谢谢
如果你是一个程序员,grep内核源码增加“tx_dropped”。 这通常是由networking设备驱动程序修改,而不是通用的networking代码(除非你做GRE或IPIP,VLAN等类似的东西)。
但是用虚拟网卡,我怀疑你会得到更多的信息。