一、背景
在使用iperf和iperf3進行udp的性能測試時,發現有大量丟包現象。

二、分析和參數調優
在server端通過netstat -su查看均在receive buffer errors丟包,說明數據包已經到server端,只是socket buffer滿了導致丟包
通過sysctl -w net.core.rmem_max=26214400(單位為字節)的方式調整系統的最大socket buffer
在iperf的server端使用-w 4M的方式調整server端使用的socket buffer解決丟包問題(iperf3沒有server端調整socket buffer的參數,只有client端有相關參數,實際不起效果)

其他參數調整,通過sysctl -w net.core.rmem_default = 212992(單位為字節)的方式調整系統默認的socket buffer,其中 rmem_default不能超過 rmem_max

通過sysctl -w net.ipv4.udp_mem="262144 327680 393216",用于增加最大可分配的 UDP 緩沖區空間總量,數值以頁面為單位,每個頁面單位等于4096 bytes
