SDN Controller的分析工具有哪些

按照zhihu的规矩~~~首先,谢邀!编码就要放肆,但debug就是克制!!!---------以上请忽略-------------SDN Controller本质就是一个程序,那我们就可以从架构,性能,内存,堆栈等等方面来进行分析了,这些和其他应用程序和系统一样了(这些根据不同语言又有所不同)。--------debug最好用的就是打日志,分析日志了,找一个日志框架用起来吧,尽可能丰富你的日志。--------既然涉及到了网络协议,那么不能忘了wireshark(对于南向接口是openflow的控制器,可以找个wireshark的openflow插件)--------只有对症才能药到病除,根据经验,控制器的瓶颈也是关键之处就是拓扑发现和PacketIn的处理了,其他语言和逻辑上的debug就不说了,下面大致举一个性能的粒子。** 关于控制器性能,业内是有一些SDN测试工具的,现在流行的是cbench,可以设置要连接的switch个数,每个switch连接的主机个数,吞吐量等,可以生成一些报告,如报文处理时延等。如果你发现你控制器的性能有问题,那就进一步定位问题,1. 具体耗时的函数是哪个,最简单的就是在你怀疑的函数中输出startTime和endTime(对java来说,JDK包含了很多优秀的调试工具,如jmap,jstack等,这个展开来说就太多了,可参阅《java程序性能优化》), 2. 你找到到了那个耗时的函数或者操作,那就进一步分析,调用太多,可以考虑开线程,NIO问题,考虑异步(这个对于java一般没有,所有java程序设计NIO几乎都会使用netty,无出其右),锁的问题,那就考虑把锁细化一下。----好像有点答非所问,又看了一下你的问题,可以分为两个:1. 如何找出SDN Controller 控制程序中的问题:想要找出程序问题,第一步就要知道哪里发生了问题,然后在考虑解决办法,这可以参考以上。2. sdn debug方面有哪些开源的工具:wireshark + openflow插件, cbench(主要用于性能测试),这个就知道这些了,望其他人可以补充。
■网友
关于SDN的debugger,貌似顶会上有文章吧(2012hotsdn Session 2: Programming and Debugging)。此外,Jennifer Rexford在做这方面的研究,是比较权威,你可以找一下她们的论文。以下这篇貌似是这个领域最早的,你看看,是否对你有帮助:Where is the Debugger for my Software-De?ned Network
■网友
谢邀,但是非常抱歉,我没有关注这方面。但是性能测试的有cbench。另,控制器真的就是一个程序!只不过负责网络控制罢了。从程序本身来看,没有什么特殊的。楼上已经说的差不多了,希望你已经得到解答了!


    推荐阅读