Rootless Router(Part: 5): 完結
RootlessRouter系列: Rootless Router(Part: 0): 用戶態DN42節點 Rootless Router(Part: 1): wggo-vpp Rootless Router(Re: 0): VPP Host stack Rootless Router(Part: 2): BIRD-vpp Rootless Router(Part: 3): EtherGuard Rootless Router(Extra):蒐集的Userspace 網路棧 Rootless Router(Part: 4): 被VPP Host Stack衝康 Rootless Router(Part: 5): 完結 Rootless Router(Fin): UML版本上線啦! Rootless Router(Afterword): Azure App Service真的很靈 先說結論: 失敗了 唉,忙了5個月,結果一場空。真的是很難過 本地最終測試 大部分的拼圖都造好了,我又花了一個月把這些拼圖拼再一起 總時間花了5個月的RootlessRouter總算能運作上線了 在本地測試,BGP session起來了,路由有廣播出去,也有收到外面的路由 上線後遇到第一個麻煩,赫然發現CPU占用率居然是100% ! 才想起來,VPP為了性能,採用的是輪詢模式,而不是中斷模式。所以會直接佔用一顆CPU 100%。因為本地是多核心,所以沒發現。但是雲端上是一核心,直接卡死 首先我想到的是cpulimit。我限制成1%,用了以後CPU降到剩下10%。但是有很大的問題,就是ping超級不穩定。因為她的細粒度太低了,跑0.1秒,卡0.9秒。所以部分ping值直接跳上900 後來找到 這篇 ,解決了VPP CPU 100%的問題。 但是又發現,怎麼換成BIRD的cpu 卡100%了? 然後又找 上海交大的這篇 ,經過一番修改,總算是壓住CPU使用率了 在他的輪巡迴圈裡面加上sleep,解決100%的問題。 我是usleep(1000),延遲還算勉強可用,idle狀態壓在3%左右 我做的修改: https://github.com/KusakabeSi/vpp/commit/73ee9164f8a7c4c65ced4aa61ab865878b2e5d3a 部屬上線 之後我就開始部屬到a