產品研發中經常會出現速率不達標問題,定位和分析往往需要投入大量的人力物力反覆測試才能定位出具體原因,一個基本的出發點,是要查詢或者獲取到收發過程中端到端收發的統計數據,確定是在那一段丟包,針對這裏的丟包進行抓包分析,網絡應答和處理是否正確,才能爲問題的解決提供可靠的依據;針對性能不達標問題的定位思路總結如下:
1、收包速率不達標,很有可能是發送的速率沒有達標造成;(可以通過配置更高性能的硬件CPU頻率,內存的大小和通道數,增加網卡發送的性能)
2、分析收發的模型;
3、查看CPU的利用率;(CPU需要綁核處理,尤其大於10GE的網絡)
4、排除環境因素的干擾;(TCP/IP協議涉及中就是按照最大能力進行收發,不保證每個報文都完成“使命”,只有在應用層增加一些握手機制來保證)
5、發包中網絡進行隔離減少干擾,記錄端到端的收發報文數,必要時進行抓包分析;
下面通過2個問題舉例如何分析定位
1、Iperf發現收包速率不達標問題
某天測試人員反饋自動化測試中iperf網卡性能不達標,使用手工測試中可以達標;分析查詢結果如下圖所示。
測試中是0~t,整體速率需要達到網卡帶寬的90%;由於測試發包端的速率是有一個加速和減速的過程,所以取數據是,把前後10秒的數據過濾,取中間數據作爲測試的判據。
2、網絡通信中出現丟包
現象:SVT.eth1發送報文數量<LSW.PORT2發送數量。
測試端和被測試的都是相同配置的10GE網卡,相同速率的網卡進行收發性能的測試,SVT發送的速率小於9GE(正常時的性能也是9G),LSW.PORT2多發出的數據報文說明過程中出現了其他數據報文的干擾造成;造成發包大於網卡的最大吞吐量,超出了網卡的負荷範圍,進而出現了丟包;通過在交換機上進行VLAN隔離就解決了這個問題。
3、網卡性能測試中性能的注意點
- 收發包使用VLAN進行隔離,減少其他報文的干擾;
- 發包端內存緩存或者隊列開到最大;
- 修改MTU值,減少接收端的中斷上報;
- 接口速率大於10GE的網卡進行CPU綁核提高發送接收效率;
- CPU,內存(滿通道)不能是瓶頸。