双工模式到底是啥?
搞服务器维护的兄弟都知道,网络不通或变慢,有时候不一定是线的问题,也不一定是设备坏了,很可能只是交换机的双工模式没配对。
简单说,双工模式就是设备通信时能不能“边说边听”。全双工(Full Duplex)就像打电话,双方能同时说话和倾听;半双工(Half Duplex)像对讲机,得按一下才能说,说完松开对方才能回。很明显,服务器之间通信选全双工才合理。
为啥要手动配?不是能自协商吗?
理论上,交换机和服务器网卡支持自动协商(Auto-negotiation),自己就能搞定速率和双工模式。但现实中,偏偏有些老设备、便宜网卡或者驱动有问题的服务器,自协商失败,结果一边是全双工,另一边却认成半双工。
这时候就会出现“错配”——数据一多就开始丢包、延迟飙升,特别是跑数据库同步或备份的时候,网速卡得像蜗牛爬。
实际排查场景
上周我们机房一台文件服务器上传速度始终跑不满千兆,ping 延迟忽高忽低。查了线缆没问题,网卡驱动也更新了,最后抓包发现大量冲突重传。进交换机一查端口状态,好家伙,对面服务器明明支持1000M全双工,但端口显示是100M半双工。
原来是服务器重启后网卡自协商失败,固定成了保守模式。交换机这边设的是自动,结果就“凑合着用”了低速半双工。
怎么配置才靠谱?
登录交换机命令行,进入对应端口视图,强制指定速率和双工模式:
interface GigabitEthernet0/0/24
speed 1000
duplex full
negotiation disable注意,关掉自协商(negotiation disable)是为了避免后续波动。不过这步要看情况,如果两端设备都稳定支持自协商,也可以保留 auto,只确保两边都设为 auto 就行。
比如华为或H3C交换机,默认可能是 auto,如果你确定对端支持全双工,可以直接锁死:
interface GigabitEthernet1/0/10
speed 1000
duplex full如果是思科风格设备,命令类似:
interface gigabitethernet0/1
duplex full
speed 1000配完还得验证
改完别急着走人,用 show interface 或 display interface 看端口状态:
display interface GigabitEthernet0/0/24确认输出里显示“1000Mbps Full-duplex”,并且没有大量 CRC 错误或冲突计数增长才算真正搞定。
另外,建议把关键服务器连接的交换机端口都统一规划,文档记录双工设置,避免后期维护人员误操作导致问题复发。
小改动,大效果。别让一个双工模式拖垮整个服务响应速度。